搜索所有 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

提问人:NuckinFutz 提问时间:11/10/2023 最后编辑:NuckinFutz 更新时间:11/14/2023 访问量:37

问:

有点难住了。我正在尝试创建一个 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()}}

}
PowerShell 安全 筛选器 PowerShell-cmdlet GPO

评论


答: 暂无答案