通过Get-ADObject获取嵌套的组成员

时间:2018-11-20 10:28:37

标签: powershell

我有一个具有分发范围的通用组,并且有属于该DL的联系人和组以及用户。我正在尝试执行以下命令,但无法使用Powershell获取组或用户的详细信息。这些组中嵌套了包含用户的组。

如何从AD Powershell cmdlet导出通讯组中的嵌套组成员和用户?

示例: A组 成员= asmith(联系人),jbloggs,B组(成员= kbrown)

这是我的代码:

$memberof=get-adgroup -Filter "Name -like 'IT*'" |select -expandproperty distinguishedname

#$distinguishedName = $memberof -replace "(CN=)(.*?),.*",'$2'

foreach ($memberof1 in $memberof) { 

$distinguishedName = $memberof1 -replace "(CN=)(.*?),.*",'$2'

Get-ADObject -Filter 'memberof -eq $memberof1 -and (objectClass -eq "user" -or ObjectClass -eq "contact" -or objectclass -eq "group")' -properties *|select name | Export-csv -Path "C:\temp\$distinguishedName.csv" -NoTypeInformation -Encoding UTF8

}

1 个答案:

答案 0 :(得分:2)

通过Get-ADGroupMember参数开关使用-Recursive

$AllMembers = Get-ADGroup -Filter "Name -like 'IT*'" |Get-ADGroupMember -Recursive

或为memberOf属性使用special in-chain operator in an LDAP query filter

$GroupDN = Get-ADGroup -Filter "Name -like 'IT*'" |Select -Expand DistinguishedName
$AllMembers = Get-ADUser -LDAPFilter "(memberof:1.2.840.113556.1.4.1941:=$GroupDN)"