PowerShell 检查域控制器健康状态的核心是结合 dcdiag、repadmin 和 Test-NetConnection:dcdiag 全面诊断 DNS、复制、Kerberos、FSMO 等功能完整性;repadmin 验证复制延迟与失败连接;Test-NetConnection 测试 LDAP(389)、GC(3268)、SMB(445)、Kerberos(88)等关键端口连通性,并辅以事件日志筛选定位错误。

用 PowerShell 检查域内各控制器的健康状态,核心是结合 dcdiag、repadmin 和 Test-NetConnection 三类工具,分别验证功能完整性、复制状态和基础连通性。不依赖 GUI,全程命令行可批量执行。
运行 dcdiag 全面诊断域控制器
dcdiag 是微软官方推荐的 AD 健康检查工具,能自动检测 DNS、复制、Kerberos、FSMO 角色等关键项。在任意域成员机或 DC 上以管理员身份运行:
- 检查所有域控制器:
dcdiag /e /v > dcdiag_report.txt(/e 表示全部 DC,/v 输出详细日志) - 只检查特定 DC:
dcdiag /s:DC01 /test:replications /test:knowsofroleholders - 重点看输出中 “passed” 与 “failed” 条目;若出现 “Test failed” 或 “Warning”,对应测试项需进一步排查(如 DNS 测试失败常指向 SRV 记录缺失)
用 repadmin 验证复制状态是否正常
复制异常是 AD 最常见故障根源。PowerShell 中可直接调用 repadmin 查看同步延迟、冲突和失败连接:
- 列出所有 DC 及其复制伙伴:
repadmin /replsummary(快速概览,标红表示失败) - 检查某台 DC 的入站复制状况:
repadmin /showrepl DC01(关注 “Last Attempt” 时间和 “Last Success” 是否在几分钟内) - 强制触发一次同步并观察结果:
repadmin /syncall /A /e DC01(/A 同步所有分区,/e 包含只读副本)
测试关键端口与网络连通性
即使服务启动,防火墙或网络策略也可能阻断 LDAP、SMB、Kerberos 等必需通信。用 Test-NetConnection 逐项验证:
- LDAP(端口 389):
Test-NetConnection -ComputerName DC01 -Port 389 - 全局编录(端口 3268):
Test-NetConnection -ComputerName DC01 -Port 3268 - SMB(端口 445):
Test-NetConnection -ComputerName DC01 -Port 445 - Kerberos(端口 88):
Test-NetConnection -ComputerName DC01 -Port 88 - 若某端口不通,再结合
Get-NetFirewallRule -DisplayName "*Active Directory*"检查本地防火墙规则
查看事件日志中的关键错误
PowerShell 可直接筛选 AD 相关错误事件,避免手动翻查事件查看器:
- 查询最近 24 小时目录服务错误:
Get-WinEvent -FilterHashtable @{LogName='Directory Service'; Level=2; StartTime=(Get-Date).AddHours(-24)} | Select TimeCreated, Id, Message - 检查文件复制服务(FRS 或 DFSR)异常:
Get-WinEvent -LogName 'File Replication Service' -Level 2 -MaxEvents 20 - 重点关注 ID 1925(复制失败)、ID 1311(DNS 解析失败)、ID 2087(FSMO 角色不可用)等高频错误码

















