我编写了一个 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 7 机器上使用 Windows Server 2003 R2。我对此还很陌生,因此非常感谢任何帮助。
答案1
检索仅有的成员是用户,而不是组:
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"}
}
答案2
尝试这个:
foreach ($group in $groups)
{
Get-ADGroupMember $group | select Name
}
Get-ADUser
正在寻找 Active Directory 用户对象,您本质上要做的就是在 Active Directory 组对象上使用该 cmdlet。