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

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

⚠️ **注意**：操作涉及 SYSVOL 和域控制器核心服务，请在**维护窗口**执行，并先备份 AD 和 SYSVOL。

---

## **前提条件**

1. 所有 DC 可正常访问 AD，并能相互 ping 通。
2. 在执行前，主域 S-DNS1 的 SYSVOL 和 NETLOGON 共享正常。
3. 在操作前在所有 DC 上备份 `C:\Windows\SYSVOL_DFSR\` 及 `C:\Windows\SYSVOL\domain\Policies`。

---

## **操作步骤**

### **1️⃣ 停止 DFSR 服务**

在三台 DC 上执行：

```powershell
# 停止 DFSR 服务
Stop-Service DFSR -Force

```

---

### **2️⃣ 清理辅助域 DFSR 缓存**

在 S-DNS6 / S-DNS8 上执行：

```powershell
# 停止 DFSR 服务后
# 删除本地 DFSR 缓存
Remove-Item -Recurse -Force C:\Windows\SYSVOL_DFSR\*
Remove-Item -Recurse -Force "C:\Windows\SYSVOL\domain\Policies\*"
# 可选：保留主域备份文件后再删除

```

> 目的：清理错误拓扑和残留文件，保证重新初始化 SYSVOL。

---

### **3️⃣ 清理 AD 中拓扑信息**

1. 打开 **ADSIEdit**，连接到 **Default Naming Context**
2. 导航到：

```
CN=System,DC=shuncom,DC=local
 └─ CN=DFSR-GlobalSettings
     └─ CN=Domain System Volume
         └─ CN=Topology

```

3. 删除 S-DNS6 / S-DNS8 下的空对象（不要删除主域 S-DNS1）。

> 注意：删除前确认对象为空或残留，避免破坏主域 DFSR 配置。

---

### **4️⃣ 在辅助域初始化 SYSVOL 复制订阅**

在 S-DNS6 / S-DNS8 上执行：

```powershell
# 初始化 DFSR SYSVOL
dfsrdiag PollAD

# 创建订阅到主域 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

```

> 如果没有 `New-DfsrMembership`，可以通过 **DFSR管理控制台** 手动添加成员。

---

### **5️⃣ 启动 DFSR 服务**

在 S-DNS1 / S-DNS6 / S-DNS8 上执行：

```powershell
Start-Service DFSR

```

---

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

```powershell
# 查看本地 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 共享**

```powershell
net share

```

确保输出包含：

```
SYSVOL       C:\Windows\SYSVOL_DFSR\sysvol
NETLOGON     C:\Windows\SYSVOL_DFSR\sysvol\scripts

```

---

### **8️⃣ 验证组策略更新**

在客户端或主域上执行：

```powershell
gpupdate /force

```

- 确认修改的 `GPT.INI` 文件在三台 DC 上同步时间一致。

---

### **9️⃣ 长期监控建议**

1. 监控事件日志：
    
    
    - **DFS Replication** → 4602, 4604, 4606
    - 正常出现 4602 / 4604 表示拓扑建立和初始同步完成
2. 定期执行：

```powershell
dfsrdiag backlog /RGName:"Domain System Volume" /RFName:"SYSVOL Share"

```

3. 确保主域 S-DNS1 保持正常在线。

---

✅ **效果**

- 主域 S-DNS1 与辅助域 S-DNS6 / S-DNS8 形成完整 DFSR 拓扑
- SYSVOL 文件与组策略完全同步
- 主域可以监控、管理复制组，长期稳定

---

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

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

明白了，你希望把上面 PowerShell/脚本化的流程改成**命令行/手工可执行的步骤**，便于在各个域控上逐步执行，而不是一次性运行脚本。下面我帮你整理成**S-DNS1 → S-DNS6/S-DNS8 DFSR SYSVOL 重建的命令步骤**。

---

## **步骤 0：前提**

- 使用 **域管理员**登录每台 DC。
- 备份现有 SYSVOL（非常重要）。
- 确保 **PowerShell 远程/命令执行权限**可用。

---

## **步骤 1：停止 DFSR 服务**

在每台 DC（S-DNS1、S-DNS6、S-DNS8）上执行：

```cmd
net stop dfsr

```

检查服务状态：

```cmd
sc query dfsr

```

---

## **步骤 2：备份并清理现有 SYSVOL**

在每台 DC 上执行：

```cmd
:: 备份 SYSVOL
ren C:\Windows\SYSVOL\sysvol sysvol-Backup-YYYYMMDD

:: 清理 DFSR 数据库
rd /s /q "C:\System Volume Information\DFSR"

```

> 注意：`System Volume Information` 需要管理员权限或在安全模式下操作。

---

## **步骤 3：重启 DFSR 服务**

在每台 DC 上执行：

```cmd
net start dfsr

```

---

## **步骤 4：初始化主域 SYSVOL 拓扑（S-DNS1）**

在 S-DNS1 上执行：

```cmd
dfsrdiag PollAD /Member:S-DNS1

```

> 该命令会让 S-DNS1 从 AD 拉取拓扑信息并初始化 DFSR SYSVOL。

---

## **步骤 5：检查 DFSR SYSVOL 复制组**

在 S-DNS1 上执行：

```cmd
dfsrdiag ReplicationState /Member:S-DNS1 /RGName:"Domain System Volume" /RFName:"SYSVOL Share"

```

---

## **步骤 6：强制辅助 DC 同步（S-DNS6 / S-DNS8）**

在 S-DNS1 上逐个执行：

```cmd
# 从 S-DNS1 强制同步到 S-DNS6
dfsrdiag SyncNow /Partner:S-DNS6 /RGName:"Domain System Volume" /Time:5 /Member:S-DNS1

# 从 S-DNS1 强制同步到 S-DNS8
dfsrdiag SyncNow /Partner:S-DNS8 /RGName:"Domain System Volume" /Time:5 /Member:S-DNS1

```

> `/Time:5` 表示等待 5 分钟，可根据实际文件量调整。

---

## **步骤 7：检查同步状态**

在每台 DC 上执行：

```cmd
dfsrdiag Backlog /RGName:"Domain System Volume" /RFName:"SYSVOL Share" /SendingMember:S-DNS1 /ReceivingMember:S-DNS6
dfsrdiag Backlog /RGName:"Domain System Volume" /RFName:"SYSVOL Share" /SendingMember:S-DNS1 /ReceivingMember:S-DNS8

dfsrdiag ReplicationState /Member:S-DNS1 /RGName:"Domain System Volume" /RFName:"SYSVOL Share"
dfsrdiag ReplicationState /Member:S-DNS6 /RGName:"Domain System Volume" /RFName:"SYSVOL Share"
dfsrdiag ReplicationState /Member:S-DNS8 /RGName:"Domain System Volume" /RFName:"SYSVOL Share"

```

---

## **步骤 8：最终验证**

- 确认 `C:\Windows\SYSVOL\sysvol\domain` 下 GPO 文件夹已恢复。
- 在客户端执行：

```cmd
gpupdate /force

```

- 检查客户端组策略是否生效。

---

✅ 这样一套**手动命令执行方案**就完成了 DFSR SYSVOL 拓扑重建。

---

如果你愿意，我可以帮你再整理成一个**操作表格化步骤**，标明每条命令在哪台 DC 执行、执行顺序、以及可能遇到的错误处理方法，这样操作更安全、可复现。

你希望我整理成表格吗？