使用 Powershell 从 Active Directory 组中获取所有用户

yhu*_*ain 1 powershell active-directory

我编写了一个 powershell 脚本,它从一个 OU 中获取所有组并将它们存储在变量 $groups 中。我希望能够访问每个组的用户,但似乎遇到了问题。我试过了:

foreach($group in $groups){$get-ADUser $group}
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

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
Run Code Online (Sandbox Code Playgroud)

我在 Windows 7 机器上使用 Windows Server 2003 R2。我对此很陌生,因此非常感谢任何帮助。

Mat*_*sen 5

检索作为用户而不是组的成员:

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

如果您希望用户间接成为组成员(通过嵌套组成员身份),请使用-Recursiveswitch 参数:

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

然后,您可以将输出分配给一个变量以供进一步使用,如下所示:

$AllGroupMembers = foreach($group in $groups)
{
  Get-ADGroupMember $group -Recursive | Where-Object {$_.objectClass -eq "user"}
}
Run Code Online (Sandbox Code Playgroud)