我有一个具有分发范围的通用组,并且有属于该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
}
答案 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)"