我有一个任务,我们有一个包含用户的.csv文件。应将CSV的内容与AD安全组进行比较。需要从AD组中删除CSV中 NOT 的任何用户。
过去,我已在CSV文件中列出的群组中添加/删除了用户,但如果用户不在CSV中,则无法删除这些用户。
我是否必须使用一个脚本将组成员转储到文件中,将此文件与CSV进行比较,然后CSV将创建组中用户的文件而不是CSV中的用户文件,然后将其用作我的删除用户的来源?
答案 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
开关以实际删除组成员,而不是进行干运行。