У меня есть 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 машин. Я довольно плохо знаком с этим так, любая справка значительно ценится.
Чтобы получить только участников, которые являются пользователями, а не группы:
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"}
}
Попробуйте следующее:
foreach ($group in $groups)
{
Get-ADGroupMember $group | select Name
}
Get-ADUser
ищет объект пользователя Active Directory, по сути вы пытаетесь использовать этот командлет для объекта группы Active Directory.