如果用户是 GroupB 成员,则 Active Directory 从 GroupA 中删除该用户

如果用户是 GroupB 成员,则 Active Directory 从 GroupA 中删除该用户

在 Active Directory 中,如何有效地从 GroupA 中删除属于 GroupB 的所有用户?基本上,我想从 A 中减去 B。

現在有:

AAA         BBB
---         ---
Alice       Alice
Charlene    Bruce
Chuck       Chuck

期望:

AAA         BBB
---         ---
            Alice
Charlene    Bruce
            Chuck

我目前有 csv 格式的用户列表,但如果需要的话,可以快速重新组织为其他内容:

logon, group
alice, AAA
alice, BBB
bruce, BBB
...

我不是 AD 管理员,只是对这些组具有写权限的用户。

答案1

Powershell Active Directory Web 服务。默认情况下,所有域控制器 2008 R2 或更高版本均随附。

# This foreach loop enumerates through all members of the AAA group.
Foreach ($Usr In Get-ADGroupMember -Identity 'CN=AAA,CN=Users,DC=Contoso,DC=com')
{
    # If the 'MemberOf' array of $Usr's group memberships contains 'BBB', then...
    If ((Get-ADUser $Usr.SamAccountName -Properties MemberOf).MemberOf -Contains 'CN=BBB,CN=Users,DC=contoso,DC=com')
    {
        # Remove that user from 'AAA'.
        Remove-ADGroupMember -Identity 'AAA' -Members $Usr.SamAccountName
    }
}

这将删除组“AAA”中所有同时属于组“BBB”的成员。无需 CSV。

如果您使用的 Powershell 3 版本以下,请Import-Module ActiveDirectory在开始使用 AD cmdlet 之前使用。

相关内容