如何使用PowerShell Where-Object过滤AD内置组和不需要的用户组
AD用户待移除组筛选实现方案
你可以直接扩展Where-Object的过滤条件,同时叠加排除规则、待移除组匹配规则即可,修改后代码如下:
Get-ADPrincipalGroupMembership -Identity $UserPrincipalname | Where-Object { $_.Name -NotLike "FIM.*" -and $_.Name -ne "Domain Users" -and # 以下为待移除组的匹配规则,可根据实际组命名规则调整 ($_.Name -match "Application-Securitygroups" -or $_.Name -match "Delivery-groups") } | Select-Object Name
规则说明
- 过滤逻辑采用与关系,所有条件同时满足才会被保留为待移除组
- 如果需要批量过滤更多内置组,无需逐个枚举组名,可通过SID前缀判断,将下方条件补充到
Where-Object的规则中即可覆盖所有内置本地组和Domain Users:$_.SID -notmatch "^S-1-5-32-" -and $_.SID -notlike "*-513"
小提示:如果后续要执行移除用户组的操作,建议同时查询组的
DistinguishedName属性,避免重名组导致操作错误,将Select-Object Name替换为Select-Object Name,DistinguishedName即可。
内容的提问来源于stack exchange,提问作者Louis Betsche
相关产品推荐
相关产品推荐

