【问题标题】:Remove users from AD group if they do not exist in CSV如果 CSV 中不存在用户,则将其从 AD 组中删除
【发布时间】:2017-01-04 11:23:08
【问题描述】:
我有一个任务,我们有一个包含用户的 .csv 文件。 CSV 的内容应与 AD 安全组进行比较。 CSV 中非的任何用户都需要从 AD 组中删除。
过去,我从 CSV 文件中列出的组中添加/删除了用户,但不知道如果他们不在 CSV 中如何删除。
我是否必须使用一个脚本将组的成员转储到一个文件中,将该文件与 CSV 进行比较,然后创建一个组中但不在 CSV 中的用户文件,然后将其用作删除用户的来源?
【问题讨论】:
标签:
powershell
active-directory
【解决方案1】:
从 CSV 中的相关用户属性(例如,专有名称)创建一个列表。使用带有-notcontains 运算符的Where-Object 过滤器获取此列表中不存在的组成员。然后从组中删除这些成员。
例子:
$validUsers = Import-Csv 'C:\path\to\your.csv' | Select-Object -Expand dn
$invalidUsers = Get-ADGroupMember 'groupname' |
Where-Object { $validUsers -notcontains $_.distinguishedName }
Remove-ADGroupMember 'groupname' $invalidUsers -WhatIf
删除-WhatIf 开关以实际删除组成员,而不是进行试运行。