在我的例子中,一些嵌套组也是空的,但由于它们是父组的成员,因此该父组不会在我的输出中标记为空。我是 Powershell 的新手,因此任何帮助都值得感激。
我已经看到您可以使用递归Get-ADGroupMember
,但我不确定如何在我的脚本中使用它,因为我用它Get-ADGroup
来搜索 OU 中的每个组。
Get-ADGroup -SearchBase $OU -Filter "GroupCategory -eq 'Security'" -Properties Members | Where-Object {$_.Members.count -eq 0} | Export-Csv -Path "c:\temp\test"
是否也可以搜索嵌套组?
答案1
利用Get-ADPrincipalGroupMembership
,加上计算属性,无缝地将Name
属性值重新分配为命令-Identity
中参数的参数select-object
,可以有效地促进目标的实现。
通过使用提供的代码片段,您可以成功实现所需的结果。您可以随意探索进一步的修改以满足您的要求。
电源外壳
$ZeroMemberGroups = Get-ADGroup -SearchBase $OU -Filter "GroupCategory -eq 'Security'" -Properties Members | Where-Object {
$_.Members.count -eq 0} | Select-Object Name,
@{N="MemberCount";E={$_.Members.count}},
@{N="MemberOfGroups";E={(Get-ADPrincipalGroupMembership -Identity $_.Name).Name}
};
##$ZeroMemberGroups;
##$ZeroMemberGroups.MemberOfGroups;
$NestedZeroGroups = $ZeroMemberGroups.MemberOfGroups | ForEach-Object {
If($_) {Get-ADGroup "$_" -Properties Members | Where-Object {
$_.Members.count -eq 0} | Select-Object Name}
};
($ZeroMemberGroups).Name;
($NestedZeroGroups).Name;
示例输出 1
Name MemberCount MemberOfGroups
---- ----------- --------------
Cool Cat 0
Rude Cat 0
Cool Laptops 0 {Cat Laps, Cat Food}
Cool Rat 0
Rude Rat 0
Happy Dog 0
Sad Dog 0 Give - Meds
Mean Dog 0
Mean Cat 0
示例输出 2
Cool Cat
Rude Cat
Cool Laptops
Cool Rat
Rude Rat
Happy Dog
Sad Dog
Mean Dog
Mean Cat
Cat Laps
Cat Food
Give - Meds