首页/系统/Windows 运维速查/dcdiag 域控健康体检

dcdiag 域控健康体检

域控排障第一工具:连通性、复制、DNS、FSMO、时间等一排测试,异常项逐条给结论。

Windows 运维速查系统更新于 2026-10-13

dcdiag 是什么

dcdiag 是域控排障的第一件工具:对着指定域控依次跑连通性、广播(Advertising)、复制、服务、DNS、FSMO 角色、时间等一系列测试,把「域控现在到底健不健康」变成一个可读的结论清单。它最实用的地方是能提前发现隐患——很多复制与 DNS 问题在用户报障之前就已经在 dcdiag 输出里出现了。

基本信息

适用平台Windows Server 域控(AD DS 角色),CMD 运行
基本语法dcdiag [/s:服务器名] [/v] [/q] [/test:测试名]
常用开关/v 详细输出、/q 只显示错误、/test: 指定单项测试、/fix 尝试修复部分问题
常跑测试Connectivity、Advertising、Replications、Services、DNS、SysVolCheck、MachineAccount、KnowsOfRoleHolders
权限要求建议以域管理员身份运行,普通用户下多项测试会被跳过
输出量默认输出已不短,加 /v 会非常长,建议重定向到文件
日志位置可与事件日志交叉验证:目录服务日志与 DNS 服务器日志

典型使用场景

  • 日常体检:定期对全部域控跑一遍,留存对比基线
  • 复制异常:先 dcdiag 再 repadmin,判断是局部问题还是拓扑问题
  • DNS 排障:/test:dns 检查 SRV 记录、转发器与动态更新
  • 角色转移前后:确认源与目标域控的健康状态
  • 重大变更前:升级、迁移或打补丁前先确认基础健康

常用示例

常用示例
dcdiag                                  # 对本地域控跑默认测试集
dcdiag /s:DC01                          # 指定目标域控
dcdiag /q                               # 只输出错误,适合批量巡检
dcdiag /v > D:\diag\dcdiag_v.txt        # 详细输出重定向留档
dcdiag /test:DNS /v /s:DC01             # DNS 专项(AD 最常见的问题源)
dcdiag /test:Replications /test:Advertising /test:Services   # 只跑关键项
dcdiag /test:SysVolCheck /test:MachineAccount                # 检查 SYSVOL 与机器账户
REM 逐台域控执行并回收结果,形成全林体检
dcdiag /s:DC02 /q >> D:\diag\all_dcs.txt

常跑测试项含义

测试项检查什么异常常见原因
Connectivity基础连通与命名上下文可用性网络、防火墙、DNS 解析
Advertising域控是否对外广播自身角色服务未启动、DNS 记录缺失
Replications复制链路与延迟RPC 不通、时间偏差、拓扑异常
Services关键服务是否运行服务被停用或启动失败
DNSSRV 记录、转发器、动态更新DNS 指向公网、记录缺失
SysVolCheckSYSVOL 共享与复制状态共享缺失、复制中断
KnowsOfRoleHoldersFSMO 角色持有者是否可达角色持有者离线
MachineAccount机器账户与安全通道密码不同步、账户被删
域控的 DNS 设置是最常见的隐患:域控应把首选 DNS 指向自身或另一台域控,而不是指向公网服务器。指向公网会导致 SRV 记录解析失败,进而出现登录缓慢、复制报错等一连串问题。
输出很长时按顺序读:先看哪些测试为 failed,再看警告(具有关键影响的项目),最后才逐条深挖。把 /q 与 /v 结合使用——先 /q 定位问题,再对具体测试项加 /v 细看。

与其它工具配合

与其它工具配合
dcdiag /q                               # 1. 快速找错误
dcdiag /test:DNS /v                     # 2. DNS 专项深挖
repadmin /replsummary                   # 3. 复制汇总(全局视角)
repadmin /showrepl                      # 4. 复制明细(按分区与邻居)
REM 5. 事件日志交叉验证(PowerShell 中执行)
REM Get-WinEvent -LogName 'Directory Service' -MaxEvents 50
REM Get-WinEvent -LogName 'DNS Server' -MaxEvents 50
/fix 会实际修改配置(例如重新注册 SPN 或修正机器账户),不是只读检查。生产域控上执行前先确认影响并做好记录,非必要不使用;排障阶段建议先只做只读检查。

易错点

  • 用普通用户账号运行 dcdiag:大量测试被跳过,输出看似正常却漏掉关键问题
  • 直接看 /v 的全量输出:内容过多反而抓不住重点,应先看失败项再看警告
  • 把 dcdiag 当实时监控用:它是按需体检工具,长期观测应结合复制监控与事件日志告警
  • 域控 DNS 指向公网服务器:SRV 记录解析失败,引发登录与复制的一系列异常
  • 随手加 /fix:会实际改动配置,需在确认问题原因并有记录的前提下使用

数据来源与参考

  • Microsoft Learn:dcdiag
  • Microsoft Learn:Active Directory 诊断

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌