AD 故障排除

Active Directory · 第 10 篇 · 适用于 Windows Server 2019 / 2022 / 2025

📑 目录

  1. dcdiag 综合诊断
  2. repadmin 复制诊断
  3. DNS 相关排查
  4. 事件日志分析
  5. 常用故障代码表
  6. AD 数据库维护
  7. 常见问题

1. dcdiag 综合诊断

CMD/PowerShell - dcdiag 常用命令
# 运行全部测试(最全面的诊断)
dcdiag /test:DNS /test:Replication /test:Services /test:SysVolCheck /test:Advertising

# 只运行 DNS 测试
dcdiag /test:DNS /v

# 只运行复制测试
dcdiag /test:Replication

# 只检查 SYSVOL
dcdiag /test:SysVolCheck

# 检查 DC 是否正常播报自身
dcdiag /test:Advertising

# 输出到文件
dcdiag /a /v > C:\temp\dcdiag_output.txt

2. repadmin 复制诊断

CMD - repadmin 常用命令
# 复制摘要
repadmin /replsummary

# 显示 DC01 的所有复制连接
repadmin /showconn DC01.iehang.cn

# 强制所有 DC 全部同步
repadmin /syncall /A /d /e /q

# 显示复制队列
repadmin /queue *

# 检查特定分区复制
repadmin /showrepl * /errorsonly

# 显示所有 DC 列表
repadmin /viewlist *

3. DNS 相关排查

PowerShell - DNS 诊断
# 检查 DNS SRV 记录
Resolve-DnsName "_ldap._tcp.dc._msdcs.iehang.cn" -Type SRV
Resolve-DnsName "DC01.iehang.cn" -Type A

Resolve-DnsName "_kerberos._tcp.dc._msdcs.iehang.cn" -Type SRV

# 检查 DNS 区域是否存在
Get-DnsServerZone -Name "iehang.cn"

# 清除 DNS 缓存
Clear-DnsServerCache -Force
ipconfig /flushdns

# 测试与 DC 的网络连通性
Test-NetConnection -ComputerName "DC01.iehang.cn" -Port 389
Test-NetConnection -ComputerName "DC01.iehang.cn" -Port 135

4. 事件日志分析

PowerShell - AD 相关事件日志
# 查看 DNS 服务器事件(最近 24 小时)
Get-WinEvent -LogName "DNS Server" -MaxEvents 50

# 查看 Directory Service 事件(警告和错误)
Get-WinEvent -LogName "Directory Service" -Level 2,3 -MaxEvents 30

# 查看复制事件
Get-WinEvent -FilterHashtable @{LogName="Directory Service"; ID=1586,1864,1925,1988}

# 查看 NTDS 诊断日志
Get-WinEvent -LogName "DFS Replication" -MaxEvents 20

5. 常用故障代码表

事件 ID来源含义解决方向
2886DNSDNS 动态更新未启用检查 DNS 区域安全设置
1864NTDS Replication入站复制失败检查网络和 DNS
1988NTDS Replication复制入站日志丢失检查 USN 回滚
1925NTDS Replication尝试建立复制链接失败检查 KCC 和站点链接
13508DFS ReplicationDFS 复制正常建立信息性,无需处理
13516NetlogonDC 已成功播报正常
5722Netlogon计算机账户密码不匹配重置计算机账户(Reset-ComputerMachinePassword

6. AD 数据库维护

CMD - 数据库维护
# 联机碎片整理(不中断服务)
ntdsutil dsdb maintenance "activate instance ntds" online defrag to D:\defrag\ntds.dit quit quit

# 查看数据库大小
ntdsutil dsdb maintenance "activate instance ntds" files quit quit

# 离线整理(需要重启进入 DSRM)
ntdsutil "activate instance ntds" files
ntdsutil "activate instance ntds" compact to D:\compact\ntds.dit

# 语义分析(检查数据库完整性)
ntdsutil "activate instance ntds" semantic database analysis go

# 移动数据库文件(需在 DSRM 模式执行)
ntdsutil "activate instance ntds" move db to D:\NTDS move logs to D:\NTDS quit quit

7. 常见问题

Q1:dcdiag 全部通过但用户仍无法登录

检查:1) 时间同步(Kerberos 要求 DC 间时间差 <5 分钟,运行 w32tm /resync);2) 确认用户所在计算机的 DNS 指向正确的 DC;3) 检查 Netlogon 服务是否运行。

Q2:DC 无法启动,如何紧急修复

1) 启动进入 DSRM 模式;2) 使用 wbadmin 恢复系统状态备份;3) 如果没有备份,可以用 ntdsutil 快照恢复(如果有其他 DC);4) 最后手段:强制降级为成员服务器(dcpromo /forceremoval)后重新提升。