Группы Active Directory используются для множества разных целей, будь то фильтрация групповой политики или назначение определенных привилегий пользователям. Достаточно гибкая структура позволяет разграничивать объекты пользователей и компьютеров наиболее удобным для нас образом.
Но в то же время это приводит к образованию иерархии групп, состоящей из нескольких уровней, тем самым затрудняя определение, в какие же именно группы входит определенный пользователь. Для поиска подобной информации мы можем использовать командлеты модуля Active Directory.
Например поиск по объектам пользователей.
Исходя из
$SamAccName = 'Morozov-МB'
и
$Name = 'Морозов Марк Васильевич'
чтобы получить список групп, в которые непосредственно входит пользователь, мы можем поступить следующим образом:
Get-ADPrincipalGroupMembership -Identity $SamAccName
Если же нам понадобится узнать все группы, в которые он входит посредством вложенных групп, мы можем воспользоваться командлетом Get-ADAccountAuthorizationGroup:
Get-ADAccountAuthorizationGroup -Identity $SamAccName | Where-Object objectClass

