如果用户不存在于CSV中,请从AD组中删除用户

时间:2017-01-04 11:23:08

标签: powershell active-directory

我有一个任务,我们有一个包含用户的.csv文件。应将CSV的内容与AD安全组进行比较。需要从AD组中删除CSV中 NOT 的任何用户。

过去,我已在CSV文件中列出的群组中添加/删除了用户,但如果用户不在CSV中,则无法删除这些用户。

我是否必须使用一个脚本将组成员转储到文件中,将此文件与CSV进行比较,然后CSV将创建组中用户的文件而不是CSV中的用户文件,然后将其用作我的删除用户的来源?

1 个答案:

答案 0 :(得分:1)

根据CSV中的相关用户属性创建列表(例如,可分辨名称)。使用Where-Object过滤器和-notcontains运算符,获取此列表中不存在的群组成员。然后从组中删除这些成员。

示例:

$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开关以实际删除组成员,而不是进行干运行。