我想从带有广告组的文件中检索父广告组



我有一个带有广告组的列表。我想检查这些组是否是父组的成员。如果是这样,我想列出父组。举个例子:儿童组1没有父母组,因此不必列出任何内容。孩子组2有2个家长组(因此是2组的成员(,我想列出这两个组。等等...

我从一个简单的代码开始:

get-adgroup -filter "CN -eq 'Child2'" -properties memberof | select memberof

我得到的结果几乎是我想要的:

成员
{cn = parent1,ou = abc,cn = parent2,ou = abc}

所以这有效,但我不想看到'cn ='零件和'ou ='部分,只是groupname(s(。

下一步我尝试了以下代码:

Import-Csv -Path H:TestInput_ADGroup.csv | 
ForEach-Object {
    $Group = Get-ADGroup -filter "CN -eq '$($_.CN)'" -properties memberof 
    [PSCustomObject]@{
        SourceCN = $_.CN
        MemberOf = $Group.memberof
    }
} | Export-Csv -Path H:TestOutput_ADGroup.csv -NoTypeInformation

使用上面的代码时,它无法正常工作。它显示了带有输入组(子组(的列表,但输出组(父组(显示为:" Microsoft.activedirectory.Management.AdpropertyValueCollection" 当输出包含2个或更多(父(组时,它以某种方式不起作用。

我尝试的另一个选项是使用Get-ADPrincipalGroupMembership函数,但这总是给我一个错误: Get-AdprinCipalGroupMembership:由于未经认证

,未执行请求的操作。

有人有一些想法,如何帮助我获取文件中每个广告组的父组?

预先感谢。

以下代码可以做到这一点,尽管它需要在Excel中进行一些手动操作。

Import-Csv -Path H:PowershellInput_ADGroup.csv | 
ForEach-Object {
    $Group = Get-ADGroup -filter "CN -eq '$($_.CN)'" -properties memberof 
    [PSCustomObject]@{
        SourceCN = $_.CN
        MemberOf = $Group.MemberOf -join ";"
    }
} | Export-Csv -Path H:PowershellOutput_ADGroup.csv -NoTypeInformation
H:PowershellOutput_ADGroup.csv 

在A列中它输出源广告组(子(和父组。如果有多个父组,则输出到C列C,D,E等。另外,输出(父组(显示为" cn = parent1,ou = abc ..."所以我使用了Find&替换Excel中的选项以删除CN/OU部件。另外,由于很多输出可以是水平的(多个列(,因此需要一些复制。但是我确实得到了我需要的输出……所以谢谢。

最新更新