Назад | Перейти на главную страницу

Active Directory удаляет пользователя из GroupS, если он входит в группу B

Как в Active Directory эффективно удалить всех пользователей из GroupA, которые являются членами GroupB? В основном я хочу вычесть B из A.

Есть сейчас:

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

Желательно:

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

В данный момент у меня есть списки пользователей в csv, но при необходимости я могу быстро преобразовать их во что-нибудь другое:

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

Я не администратор AD, а просто пользователь, имеющий права записи для этих групп.

Веб-службы Powershell Active Directory. Поставляется со всеми контроллерами домена 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.