我一直想弄清楚如何获取所有空的 Active Directory 组。我想出了这个命令,它选择没有成员且不是任何成员的组。
Get-QADGroup -GroupType Security -SizeLimit 0 | where-object {$_.Members.Count -eq 0 -and $_.MemberOf.Count -eq 0} | select GroupName, ParentContainer | Export-Csv c:\emptygroups.csv
Run Code Online (Sandbox Code Playgroud)
这基本上是正确的,但它说某些组(如默认组域计算机)为空,但它不是空的。这个特定组只有计算机成员,但似乎没有选择其他只有计算机的组。
有谁知道为什么这个命令会吸引一些有成员的人?
小智 5
该Get-QADGroupcmdlet 有一个参数-Empty。帮助中的描述提示了这些默认组被返回的原因:
注意:如果没有设置“成员”属性,则组被认为是空的。因此,此参数可以检索仅具有将组设置为主要组的那些成员的组。一个例子是域用户组,它通常是任何用户帐户的主要组,但没有设置“成员”属性。
我不是很熟悉 Quest 的东西,但我能够通过这种方式找到空组(可能不是最有效的):
Get-ADGroup -Filter {GroupCategory -eq 'Security'} | ?{@(Get-ADGroupMember $_).Length -eq 0}
Run Code Online (Sandbox Code Playgroud)
这一行就可以了(Import-Module ActiveDirectory首先使用):
Get-ADGroup -Filter * -Properties Members | where { $_.Members.Count -eq 0 }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44317 次 |
| 最近记录: |