怎么利用PowerShell一键分析AD域内所有过期的GPO链接

轻晨小哥_7177

轻晨小哥_7177

2026-05-28

1021人浏览

原创

PowerShell无原生“一键检测过期GPO链接”命令,因GPO链接本身不自动过期;所谓“过期”实指四类失效情形:1.链接指向已删除/重命名OU;2.链接被禁用(Enabled=False);3.安全筛选器含无效SID;4.GPO自身用户/计算机配置被关闭。

powershell 本身没有“一键检测所有过期 gpo 链接”的原生命令,因为gpo 链接本身不会“过期”——它只是静态绑定在某个域、站点或 ou 上,只要对象存在、链接未被手动删除或禁用,链接就持续有效。

但实际运维中,所谓“过期的 GPO 链接”,通常指以下几种逻辑失效或配置异常**的情况:

1. 链接到已删除或重命名的 OU/容器

OU 被删除或重命名后,GPMC 中该链接仍显示为“已启用”,但目标容器 DN 已不存在。GPO 不会应用,且日志中常报错 0x80070002 或事件 ID 1058。

  • 用 Get-GPLink 获取全部链接,再逐个验证目标路径是否存在:
Get-GPLink -Domain "contoso.com" -All | ForEach-Object {
  $target = $_.Target
  if (-not (Get-ADOrganizationalUnit -Identity $target -ErrorAction SilentlyContinue)) {
    Write-Warning "链接失效:GPO '$($_.DisplayName)' 链接到不存在的路径 '$target'"
  }
}

2. 链接状态被禁用(Enabled = False)

链接虽存在,但被手动设为“已禁用”,或继承被阻止导致策略不生效。

  • 筛选出所有 Disabled = True 的链接:
Get-GPLink -Domain "contoso.com" -All | Where-Object { $_.Enabled -eq $false } | Select DisplayName, Target, Enabled

3. 安全筛选器中包含已删除/禁用的安全组或用户

GPO 启用了安全筛选,但其中引用的组(如 “GPO-App-Deploy-Group”)已被删除,或成员全被禁用,导致无人匹配。

  • 检查每个 GPO 的安全筛选器,并验证其中每个组是否真实存在:
Get-GPO -All | ForEach-Object {
  $gpo = $_
  $acl = Get-Acl "AD:\CN={$gpo.Id},CN=Policies,CN=System,$((Get-ADDomain).DistinguishedName)"
  $acl.Access | Where-Object { $_.ActiveDirectoryRights -match "ReadProperty|GenericRead" } | ForEach-Object {
    $sid = $_.IdentityReference.Value
    if ($sid -match "S-1-5-.*") {
      $obj = $null
      try { $obj = Get-ADObject -Identity $sid -ErrorAction Stop } catch {}
      if (-not $obj) { Write-Warning "GPO '$gpo.DisplayName' 安全筛选器含无效 SID: $sid" }
    }
  }
}

4. GPO 对象本身被禁用(User/Computer 配置关闭)

链接正常,但 GPO 内部的用户或计算机策略被整体关闭(flags 属性值非 0)。

  • 快速列出所有“用户配置禁用”或“计算机配置禁用”的 GPO:
# User Enabled / Computer Disabled
Get-ADObject -SearchBase "CN=Policies,CN=System,$((Get-ADDomain).DistinguishedName)" -Filter {(ObjectClass -eq "groupPolicyContainer") -and (flags -eq 2)} -Properties DisplayName | Select DisplayName

# User Disabled / Computer Enabled
Get-ADObject -SearchBase "CN=Policies,CN=System,$((Get-ADDomain).DistinguishedName)" -Filter {(ObjectClass -eq "groupPolicyContainer") -and (flags -eq 1)} -Properties DisplayName | Select DisplayName

这些检查加起来,就是真正意义上的“分析失效 GPO 链接”。不需要第三方工具,也不依赖图形界面——只需域管理员权限 + Active Directory 模块,就能定位绝大多数策略失联问题。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

980

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3372

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1116

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

989

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

514

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3116

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5872

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

907

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习