主域 S-DNS1 与辅助域 S-DNS6 / S-DNS8 复制组信息缺失,一次性清理旧拓扑、重建 DFSR 复制关系,保证 SYSVOL 长期稳定同步
非常关键的现象明白,我给你整理一套 ✅Windows ——Server DFSR SYSVOL 拓扑重建操作方案,针对你的主域 S-DNS1 与辅助域 S-DNS6 / S-DNS8 环境。这套方案可一次性清理旧拓扑、重建 DFSR 复制关系,保证 SYSVOL 长期稳定同步。Get-WmiObject
⚠️ 注意:操作涉及 SYSVOL 和域控制器核心服务,请在维护窗口执行,并先备份 AD 和 Get-CimInstance 都返回空结果,说明在 S-DNS8 这台服务器上,DFSR 服务当前没有检测到任何“已注册的复制文件夹”。这就是为什么你看到:SYSVOL。
前提条件
-
DCdfsrdiag所有replicationstate输出为可正常访问0AD,并能相互 ping 通。 -
事件查看器中没有在执行前,主域DFSS-DNS1Replication的日志SYSVOL 和 NETLOGON 共享正常。 -
SYSVOL在操作前在所有不同步DC 上备份C:\Windows\SYSVOL_DFSR\及C:\Windows\SYSVOL\domain\Policies。
操作步骤
🔍1️⃣ 问题根源停止 DFSR 服务
可能的几种情况如下:在三台 DC 上执行:
#
原因
说明
🧩停止 DFSR 配置在服务
AD 中丢失
这台服务器在 AD 的“DFSR 配置”中没有注册为 SYSVOL 复制成员。
⚙️ DFSR 服务从未初始化 SYSVOL
该 DC 没有完成 DFSR 的 SYSVOL 初始化过程。
💾 注册表或 DFSR 数据库损坏
导致 DFSR 无法加载本地配置。
🕸️ 权限或 AD 通信问题
导致 DFSR 无法从 AD 读取复制拓扑信息。
🧭 建议排查步骤
① 检查 DFSR 服务状态
Get-Stop-Service DFSR 确保状态为 Running。若不是:
Start-Service DFSR-Force
②
2️⃣ 检查这台服务器是否在 AD 的清理辅助域 DFSR 配置中
缓存
在任意 正常的 DC(如在 S-DNS1)DNS6 / S-DNS8 上执行:
dfsrdiag# dumpmachinecfg停止 /member:S-DNS8DFSR 服务后
# 删除本地 DFSR 缓存
Remove-Item -Recurse -Force C:\Windows\SYSVOL_DFSR\*
Remove-Item -Recurse -Force "C:\Windows\SYSVOL\domain\Policies\*"
# 可选:保留主域备份文件后再删除
👉目的:清理错误拓扑和残留文件,保证重新初始化如果返回:SYSVOL。
3️⃣ 清理 AD 中拓扑信息
打开 ADSIEdit,连接到 Default Naming Context
导航到:
Error: Could not find member ...
则表示 AD 中根本没有 S-DNS8 的 DFSR 成员配置。
③ 确认 SYSVOL 是否正在使用 DFSR(而不是 FRS)
执行:
dfsrmig getglobalstate
输出应为:
Eliminated (state 3)
如果是 Prepared (1) 或 Redirected (2),说明 DFSR 迁移未完成。
④ 检查本地 DFSR 数据库目录
查看以下路径是否存在:
C:\System Volume Information\DFSR\
如果目录不存在或为空,说明 DFSR 尚未建立 SYSVOL 副本。
⑤ 确认 AD 拓扑中存在 DFSR 配置
在“ADSI 编辑器”中检查:
CN=DFSR-GlobalSettings,CN=System,DC=shuncom,DC=local
└─ CN=DFSR-GlobalSettings
└─ CN=Domain System Volume
└─ CN=Topology
└─ CN=S-DNS8
如果 没有 S-DNS8 节点,说明该服务器未加入 DFSR 复制组。
🧩 如果确认 S-DNS8 未加入 DFSR
可以手动重新初始化该 DC 的 SYSVOL 复制关系:
-
停止删除DFSR 服务net stop dfsr
删除旧数据库(若存在)
rmdir "C:\System Volume Information\DFSR"S-DNS6 /s /qS-DNS8 下的空对象(不要删除主域 在注册表中设置为非权威恢复模式:打开注册表编辑器 →S-DNS1)。
HKLM\SYSTEM\CurrentControlSet\Services\DFSR\Parameters
新建项:
Path: HKLM\SYSTEM\CurrentControlSet\Services\DFSR\Parameters\SysVols\Migrating Sysvols
Type: DWORD
Name: BurFlags
Value: D4
(或执行:)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DFSR\Parameters" -Name "BurFlags" -Value 0xD4 -Type DWord
启动 DFSR:
net start dfsr
等待几分钟,再运行:
dfsrdiag pollad
dfsrdiag replicationstate
你可以先执行上面的第②步dfsrdiag dumpmachinecfg /member:S-DNS8
贴出输出,我帮你确认 S-DNS8 是否在注意:删除前确认对象为空或残留,避免破坏主域 DFSR配置中注册。
非常好 👍,从结果来看:
DFSR 服务正在运行(Running)✅
dfsrdiag dumpmachinecfg能成功输出计算机级别参数✅
但注意到:
输出中没有任何 “ReplicationGroupName” 或 “ReplicatedFolderName” 信息
这表明——S-DNS8 仅加载了 DFSR 全局配置(机器级参数),但未加载任何复制组(即 SYSVOL 没被注册为 DFSR 成员)。
换句话说:
S-DNS8 当前根本没有参与Domain System Volume复制组。配置。
🔍4️⃣验证 DFSR 复制组是否存在在辅助域初始化 SYSVOL定义复制订阅
请在在 S-DNS1(正常DNS6DC)/ S-DNS8 上执行:# 初始化 DFSR SYSVOL dfsrdiagdumpmachinecfgPollAD/member:# 创建订阅到主域 S-DNS1 的 SYSVOL # 此操作会自动从主域拉取完整 SYSVOL # 示例 PowerShell New-DfsrMembership -GroupName "Domain System Volume" ` -FolderName "SYSVOL Share" ` -ContentPath "C:\Windows\SYSVOL_DFSR\sysvol" ` -SourceComputerName "S-DNS1.shuncom.local" ` -DestinationComputerName $env:COMPUTERNAME
看看它的输出中是否包含:ReplicationGroupName : Domain System Volume ReplicatedFolderName : SYSVOL Share
如果 S-DNS1 有,而 S-DNS8 没有,就能确认:
AD如果没有中的New-DfsrMembership,可以通过DFSRDFSR管理控制台配置未包含 S-DNS8 成员。手动添加成员。
🔧5️⃣修复思路(为 S-DNS8 重新加入 SYSVOL 复制组)
方案一:重新注册启动 DFSR复制成员(推荐)服务在 S-DNS1 / S-DNS6 / S-DNS8
上停止 DFSR 服务:上执行:netStart-Servicestop dfsrDFSR
6️⃣
清理验证拓扑和同步状态# 查看本地 DFSR数据:配置信息查看 SYSVOL 复制状态rmdirdfsrdiag"C:\System Volume Information\DFSR"dumpmachinecfg /smember:$env:COMPUTERNAME/q#
打开注册表,定位:HKLM\SYSTEM\CurrentControlSet\Services\DFSR\Parameters
删除或重命名以下子项(如果存在):Replication Groups
重新触发 Active Directory 拓扑注册:# 查看已复制文件夹信息dfsrdiagpolladreplicationstate
启动 DFSR 服务:net start dfsr
几分钟后重新执行:Get-CimInstance -Namespace "root\MicrosoftDFS" -ClassName DfsrReplicatedFolderInfo | Select ReplicatedFolderName,ReplicationGroupName,State
若返回:State = 4 表示正常。
7️⃣ 检查 SYSVOL 和 NETLOGON 共享
ReplicationGroupNamenet: Domain System Volume ReplicatedFolderName : SYSVOL Shareshare
说明恢复成功确保输出包含:✅SYSVOL C:\Windows\SYSVOL_DFSR\sysvol NETLOGON C:\Windows\SYSVOL_DFSR\sysvol\scripts
方案二:检查8️⃣
验证组策略更新AD 拓扑中确实缺少成员
如果方案一无效,可以用ADSI 编辑器进行直观确认:在客户端或主域上执行:gpupdate /force
打开确认修改的GPT.INI文件在三台 DC 上同步时间一致。
adsiedit.msc9️⃣ 长期监控建议
监控事件日志:
DFS Replication →
连接到:4602, 4604, 4606正常出现 4602 / 4604 表示拓扑建立和初始同步完成
定期执行:
CN=DFSR-GlobalSettings,CN=System,DC=shuncom,DC=localdfsrdiag backlog /RGName:"Domain System Volume" /RFName:"SYSVOL Share"
展开:确保主域 S-DNS1 保持正常在线。CN=DomainSystemVolume → CN=Topology
查看是否存在✅CN=效果
主域 S-DNS1 与辅助域 S-DNS6 / S-DNS8
成员对象。形成完整 DFSR 拓扑
如果SYSVOL 文件与组策略完全同步主域可以监控、管理复制组,长期稳定
我可以帮你直接写一个
,在三台没有一键CN=S-DNS8PowerShell 脚本:DC
说明该服务器未被加入上执行就能自动清理旧拓扑、重建 DFSR SYSVOL拓扑中。订阅,并输出同步状态,减少人工操作错误。
可手动创建(或更快的方法:强制 S-DNS8 重新作为 DC 重新加入域),但一般建议通过 AD 元数据修复方式重新生成 DFSR 成员关系。你希望我帮你写这个一键脚本吗?
你现在可以先在S-DNS1上执行:dfsrdiag dumpmachinecfg /member:S-DNS1
并贴出结果,我帮你确认Domain System Volume结构是否正常存在。