我有一个广告组列表。我想检查这些组中的每一个是否都是父组的 MemberOf。如果是这样,我想列出父组。例如:子组 1 没有父组,因此它不必列出任何内容。子组 2 有 2 个父组(2 个组的成员也是如此),我想列出这 2 个组。等等...
我从一个简单的代码开始:
get-adgroup -filter "CN -eq 'Child2'" -properties memberof | select memberof
我得到的结果几乎是我想要的:
{CN=Parent1,OU=ABC,CN=Parent2,OU=ABC} 的成员
所以这行得通,尽管我不想看到“CN=”部分和“OU=”部分,只看到组名。
下一步我尝试了以下代码:
Import-Csv -Path H:\Test\Input_ADGroup.csv |
ForEach-Object {
$Group = Get-ADGroup -filter "CN -eq '$($_.CN)'" -properties memberof
[PSCustomObject]@{
SourceCN = $_.CN
MemberOf = $Group.memberof
}
} | Export-Csv -Path H:\Test\Output_ADGroup.csv -NoTypeInformation
使用上面的代码时,它不能正常工作。它显示了一个包含输入组(子组)的列表,但输出组(父组)显示为: “Microsoft.ActiveDirectory.Management.ADPropertyValueCollection” 当输出包含 2 个或更多(父)组时,它以某种方式不起作用。
我尝试的另一个选项是使用该Get-ADPrincipalGroupMembership
函数,但这总是给我一个错误:Get-ADPrincipalGroupMembership : The operation is not executed because the user has not been authenticated
任何人都有一些想法如何帮助我获取文件中每个 AD 组的父组?
提前致谢。