Пока вы знаете имя группы, вы можете запустить следующий (безобразный) квазиодинлайн:
## List Members in a Group
$groupname = 'GroupNameHere'
(New-Object System.DirectoryServices.DirectoryEntry((New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=Group)(name=$($groupname)))")).FindOne().GetDirectoryEntry().Path)).member | % { (New-Object System.DirectoryServices.DirectoryEntry("LDAP://"+$_)) } | Sort-Object sAMAccountName | SELECT @{name="User Name";expression={$_.Name}},@{name="User sAMAccountName";expression={$_.sAMAccountName}}
Кроме того, поскольку вы редко делаете одну без другой, я также собираюсь включить способ перечисления всех групп для пользователя, используя тот же базовый подход:
## List Groups for a Username
$username = 'UsernameHere'
(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($username)))")).FindOne().GetDirectoryEntry().memberOf | % { (New-Object System.DirectoryServices.DirectoryEntry("LDAP://"+$_)) } | Sort-Object sAMAccountName | SELECT @{name="Group Name";expression={$_.Name}},@{name="Group sAMAccountName";expression={$_.sAMAccountName}}
Оба эти запроса запрашивают ваш текущий домен и не требуют какой-либо квалификации домена, а также не требуют установки каких-либо модулей или дополнительных библиотек. Я также время от времени работаю в довольно ванильной среде с минимальными разрешениями, где мне нужно искать через AD, и я обнаружил, что эти две команды помогают мне в этом.