Как в 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.