如何用PowerShell移除AD组策略中SidType为Unknown的权限对象?
移除Active Directory组策略中SidType为Unknown的权限对象
核心解决思路
由于Set-GPPermission不支持Unknown类型的目标对象,我们可以通过获取完整权限集合→过滤移除未知SID条目→重新应用清理后的权限集合的方式处理,核心依赖GPO对象的GetSecurityInfo()和SetSecurityInfo()方法。
具体操作步骤
定位目标GPO对象
使用Get-GPO获取需要处理的组策略:$gpo = Get-GPO -Name "你的目标GPO名称" # 也可通过GUID定位:Get-GPO -Guid "目标GPO的GUID值"提取当前完整权限集合
调用GPO对象的方法获取所有权限条目:$currentPermissions = $gpo.GetSecurityInfo()过滤移除未知SID权限
筛选排除Trustee.SidType为Unknown的权限条目:$cleanedPermissions = $currentPermissions | Where-Object { $_.Trustee.SidType -ne [System.DirectoryServices.ActiveDirectory.SidType]::Unknown }重新应用清理后的权限
将过滤后的权限集合覆盖原GPO的权限设置:$gpo.SetSecurityInfo($cleanedPermissions)
关键注意事项
- 操作前务必备份目标GPO,避免误操作:
Backup-GPO -Name "目标GPO名称" -Path "指定备份路径" - 执行操作需要具备GPO编辑权限或域管理员权限
- 建议先在测试环境验证效果,再推广到生产环境
内容的提问来源于stack exchange,提问作者Air_
相关产品推荐
相关产品推荐

