检查+修复 S-DNS1 域控制器健康度
非常关键的状态描述 👍。
你现在的域环境情况可以总结如下,这也是很多 AD 故障转移或清理过程中常见的“半健康状态”:
🧩 一、当前结构判断
| 项目 | 状态 |
|---|---|
| 域控制器 1 | S-DNS1.shuncom.local(192.168.0.5) — 存活、主域控制器(FSMO) |
| 域控制器 2 | S-DNS6.shuncom.local(192.168.0.4) — 存活、辅助 DC(但 SYSVOL/Netlogon 复制异常) |
| 客户端表现 | 域登录、DNS、GPO、认证等功能正常(因为 S-DNS6 仍在运行) |
| 问题 | 当关闭 S-DNS6 并删除相关 SRV 记录后,客户端找不到 DC,域登录与认证中断 |
🚨 二、问题的根本原因
这说明:
当前整个域中,S-DNS1 并没有完整地“对外发布”自己是一个可用 DC。
客户端的 DC 定位逻辑(DC Locator)仍依赖 S-DNS6。
换句话说:
-
DNS SRV 记录
_ldap._tcp.dc._msdcs.shuncom.local、_kerberos._tcp.dc._msdcs.shuncom.local仍把 S-DNS6 作为首选; -
S-DNS1 的 Netlogon 注册信息未完整写入 DNS;
-
甚至可能 SYSVOL 没有正确共享(或 DFSR 未完成初始同步),导致客户端通过 DC 定位后仍判定 S-DNS1 “不适合”。
🔍 三、验证思路(不要急着关机 S-DNS6)
在清理前,先验证 S-DNS1 是否具备“完整 DC 功能”。
依次执行以下命令,分析结果:
1️⃣ 验证 SYSVOL / NETLOGON 共享
net share
输出应包含:
NETLOGON C:\Windows\SYSVOL\sysvol\shuncom.local\SCRIPTS
SYSVOL C:\Windows\SYSVOL\sysvol
若缺失,则 S-DNS1 无法提供组策略和登录脚本服务,客户端认为该 DC “不健康”。
2️⃣ 验证 DFSR 状态
wmic /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo get replicationgroupname,replicatedfoldername,state
正常状态下 state 应为 4 (正常)。
若无输出或状态为 2、3,说明 DFSR 未同步完毕或配置异常。
3️⃣ 验证 Netlogon 动态注册
重新注册并查看 DNS SRV:
net stop netlogon
ipconfig /flushdns
ipconfig /registerdns
net start netlogon
nslookup -type=SRV _ldap._tcp.dc._msdcs.shuncom.local
👉 如果结果中不含 s-dns1.shuncom.local,说明 Netlogon 注册失败(通常由于 SYSVOL/DFSR 问题)。
4️⃣ 验证 DC 广告状态
dcdiag /test:advertising
如果看到:
S-DNS1 没有通过测试 Advertising
那就意味着客户端不会选择它作为 DC。
🧰 四、恢复正确顺序(让 S-DNS1 成为唯一权威 DC)
以下是逐步过渡方案(安全执行,无需马上关机 S-DNS6):
① 让 S-DNS1 修复 DFSR 状态
在 S-DNS1 上执行:
dfsrdiag pollad
wmic /namespace:\\root\microsoftdfs path dfsrmachineconfig get replicationgroupconfigpresent
如果输出为 FALSE,则注册 DFSR 配置:
wmic /namespace:\\root\microsoftdfs path dfsrmachineconfig call PollAD
再执行:
dfsrdiag ReplicationState
若仍无法查询,可能需要重新初始化 SYSVOL(我们后续可生成 safe rebuild 步骤)。
② 验证 S-DNS1 的 SYSVOL 共享恢复
net share
确认 SYSVOL 和 NETLOGON 出现。
③ 在 DNS 中删除 S-DNS6 SRV 前,确保 S-DNS1 注册成功
再次执行:
nltest /dsregdns
nslookup -type=SRV _ldap._tcp.dc._msdcs.shuncom.local
若结果只包含 s-dns1.shuncom.local,说明注册成功。
④ 验证客户端能定位 S-DNS1
在一台域客户端执行:
nltest /dsgetdc:shuncom.local /force
nltest /dcname:shuncom.local
返回:
DC: \\S-DNS1.shuncom.local
地址: \\192.168.0.5
✅ 域控制功能恢复,才能安全下线 S-DNS6。
🧩 五、S-DNS6 下线步骤(在确认上面全部通过后)
-
在 S-DNS6 上:
net stop netlogon net stop dfsr dcpromo /demote将其降级为普通成员服务器。
-
在 S-DNS1 上清理元数据:
ntdsutil metadata cleanup remove selected server S-DNS6 quit quit -
清除 DNS 中所有与
S-DNS6相关的 A / SRV 记录。 -
最后执行:
nltest /dsregdns repadmin /syncall /AdeP
✅ 六、总结
你现在的现象说明:
域功能正常仅因为 S-DNS6 仍在运行,S-DNS1 尚未“完全被广告为域控制器”。
重点在于:
-
修复 S-DNS1 的 SYSVOL/DFSR;
-
让 Netlogon 注册生效;
-
验证
dcdiag /test:advertising通过; -
再清除 DNS 的旧记录并下线 S-DNS6。
这个错误的根本原因是:
Windows 10 / Windows Server 2022 及之后的版本已移除
wmic.exe工具,因此系统无法识别wmic命令。
✅ 一、替代方案:用 PowerShell 查询 DFSR 状态(推荐)
可以使用 PowerShell 的 WMI / CIM 命令 代替 wmic:
# 获取 DFSR 复制文件夹状态
Get-WmiObject -Namespace "root\MicrosoftDFS" -Class DfsrReplicatedFolderInfo |
Select-Object ReplicationGroupName, ReplicatedFolderName, State
或使用较新的 Get-CimInstance(建议在 Windows Server 2019/2022 用):
Get-CimInstance -Namespace "root\MicrosoftDFS" -ClassName DfsrReplicatedFolderInfo |
Select ReplicationGroupName, ReplicatedFolderName, State
输出中:
-
State = 4 → 表示 “已就绪 (Normal)”。
-
其他值如 2、3 表示正在初始化或同步中。
✅ 二、若要查看 DFSR 服务状态
Get-Service DFSR
应显示:
Status Name DisplayName
------ ---- -----------
Running DFSR DFS Replication
✅ 三、查看 DFSR 的连接伙伴状态
Get-WmiObject -Namespace "root\MicrosoftDFS" -Class DfsrConnectionInfo |
Select-Object ConnectionName, PartnerName, Enabled
✅ 四、进一步验证 SYSVOL 是否由 DFSR 管理
dfsrdiag pollad
dfsrdiag replicationstate
如报错可确认 DFSR 尚未正确注册或服务未启动。
✅ 五、如果 DFSR 仍不正常,可做以下检查
-
服务检查:
services.msc→ 确认 “DFS Replication” 已启动。 -
事件日志:查看:
事件查看器 → 应用程序和服务日志 → DFS Replication重点关注事件 ID:
-
4112:开始复制
-
4114:复制暂停(例如 SYSVOL 停止共享)
-
4602:SYSVOL 已完成迁移(健康)
-
-
域控制器同步状态:
repadmin /replsummary repadmin /showrepl
✅ 六、如果你只需要确认 SYSVOL 是否正常共享
net share
应能看到:
Share name Resource
---------- --------
NETLOGON C:\Windows\SYSVOL\sysvol\shuncom.local\SCRIPTS
SYSVOL C:\Windows\SYSVOL\sysvol
是否希望我帮你生整理成一份 逐步“DFSR 复制状态 + SYSVOL 健康检查 PowerShell 脚本化自动检查+修复 S-DNS1 域控制器健康度” 的方案?它,可以自动在所有 DC 上一键检测 DFSR、Netlogon、SYSVOL、SRVDFSR 注册、Advertising/ SYSVOL / NETLOGON 状态并输出结果。?