Skip to main content

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

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

⚠️ 注意:操作涉及 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 服务

可能的几种情况如下:在三台 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 复制关系:

    1. 停止删除 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(正常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 没有,就能确认:

      AD如果没有 中的New-DfsrMembership,可以通过 DFSRDFSR管理控制台 配置未包含 S-DNS8 成员。手动添加成员。


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

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

        服务

        在 S-DNS1 / S-DNS6 / S-DNS8 上停止 DFSR 服务:上执行:

        netStart-Service stop dfsrDFSR
        

        6️⃣

        清理验证拓扑和同步状态

        # 查看本地 DFSR 数据:配置信息
        
        rmdirdfsrdiag "C:\System Volume Information\DFSR"dumpmachinecfg /smember:$env:COMPUTERNAME
        
        /q# 
        查看 SYSVOL 复制状态

        打开注册表,定位:

        HKLM\SYSTEM\CurrentControlSet\Services\DFSR\Parameters
        

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

        Replication Groups
        

        重新触发 Active Directory 拓扑注册:

        dfsrdiag polladreplicationstate
        
        
        # 查看已复制文件夹信息

        启动 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=Domain
                System Volume → 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 结构是否正常存在。