USN回滚是逻辑时钟倒退导致的静默故障,需立即隔离并重建:第一步查事件2095、repadmin错误码8456/8461及dcdiag中“USN is lower than expected”;第二步断网隔离该DC;第三步DSRM下用esentutl /p修复ntds.dit;第四步重置复制元数据并验证一致性。
usn回滚不是普通复制失败,而是逻辑时钟被倒退引发的“静默故障”——repadmin可能显示一切正常,但实际修改根本不会同步。必须立即隔离、确认、重建,不能只重启服务或清日志。
第一步:确认是否真发生了USN回滚
不要依赖repadmin单方面判断。重点查三处:
- 目录服务事件日志中是否存在事件ID 2095(明确提示USN回滚已检测到)
- 运行repadmin /showrepl /verbose,查看各复制伙伴的“Last attempt”时间是否异常停滞,且错误码长期为8456(源服务器拒绝复制)或8461(被抢占)
- 用dcdiag /test:kccevent /test:replications /v,若输出中出现ERROR_DS_DRA_BAD_DN或反复提示“USN is lower than expected”,基本可锁定
第二步:停止传播,隔离出问题的DC
USN回滚具有传染性。一旦确认,立刻执行:
- 将该DC从网络物理或逻辑断开(禁用网卡或拔线),防止它向其他DC广播错误USN
- 勿尝试在该DC上运行repadmin /syncall或强制推送,会加剧元数据混乱
- 检查它是否是架构主机或域命名主机——若是,需优先协调林级操作,避免触发ERROR_DS_SCHEMA_MISMATCH
第三步:离线修复ntds.dit并重置复制状态
修复核心是抛弃损坏的USN序列,重建干净起点:
- 重启进入目录服务还原模式(DSRM),以管理员身份打开CMD
- 执行net stop ntds确保服务完全停止
- 运行esentutl /g "C:\Windows\NTDS\ntds.dit" /v /x验证底层是否一致;若报“Orphaned child record”或“Page checksum mismatch”,说明需修复
- 执行esentutl /p "C:\Windows\NTDS\ntds.dit"强制重建数据库头(注意:会永久丢弃无法解析的记录,如孤立安全描述符或断裂的memberOf引用)
- 修复后立即运行esentutl /d "C:\Windows\NTDS\ntds.dit"整理碎片,再用ntdsutil "activate instance ntds" files "recover"完成恢复
第四步:重置复制元数据并验证一致性
数据库修好只是基础,复制链必须重新锚定:
- 启动NTDS服务后,先跑dcdiag /test:checkdatabase确认无未提交事务
- 用repadmin /options
检查是否仍带IS_GC或DISABLE_INBOUND_REPL等异常标记,有则清除 - 执行repadmin /rodcpwdreset
重置只读副本密码(如适用),再运行repadmin /syncall /AdeP发起全量同步 - 最后用repadmin /showrepl /verbose和dcdiag /test:verifyreplicas交叉验证USN连续性、InvocationID唯一性及对象版本号是否自洽
整个过程不能跳过离线校验与元数据清理。虚拟化环境中更要确认VM生成ID是否更新——若快照回滚未触发ID变更,说明平台不支持防护,后续应禁用快照,改用系统状态备份。

















