Получение всех пользователей от групп Active Directory Используя Powershell

У меня есть powershell сценарий, что я записал, что это получает все группы от OU и хранит их в переменном $groups. Я хочу смочь получить доступ к пользователям каждой группы, но, казаться, испытывать затруднения. Я попробовал:

foreach($group in $groups){$get-ADUser $group}

Который дает мне следующую ошибку:

You must provide a value expression on the right-hand side of the '-' operator.
At line:1 char:33
+ foreach($group in $groups){$get- <<<< ADUser $group}
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

Я использую Windows Server 2003 R2 на окна 7 машин. Я довольно плохо знаком с этим так, любая справка значительно ценится.

1
задан 25 April 2015 в 02:28
2 ответа

Чтобы получить только участников, которые являются пользователями, а не группы:

foreach($group in $groups)
{
  Get-ADGroupMember $group | Where-Object {$_.objectClass -eq "user"}
}

Если вы хотите, чтобы пользователи, являющиеся членами групп косвенно (через членство во вложенных группах), используйте параметр переключателя -Recursive :

foreach($group in $groups)
{
  Get-ADGroupMember $group -Recursive | Where-Object {$_.objectClass -eq "user"}
}

Затем вы можете назначить вывод переменной для дальнейшего использования, например:

$AllGroupMembers = foreach($group in $groups)
{
  Get-ADGroupMember $group -Recursive | Where-Object {$_.objectClass -eq "user"}
}
5
ответ дан 3 December 2019 в 16:21

Попробуйте следующее:

foreach ($group in $groups)
{
    Get-ADGroupMember $group | select Name
}

Get-ADUser ищет объект пользователя Active Directory, по сути вы пытаетесь использовать этот командлет для объекта группы Active Directory.

4
ответ дан 3 December 2019 в 16:21

Теги

Похожие вопросы