Powershell, как проверить членство в группах для пользователей AD - PullRequest
2 голосов
/ 11 февраля 2011

Я хочу проверить пользователей в определенном подразделении, если они являются членами групп (и каких) из другого определенного подразделения.Как я могу это сделать ?

Пример: у меня есть три OU для пользователей (users1OU, users2OU, users3OU) и два OU для различных групп (grups1OU, groups2OU).

Теперь я хочу узнать для пользователей из OU users1OU, членами которых являются группы из OU groups2OU, они являются.

Я использую powershell 2.0 и выигрываю 2008.

1 Ответ

3 голосов
/ 11 февраля 2011

Используя модуль activedirectory из инструментов RSAT:

 Import-Module activedirectory

 $memb = @{}
 foreach ($group in get-adgroup -searchbase "ou=groups2OU,dc=domain,dc=tld" -filter *){
 get-adgroupmember $group |? {$_.distinguishedname -like "*ou=users1OU,*"}|
 %{$memb[$_.name] += @($group.name)
 }
}
$memb

Перечислите группы в groups2OU, получите членов группы и используйте отличительное имя, чтобы отфильтровать группы в users1OU.Создайте хеш-таблицу, используя имя пользователя в качестве ключа, и соберите коллекцию имен групп в качестве значения.

Когда вы закончите, выполните цикл по ключам хеш-таблицы и выведите имя пользователя (ключ) ичленство в группах (значение) в любом формате отчета.

...