PowerShell 是监控 AD 域控制器健康状态最直接、最可控的方式,涵盖在线与复制健康、FSMO 角色与服务状态、DNS 与 Kerberos 健康、账户与策略异常四大维度,全部使用系统原生命令实现。
powershell 是监控 ad 域控制器健康状态最直接、最可控的方式——不依赖第三方工具,仅用系统原生命令就能覆盖关键运行指标。
在线状态与复制健康
域控制器若离线或复制中断,会直接影响登录、组策略和密码同步。重点检查两件事:
- 用 Test-NetConnection -ComputerName $DC -Port 389 验证 LDAP 端口连通性(比 ping 更准确,因部分环境禁 ICMP)
- 用 Get-ADReplicationPartnerMetadata -Target $DC -ErrorAction SilentlyContinue 获取各复制伙伴的最后同步时间;筛选 LastReplicationAttemptTime 超过 2 小时 的记录即视为异常
FSMO 角色与服务状态
FSMO 角色持有者不可用会导致新建用户失败、架构修改失败等严重问题;底层服务异常则使 AD 功能整体瘫痪。
- 执行 Get-ADForest | Select DomainNamingMaster, SchemaMaster 和 Get-ADDomain | Select PDCEmulator, RIDMaster, InfrastructureMaster,确认所有角色指向有效主机
- 对每台 DC 远程检查关键服务:Netlogon、NTDS、DNS、W32Time、KDC,命令为 Get-Service -ComputerName $DC Netlogon,NTDS,DNS,W32Time,KDC
DNS 解析与 Kerberos 健康
AD 严重依赖 DNS 发现域资源,Kerberos 认证失败是登录问题的常见根源。
- 测试全局编录发现:Resolve-DnsName -Name "gc._msdcs.$(Get-ADDomain).Name" -Server $DC -Type SRV -ErrorAction SilentlyContinue,返回结果即表示正常
- 查近 7 天 Kerberos 错误事件:Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4771,4768; StartTime=(Get-Date).AddDays(-7)} -ComputerName $DC,重点关注 krb_ap_err_bad_integrity 类错误
账户与策略异常信号
这些不是“硬件指标”,却是业务受影响的第一手信号。
- 统计本周锁定账户:Search-ADAccount -LockedOut -StartTime (Get-Date).AddDays(-7);突增需排查暴力破解或脚本误操作
- 检查组策略应用延迟:在客户端运行 gpresult /h gp_report.html 后分析“上次处理时间”,或远程调用 Invoke-Command -ComputerName $Client -ScriptBlock { Get-GPResultantSetOfPolicy -ReportType Html -Path "$env:TEMP\rsop.html" }

















