AD域控制器关键文件故障需分三类处理:ntds.dit用esentutl /g /v /x校验、/p软修、/d碎片整理;SYSVOL共享丢失重启Netlogon/DFSR服务,结构损坏需同步注册表与ADSI Edit路径;事务日志通过esentutl /mh判状态,完整时用/r重放,修复后须dcdiag和repadmin分层验证并确认FSMO角色归属。
ad域控制器的关键文件出问题,不是重启服务就能解决的。真正要稳住环境,得盯住三类核心文件:ntds.dit(数据库本体)、sysvol(组策略和登录脚本载体)、以及事务日志(edb.log等)。它们各自损坏的表现不同,修复路径也完全不同。
ntds.dit 数据库逻辑一致性检查与修复
ntds.dit 是 AD 的心脏,但它的底层是 ESE 引擎,所以不能靠 ntdsutil 做深度校验——它只负责快照、元数据清理和脱机碎片整理。真正管逻辑一致性的工具是 esentutl.exe:
- 先停掉 NTDS 服务,再运行
esentutl /g "C:\Windows\NTDS\ntds.dit" /v /x:带/v和/x参数才能查出 memberOf 指向已删组、安全描述符损坏、USN 回滚异常等逻辑错误 - 若确认损坏,优先用
esentutl /p "C:\Windows\NTDS\ntds.dit"软修复——它会重建数据库头并尽力保留有效记录 - 软修后必须立刻执行
esentutl /d "C:\Windows\NTDS\ntds.dit"整理碎片,否则后续启动可能失败 - 硬修复(
/p /o)仅在无备份且软修失败时考虑,它会跳过损坏页,可能导致对象丢失或链接悬挂
SYSVOL 共享与结构恢复
SYSVOL 故障常表现为用户无法应用组策略、登录脚本不执行、甚至域控升级失败。注意区分两类情况:
-
共享丢失但结构完好:比如 net share 看不到 SYSVOL 共享,但
tree C:\Windows\SYSVOL能看到完整目录树。此时只需重启 Netlogon 和 DFSR 服务,系统会自动重建共享和 ACL -
结构损坏或路径变更:需手动迁移时,除了复制文件、修改注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\SysVol,还必须同步更新 ADSI Edit 中的msDFSR-RootPath和msDFSR-StagingPath,否则 DFSR 服务无法识别新位置
事务日志与数据库状态验证
数据库能否正常加载,取决于日志链是否完整。关键动作不是“修”,而是“判”:
- 用
esentutl /mh "C:\Windows\NTDS\ntds.dit"查看数据库头:若显示 State: Dirty Shutdown,说明上次未正常关机;若为 Invalid 或 Corrupt,则已确认损坏 - 若日志文件(edb.log、res1.log 及连续编号的 edb0000*.log)齐全,可用
esentutl /r edb /l "C:\Windows\NTDS\" /s "C:\Windows\NTDS\"尝试日志重放,这是最安全的恢复方式 - 修复完成后,务必运行
dcdiag /test:checkdatabase和repadmin /showrepl分层验证:前者确认数据库可加载,后者确保复制元数据已同步
不复杂但容易忽略:每次修复后,都要检查 FSMO 角色是否仍在本机——异常关机可能触发角色抢占,导致元数据冲突。用 ntdsutil 进入 fsmo maintenance 才能准确判断和清理。

















