提问人:NuckinFutz 提问时间:11/10/2023 最后编辑:NuckinFutz 更新时间:11/14/2023 访问量:37
搜索所有 GPO,从“范围”选项卡中专门查看“使用 PowerShell 进行安全筛选”中没有任何内容的 GPO 的“安全筛选”设置
search all GPOs to look specifically at the Security Filtering setting from the Scope tab for GPOs with nothing in Security Filtering with PowerShell
问:
有点难住了。我正在尝试创建一个 PowerShell 脚本来搜索所有 GPO,专门查找 GPO,而“范围”选项卡的“安全过滤”部分中没有任何内容。不幸的是,Get-GPPermissions会查看“委派”选项卡,委派选项卡上可能有内容,但“范围”选项卡上的“安全”筛选中没有内容。 所以我的想法是使用 Get-GPPermissions 并执行 -notmatch “Apply”,但当然,这给了我所有没有应用的 GPO 和权限,例如读取, 编辑等。
我的最终目标是让 PowerShell 脚本抽出未在“委派”选项卡中任何位置设置应用权限的 GPO 的名称。我目前也拥有它,以便我可以轻松地仔细检查结果。
当前代码得到以下结果。如您所见,它重复了 GPO 名称并列出了权限,当然是因为委派中有多个具有权限的帐户。
我试图做的是让它只列出在委派选项卡上没有具有“应用”权限的帐户的 GPO 名称,或者只列出在“范围”选项卡的安全过滤中没有任何内容的 GPO 名称。
GPOName | 帐户权限 |
---|---|
GPO-Name_edited | GpoEditDeleteModifySecurity |
GPO-Name_edited | GpoEditDeleteModifySecurity |
GPO-Name_edited | GpoEditDeleteModifySecurity |
GPO-Name_edited | Gpo读取 |
GPO-Name_edited-1型 | GpoEditDeleteModifySecurity |
GPO-Name_edited-1型 | GpoEditDeleteModifySecurity |
GPO-Name_edited-1型 | Gpo读取 |
这是我正在使用的代码:
$gpos = Get-GPO -All
foreach ($gpo in $gpos){
Get-GPPermissions -Guid $gpo.Id -All | where-object {$_.Permission -notmatch "Apply" } | Select-Object `
@{n='GPOName';e={$gpo.DisplayName}},
@{n='AccountPermissions';e={$_.Permission.ToString()}}
}
答: 暂无答案
评论