Многие скажут вам посмотреть на атрибут пользователя memberOf
. Это будет хорошо работать в большинстве случаев.
Однако memberOf
показывает только группы с областью действия «Универсальный» в любом домене леса или «Глобальные» группы в одном домене. Он не будет отображать группы с областью «Локальный домен» (независимо от домена) или «Глобальные» группы в других доменах.
Чтобы гарантировать, что вы найдете все группы, членом которых является пользователь, вам необходимо выполнить поиск в каждом домене вашего леса, чтобы найти группы, членами которых он является:
Import-Module ActiveDirectory
$user = Get-ADUser "theuser"
$domains = (Get-ADForest).Domains
$groups = New-Object System.Collections.ArrayList
foreach ($domain in $domains) {
$groups.AddRange(@(Get-ADGroup -filter {member -eq $user.DistinguishedName} -Server $domain))
}
Тогда $groups
содержит список групп, и вы можете использовать Remove-ADGroupMember
для удаления пользователя из этих групп.
Опять же, это относится только к вам, если вы:
- В вашем лесу более одного домена и / или
- Использовать группы 'Local Local'