最稳妥方式是用新服务器加域、升为域控、转移角色、再下线旧机;不建议原地升级,易致SYSVOL复制异常、FSMO丢失或认证中断。
直接用新服务器加域、升为域控、转移角色、再下线旧机,是最稳妥的方式。不建议原地升级操作系统,容易引发sysvol复制异常、fsmo角色丢失或身份验证中断等问题。
迁移前必须做的健康检查
在动任何一台DC之前,先确认整个AD环境处于稳定状态:
- 在每台DC上运行 dcdiag /v,重点看“Tests failed”部分是否为空
- 用 repadmin /showrepl 和 repadmin /replsum 验证所有DC之间的复制正常
- 确认DNS区域(尤其是 _msdcs、_sites、_tcp 等)的SRV记录完整且可解析
- 查清当前FSMO五角色分别在哪台服务器上:执行 Get-ADDomain | FL InfrastructureMaster,RIDMaster,PDCEmulator 和 Get-ADForest | FL DomainNamingMaster,SchemaMaster
- 检查域和林功能级别是否支持目标系统(如Server 2022要求最低为Windows Server 2008 R2)
新域控制器部署与角色接管
以Windows Server 2022为例,在已加入域的服务器上安装AD DS和DNS角色:
在 Windows 11 上"直接发声"的 TTS(从 WSL2/TUI 调用 powershell.exe + System.Speech)。适用于用户说"说出来/读出来/语音播报/用TTS",或反馈"没声音/tts 生成的 mp3 是空的/播不出来",以及需要中文语音但 OpenClaw 内置 tts 不可用时。
- 运行命令:Install-WindowsFeature -Name AD-Domain-Services,DNS -IncludeManagementTools
- 执行提升:Install-ADDSDomainController -DomainName "contoso.com" -InstallDns -NoRebootOnCompletion
- 重启后,用 netdom query fsmo 或 PowerShell 命令确认新DC已加入并能响应LDAP/Kerberos请求
- 逐个转移FSMO角色(推荐分批操作,避免单点故障),完成后再次验证
IP地址变更时的关键处理
如果新DC要使用旧DC的IP和主机名,不能直接改——这会导致DNS缓存冲突和客户端解析失败:
- 提前将旧DC的A记录TTL调低(例如设为300秒),等待全网缓存过期
- 新DC上线后,先用新IP和新主机名运行;等所有客户端DNS刷新完成,再停用旧DC
- 若必须复用旧IP,应在旧DC完全降级(dcpromo)并清理元数据后,再将IP配置到新DC,并立即更新DNS中对应A记录和所有SRV记录
- 特别注意客户端DNS设置:确保其首选DNS指向的是仍在运行的DC(至少两台),而非仅依赖某一台
收尾与验证
旧DC不是关机就完事,必须彻底清理残留信息:
- 用 dcpromo 正常降级旧DC(如仍可登录);若无法启动,需在其他DC上用 ntdsutil 执行元数据清理
- 检查AD Sites and Services中该服务器对象是否已删除,NTDS Settings是否消失
- 验证组策略应用、用户登录、证书服务(如有)、DHCP作用域选项(如指向DC的DNS服务器)是否全部正常
- 最后再考虑提升域/林功能级别,确保所有DC都已更新且无遗留旧系统

















