Skip to main content

主域 S-DNS1 与辅助域 S-DNS6 / S-DNS8 复制组信息缺失,一次性清理旧拓扑、重建 DFSR 复制关系,保证 SYSVOL 长期稳定同步

非常明白,我给你整理一套 Windows Server DFSR SYSVOL 拓扑重建操作方案,针对你的主域 S-DNS1 与辅助域 S-DNS6 / S-DNS8 环境。这套方案可一次性清理旧拓扑、重建 DFSR 复制键的现象,保证 SYSVOL ——
Get-WmiObject长期稳定同步。

⚠️ 注意:操作涉及 SYSVOL 和域控制器核心服务,请在维护窗口执行,并先备份 ADGet-CimInstance 都返回空结果,说明在 S-DNS8 这台服务器上,DFSR 服务当前没有检测到任何“已注册的复制文件夹”。这就是为什么你看到:SYSVOL。


    前提条件

    1. dfsrdiag所有 replicationstateDC 输出为可正常访问 0AD,并能相互 ping 通。

    2. 事件查看器中没有在执行前,主域 DFSS-DNS1 Replication 日志SYSVOL 和 NETLOGON 共享正常。

    3. SYSVOL在操作前在所有 不同步DC 上备份 C:\Windows\SYSVOL_DFSR\ 及 C:\Windows\SYSVOL\domain\Policies


操作步骤

🔍1️⃣ 问题根源

可能的几种情况如下:

原因说明
🧩 DFSR 配置在 AD 中丢失这台服务器在 AD 的“DFSR 配置”中没有注册为 SYSVOL 复制成员。
⚙️停止 DFSR 服务从未初始化 SYSVOL该 DC 没有完成 DFSR 的 SYSVOL 初始化过程。
💾 注册表或 DFSR 数据库损坏导致 DFSR 无法加载本地配置。
🕸️ 权限或 AD 通信问题导致 DFSR 无法从 AD 读取复制拓扑信息。

🧭 建议排查步骤

① 检查 DFSR 服务状态

Get-Service DFSR

确保状态为 Running。若不是:

Start-Service DFSR

② 检查这台服务器是否在 AD 的 DFSR 配置中

任意三台 正常的 DC(如 S-DNS1)DC 上执行:

dfsrdiag# dumpmachinecfg停止 /member:S-DNS8DFSR 服务
Stop-Service DFSR -Force

👉


如果返回:

2️⃣
Error:清理辅助域 CouldDFSR not find member ...
缓存

则表示 ADS-DNS6 中根本没有/ S-DNS8 的 DFSR 成员配置。


③ 确认 SYSVOL 是否正在使用 DFSR(而不是 FRS)

执行:

dfsrmig# getglobalstate

输出应为:

Eliminated (state 3)

如果是 Prepared (1) 或 Redirected (2),说明停止 DFSR 迁移未完成。

服务后
#

④ 检查删除本地 DFSR 数据库目录

缓存

查看以下路径是否存在:

Remove-Item
-Recurse -Force C:\SystemWindows\SYSVOL_DFSR\*
VolumeRemove-Item Information\DFSR\-Recurse -Force "C:\Windows\SYSVOL\domain\Policies\*"
# 可选:保留主域备份文件后再删除

如果录不存在或为空的:清理错误拓扑和残留文件说明保证重新初始化 DFSRSYSVOL。

尚未建立 SYSVOL 副本。


3️⃣ 确认清理 AD 拓扑中存在信息

DFSR
    配置
  1. 在“打开 ADSIADSIEdit,连接到 编辑器Default Naming Context”中检查

  2. 导航到

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 复制关系:

  1. 停止 DFSR 服务

    net stop dfsr
    
  2. 删除旧数据库(若存在)

    rmdir "C:\System Volume Information\DFSR"S-DNS6 /s /qS-DNS8 
    下的空对象(不要删除主域
  3. 在注册表中设置为非权威恢复模式:
    打开注册表编辑器 →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
    
  4. 启动 DFSR:

    net start dfsr
    
  5. 等待几分钟,再运行:

    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️⃣ 验证在辅助域初始化 DFSRSYSVOL 复制组是否存在 SYSVOL 定义订阅

S-DNS1(正常DNS6 DC)/ S-DNS8 上执行:

# 初始化 DFSR SYSVOL
dfsrdiag dumpmachinecfgPollAD

/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 没有 New-DfsrMembership就能确认:

可以通过
DFSR管理控制台

AD 中的 DFSR 配置未包含 S-DNS8 手动添加成员。


🔧5️⃣ 修复思路(为 S-DNS8 重新加入 SYSVOL 复制组)

方案一:重新注册 DFSR 复制成员(推荐)

  1. 在 S-DNS8 上停止 DFSR 服务:

    net stop dfsr
    
  2. 清理 DFSR 数据:

    rmdir "C:\System Volume Information\DFSR" /s /q
    
  3. 打开注册表,定位:

    HKLM\SYSTEM\CurrentControlSet\Services\DFSR\Parameters
    

    删除或重命名以下子项(如果存在):

    Replication Groups
    
  4. 重新触发 Active Directory 拓扑注册:

    dfsrdiag pollad
    
  5. 启动 DFSR 服务

    net start dfsr
    
  6. 几分钟后重新在 S-DNS1 / S-DNS6 / S-DNS8 上执行:

    Start-Service DFSR
    

    6️⃣ 验证拓扑和同步状态

    # 查看本地 DFSR 配置信息
    dfsrdiag dumpmachinecfg /member:$env:COMPUTERNAME
    
    # 查看 SYSVOL 复制状态
    dfsrdiag replicationstate
    
    # 查看已复制文件夹信息
    Get-CimInstance -Namespace "root\MicrosoftDFS" -ClassName DfsrReplicatedFolderInfo |
    Select ReplicatedFolderName,ReplicationGroupName,State
    

若返回State = 4 表示正常。


7️⃣ 检查 SYSVOL 和 NETLOGON 共享

net share

确保输出包含

ReplicationGroupName : Domain System Volume
ReplicatedFolderName : SYSVOL       ShareC:\Windows\SYSVOL_DFSR\sysvol
NETLOGON     C:\Windows\SYSVOL_DFSR\sysvol\scripts

说明恢复成功 ✅


方案二:检查

8️⃣ AD 拓扑中确实缺少成员

验证组策略更新

如果方案一无效,可以用 ADSI 编辑器 进行直观确认:

打开 adsiedit.msc → 连接到:

CN=DFSR-GlobalSettings,CN=System,DC=shuncom,DC=local

展开:

CN=Domain System Volume → CN=Topology

查看是否存 CN=S-DNS8 成员对象。

如果 没有 CN=S-DNS8

说明该服务器未被加入 DFSR SYSVOL 拓扑中。

可手动创建(客户端更快的方法:强制 S-DNS8 重新作为 DC 重新加入),但一般建议通过 AD 元数据修复方式重新生成 DFSR 成员关系。


你现在可以先在 S-DNS1 上执行:

dfsrdiag dumpmachinecfggpupdate /member:S-DNS1force
  • 并贴出结果,我帮你确认修改的 GPT.INI 文件在三台 DC 上同步时间一致。


9️⃣ 长期监控建议

  1. 监控事件日志:

    • DFS Replication → 4602, 4604, 4606

    • 正常出现 4602 / 4604 表示拓扑建立和初始同步完成

  2. 定期执行:

dfsrdiag backlog /RGName:"Domain System VolumeVolume" /RFName:"SYSVOL Share"
结构是否
  1. 确保主域 S-DNS1 保持正常线


效果

  • 主域 S-DNS1 与辅助域 S-DNS6 / S-DNS8 形成完整 DFSR 拓扑

  • SYSVOL 文件与组策略完全同步

  • 主域可以监控、管理复制组,长期稳定


我可以帮你直接写一个 一键 PowerShell 脚本,在三台 DC 上执行就能自动清理旧拓扑、重建 DFSR SYSVOL 订阅,并输出同步状态,减少人工操作错误。

你希望我帮你写这个一键脚本吗?