如何通过powershell获得一个广告组中包含多个子组的所有成员?

如何通过powershell获得一个广告组中包含多个子组的所有成员?,powershell,Powershell,我想得到所有广告组成员的名字,但其中有很多子组。 我想知道如何更改下面的代码以实现目标。 $UserList=Get-ADGroupmember-identity-adgroup |%{Get-aduser$|.samaccountname | select-userprincipalname}如果我正确理解了这个问题,您的代码几乎满足了您的需求,它现在只显示其他广告对象,而不仅仅是用户 如果是这种情况,则需要插入Where Object子句以过滤掉所有非用户对象: $UserList = Ge

我想得到所有广告组成员的名字,但其中有很多子组。 我想知道如何更改下面的代码以实现目标。
$UserList=Get-ADGroupmember-identity-adgroup |%{Get-aduser$|.samaccountname | select-userprincipalname}

如果我正确理解了这个问题,您的代码几乎满足了您的需求,它现在只显示其他广告对象,而不仅仅是用户

如果是这种情况,则需要插入
Where Object
子句以过滤掉所有非用户对象:

$UserList = Get-ADGroupmember -Identity adgroup -Recursive |
            Where-Object { $_.objectClass -eq 'user' } | ForEach-Object { 
                Get-ADUser -Identity $_.SamAccountName | Select-Object UserPrincipalName 
            }
这将返回一个对象数组。如果您需要的是一个字符串数组(仅限用户名),请将参数
ExpandProperty
添加到选择对象:

Select-Object -ExpandProperty UserPrincipalName

另外,如果您只想获得组中直接成员的用户列表,您可以删除
-递归开关如果我理解正确,您的代码几乎满足您的要求,它现在只显示其他广告对象,而不仅仅是用户

如果是这种情况,则需要插入
Where Object
子句以过滤掉所有非用户对象:

$UserList = Get-ADGroupmember -Identity adgroup -Recursive |
            Where-Object { $_.objectClass -eq 'user' } | ForEach-Object { 
                Get-ADUser -Identity $_.SamAccountName | Select-Object UserPrincipalName 
            }
这将返回一个对象数组。如果您需要的是一个字符串数组(仅限用户名),请将参数
ExpandProperty
添加到选择对象:

Select-Object -ExpandProperty UserPrincipalName

注意:如果您只想获取组中直接成员的用户列表,您可以删除
-Recursive
开关

,这样您只需要用户组成员,然后忽略嵌套/子组?那么您只需要用户组成员,然后忽略嵌套/子组?