dcdiag全面自检需组合/v /e /c /d参数执行全林详细检测,重点解读Failed项、Warning提示及被跳过测试,结合dnslint、repadmin等工具交叉验证真实风险。
直接用 dcdiag 做全面自检,核心是组合关键参数、覆盖关键测试项,并结合输出判断真实风险点,不是只看“passed”就完事。
基础全量检测命令
在域控制器上以管理员身份打开 PowerShell 或 CMD,运行:
- dcdiag /v /e /c /d —— 这是最常用的一站式命令
- /v:显示全部细节,包括通过和失败项
- /e:强制检查整个林(enterprise)中所有域控制器,不因某台失败而中断
- /c:执行全部默认+非默认测试(跳过 DcPromo 和 RegisterInDNS)
- /d:启用严格 DNS 检查,验证 SRV、A、CNAME 等 AD 必需记录
按模块重点验证关键子项
如果基础命令输出较长或需定向排查,可单独运行以下高频测试:
- dcdiag /test:connectivity —— 验证本机能否解析自身、ping通伙伴DC、建立 LDAP/RPC 连接
- dcdiag /test:replications —— 检查复制是否正常,是否丢失伙伴、延迟过高或出现 USN 回滚
- dcdiag /test:dns —— 检测 DNS 服务状态、正向/反向查找区配置、AD 相关记录是否存在
- dcdiag /test:services —— 确认 Netlogon、KDC、DNS Server、NTDS 等核心服务是否运行且无异常启动失败
- dcdiag /test:sysvolcheck —— 核查 SYSVOL 共享路径、NTFRS/FRS 或 DFSR 复制状态、ACL 权限是否正确
结果解读与常见陷阱
别只扫一眼“已通过测试”。重点关注三类内容:
- Failed 测试项:如 DNS test failed 或 Replications test failed,后面会附带错误代码(如 0x2197 表示 Kerberos 时钟偏差)和建议操作
- Warning 提示:例如 "The server is not advertising as a time server",虽不阻断登录,但长期会导致 Kerberos 认证失败
- 被跳过的测试:比如 CheckSecurityError 默认不运行,如怀疑权限问题,需显式加 /test:checksecurityerror
输出保存与后续动作
诊断结果建议导出为文本便于归档和比对:
- dcdiag /v /e /c /d > C:\dcdiag_full_$(Get-Date -Format 'yyyyMMdd-HHmm').txt(PowerShell)
- dcdiag /v /e /c /d > C:\dcdiag_full.log(CMD)
- 发现异常后,不要孤立处理。例如 DNS 报错,应同步用 dnslint /ad 和 nslookup _ldap._tcp.dc._msdcs.yourdomain.com 交叉验证
- 若复制异常,立即补查 repadmin /showrepl 和 repadmin /replsummary,确认是否全林范围受影响










