活动目录:DFSR SysVol (Domain Sysvol Volumes)丢失问题
症状
- 最初是发现组策略不同步到所有域控。进而发现sysvol文件夹在域控之间不同步。
- 又在域控的DFS管理中发现DFSR SysVol (Domain Sysvol Volumes)复制组消失!
背景
- DC域控都是从Windows Server 2008升级到Windows Server 2016.
- 2个站点多域控制器;
- Sysvol复制协议几个月前从FRS升级到了DFSr
问题影响
- 主要是影响组策略无法下发因为sysvol文件不同步;
排错步骤
在所有域控上,使用
dcdiag /test:sysvolcheck /e
检查SysVol也没有报任何错误;看起来正常;在所有域控上,使用
repadmin /syncall /AedP
立刻同步一次,没有变化;repladmin /replsummary
也没看到任何错误;考虑到SysVol是使用DFS协议同步,检查事件查看器里的DFS日志,没有发现类似event id
2212
(指示DFS数据库脏关闭的信息);
提示
DFS数据库不正常关闭可能导致DFS停止复制。一般事件日志可以看懂2212或2213等event ID。
- 使用WMIC检查数据库健康,输出
没有可用实例
或no available instance(s).
提示
可以使用 Wmic /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo get replicationgroupname,replicatedfoldername,state
检查数据库状态。如果看到数据库状态异常,DFS停止复制,可以使用 wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid=<GUID> call ResumeReplication
恢复复制。
- 问题好像比较严重,感觉有点无助,感觉要把问题的DC废了重建才能解决。
解决办法:
Google了很久,终于找到了类似问题的解决办法,不用废掉问题DC。
具体原理是,通过修改注册表,把所有DC上的DFS SYSVOL复制组状态恢复到DC提升前的状态,使得所有DC会从PDC Emulator角色的DC那里重新复制SYSVOL,最终完成重建SYSVOL复制组。
步骤
备份AD (PDC的系统状态)
停掉所有DC上的DFS服务(重要)
登录到PDC, 打开ADSI工具,连接到默认上下文。
在ADSI中修改AD数据库(清理过时数据
主要是检查 OU=Domain Controllers 下的 CN=DFSR-LocalSettings,删除该文件夹下所有内容和子文件夹。
回到 CN=Systems > CN=DFSR-GlobalSettings,继续检查和删除其下的所有内容和子文件夹,确保没有其他活动的复制组。
在所有DC上执行一次手动复制,确保以上修改复制到所有DC。
repadmin /syncall /AdeP
- 修改PDC上的注册表。注册表内容如下:
注意1
需要根据实际情况替换SYSVOL文件夹位置。在这个例子中,因为我有把SYSVOL复制协议从Frs-r升级到DFS-R,所以对应的SYSVOL文件夹名是SYSVOL_DFSR
,不再是SYSVOL
注意2
注册表里出现的文件夹,如果没有, 例如staging area 需要事先手动创建。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DFSR\Parameters\SysVols\Promoting SysVols]
"Sysvol Information is Committed"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DFSR\Parameters\SysVols\Promoting SysVols\example.com]
"Is Primary"=dword:00000001
"Command"="DcPromo"
"Parent Computer"=""
"Replicated Folder Name"="example.com"
"Replicated Folder Root"="C:\\Windows\\SYSVOL_DFSR\\domain"
"Replicated Folder Root Set"="C:\\Windows\\SYSVOL_DFSR\\sysvol\\example.com"
"Replicated Folder Stage"="C:\\Windows\\SYSVOL_DFSR\\staging areas\\example.com"
"Replication Group Name"="example.com"
"Replication Group Type"="Domain"
启动PDC上DFS服务,并等待3分钟左右。
如果一切顺利,以上注册表内容在PDC上会发生变化(消失)。取而代之的是:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DFSR\Parameters\SysVols\Seeding Sysvols
回到ADSI, 将能看到
CN=System > CN=DFSR-GlobalSettings > CN=Domain System Volume > CN=Topology > CN=<your primary dc>
再在所有DC上执行一遍手动复制.
在剩下所有DC上依次执行以下:
a. 添加以下注册表内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DFSR\Parameters\SysVols\Promoting SysVols]
"Sysvol Information is Committed"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DFSR\Parameters\SysVols\Promoting SysVols\example.com]
"Is Primary"=dword:00000000
"Command"="DcPromo"
"Parent Computer"="primary-dc.example.com"
"Replicated Folder Name"="example.com"
"Replicated Folder Root"="C:\\Windows\\SYSVOL_DFSR\\domain"
"Replicated Folder Root Set"="C:\\Windows\\SYSVOL_DFSR\\sysvol\\example.com"
"Replicated Folder Stage"="C:\\Windows\\SYSVOL_DFSR\\staging areas\\example.com"
"Replication Group Name"="example.com"
"Replication Group Type"="Domain"
b. 启动DFS服务
c. 执行repadmin复制
d . 检查ADSI
最后,检查DFS命名空间是否出现了SYSVOL复制组。
至此问题解决!