dcdiag是windows server中诊断域控制器健康状态最常用的命令行工具,可执行全项检查(/v)、静默扫描(/q)、指定dc(/s:)、专项测试(如/test:dns)及跨林扫描(/e)等,输出结果需结合事件日志、dns和时间同步进一步分析。
dcdiag 是 windows server 中诊断域控制器(dc)健康状态最常用、最直接的命令行工具。它不依赖图形界面,能快速验证关键服务是否就绪、配置是否合规、通信是否通畅,适合日常巡检和故障初筛。
基础用法:快速跑一次全项检查
在域控制器上以管理员身份打开命令提示符,执行:
-
dcdiag /v > dcdiag_report.txt—— 运行全部默认测试,并将详细结果保存到当前目录的文本文件中 -
dcdiag /q—— 只输出错误信息,适合快速扫一眼有没有明显失败项 -
dcdiag /s:DC02—— 指定对另一台域控制器(如 DC02)运行测试(需有相应权限)
按需聚焦:只查你关心的问题
不必每次都跑全部测试。常见排查场景可针对性调用:
- 检查 DNS 注册是否正常:
dcdiag /test:dns - 验证复制是否通畅:
dcdiag /test:replications - 确认 FSMO 角色持有者是否在线且响应:
dcdiag /test:fsmocheck - 检测安全描述符与权限问题:
dcdiag /test:security - 单独看 Netlogon 服务状态:
dcdiag /test:netlogons
多个测试可合并,例如:dcdiag /test:dns /test:replications /test:fsmocheck /v
跨域或跨站点诊断:指定范围运行
默认只查当前域控制器所在域。如需扩大范围:
-
dcdiag /e—— 扫描整个林(Enterprise)中所有域控制器 -
dcdiag /a—— 仅扫描当前站点(Site)内所有 DC -
dcdiag /n:dc=contoso,dc=com—— 明确指定命名上下文(如特定域名),避免因林中多域导致误判
结合日志与后续动作
dcdiag 输出只是“症状”,不是“病因”。看到某项失败(比如 Replications Check 报错 5 “Access is denied”),需进一步查:
- 对应 DC 的事件查看器 → 目录服务日志、NTDS KCC、NETLOGON 日志
- DNS 是否解析出正确的 SRV 记录:
nslookup _ldap._tcp.dc._msdcs.contoso.com - 是否时间偏差超 5 分钟(Kerberos 失败主因):
w32tm /query /status - 必要时配合
repadmin /showrepl查看复制拓扑细节











