最近公司的某个 Domain Controller 报告可能由于长时间没在线,同步失败,然后用 Repldiag 工具清理 lingering objects 的过程中,该工具报告存在 serious topology error 之后就放弃了清理。据了解,公司的 AD forest 以前有个子域名,后来在去掉的过程中发生了错误,在 repldiag 的输出当中也找到了这个当年被不正常删除的 domain,这个 domain 用 (Get-ADRootDSE).namingContexts 是没列出来的。
经过搜索,发现可以通过命令行工具 ntdsutil 进行清理,首先登陆有 Domain Naming Master 角色的 Domain Controller,然后按下面的步骤:
- 开启命令行,运行 ntdsutil
- activate instance ntds
- partition management
- connections
- connect to server 服务器名
- q
- list
- 查看含有坏掉的 domain 的记录,复制下来,需要先删叶子节点
- delete nc 复制下来的叶子节点
- 重复 7 ~ 9,直至所有坏节点都被删除
- q
- q
- repadmin /syncall
最后一步是强制进行一次同步,将删除动作同步到其他 Domain Controller。
经过上述一系列操作以后,repldiag 工具就不再报告有严重拓扑问题了,顺利完成清理,问题解决。