刚刚到一家新公司。发现DC的sysvol共享文件夹消失。
于是开始修复。
1. 重建SYSVOL目录树中的内容和重建共享
SYSVOL 文件夹结构: • domain
• DO_NOT_REMOVE_NtFrs_PreInstall_Directory
• Policies
• {GUID}
• Adm
• MACHINE
• USER
• {GUID}
• Adm
• MACHINE
• USER
• {etc.,}
• scripts
• staging
• staging areas
• MyDomainName.com
• scripts
• sysvol(sysvol share)
• MyDomainName.com
• DO_NOT_REMOVE_NtFrs_PreInstall_Directory
• Policies
• {GUID}
• Adm
• MACHINE
• USER
• {GUID}
• Adm
• MACHINE
• USER
• {etc.,}
• scripts(NETLOGON share)
上面的看着太烦。之间安装下面的操作
a. 在windows目录下新建一个文件夹叫SYSVOL
b. 在c:\windows\sysvol目录下再新建一个文件夹:domain、staging、staging areas、sysvol
c. 在C:\WINDOWS\SYSVOL\domain目录下新建两个文件夹:Policies和Scripts
d. 在C:\WINDOWS\SYSVOL\staging目录下新建一个文件夹:domain
e. 在C:\WINDOWS\SYSVOL\staging areas目录下新建一个和域名相同的文件夹,例如我的是a.com,那么就在该目录新建a.com文件夹
f. 和步骤e一样,在C:\WINDOWS\SYSVOL\sysvol目录也新建一个和域名相同的文件夹,如C:\WINDOWS\SYSVOL\sysvol\a.com,至此文件夹的结构被我们重建得差不多了。
1. 由于接下来我们需要用到两个小工具,所以要在域控制器上安装Windows 2003 Resource kit,下载地址为:
http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=9d 467a 69-57ff-4ae7-96ee-b 18c 4790cffd&u=http% 3a % 2f %2fdownload.microsoft.com%2fdownload% 2f 8%2fe%2fc% 2f 8ec 3a 7d8-05b4 -440a -a71e-ca3ee25fe057%2frktools.exe
2. 在cmd理 运行如下命令重启NTFRS服务:
Net stop ntfrs & net start ntfrs
3. 重启服务后,NTFRS服务会自动帮我们完善前面的SYSVOL目录结构,例如添加相应目录的隐藏属性、增加DO_NOT_REMOVE_NtFrs_PreInstall_Directory隐藏文件夹等等。运行如下命令后
ntfrsutl ds |findstr /i "root stage",
得出的结果表示为正常
(root :C:\windows\sysvol\admin
Stage : c:\windows\sysvol\staging\domain)
4 如果不是显示的内容。使用Ldp.exe 或 ADSIedit.msc 编辑器在 Active Directory 中修改 FRSRootPath 属性的值。FRSRootPath 属性必须反映在步骤 3 中指定的新副本集的根驱动器和文件夹。在本例中,应按如下所示修改 FRSRootPath 属性:? DN 路径:cn=Domain System Volume (SYSVOL share),CN=NTFRS Subscriptions,CN=DC1,OU=Domain Controller,DC=CONTOSO.COM
FRSRootPath 值:C:\windows\sysvol\admin
5. 使用 Ldp.exe 或 ADSIedit.msc 编辑器修改 FRSStagingPath 属性的值。此属性必须反映新的分步路径,包括在步骤 3 中选定的新驱动器和文件夹。? DN 路径:cn=Domain System Volume (SYSVOL share),CN=NTFRS Subscriptions,CN=DC1,OU=Domain Controller,DC=CONTOSO.COM
FRSStagingPath 值:c:\windows\sysvol\staging\domain
6修改注册表以反映新的暂存驱动器和文件夹。为此,请按照下列步骤操作。a. 单击“开始”,单击“运行”,键入 regedt32,然后单击“确定”。
b. 找到下面的注册表子项,然后右键单击它:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetlogonParameters
c. 单击修改,然后键入新的 SYSVOL 副本集根路径。例如,键入 X:Winntsysvolsysvol。
7. 配置 FRS 以对 SYSVOL 副本集执行非授权还原。为此,请按照下列步骤操作:a. 找到下面的注册表子项,然后右键单击它:
HKEY_LOCAL_MACHINESYSTEMCCSServicesNTFRSParametersBackupRestoreProcess at Startup
b. 单击“BurFlags”值。如果在同一域中有其他域控制器,请将该值设为“D2”(十六进制)。如果域中只有一个域控制器,请将“BurFlags”值设为“D4”(十六进制)。
重要说明:不要立即重新启动 FRS。
注意:如果域控制器承载了由 FRS 复制的所有 DFS 根目录或链接,则您可能希望设置特定于副本集的“BurFlags”注册表项,以避免消耗临时服务和重新复制由 FRS 复制的 DFS 根目录或链接中的数据。
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290762 (http://support.microsoft.com/kb/290762/) 使用 BurFlags 注册表项重新初始化文件复制服务副本集
8. 将默认权限应用于 SYSVOL 树的新路径。为此,请复制以下文本,然后将其粘贴到记事本文件中:[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Profile Description]
Description=default perms for sysvol
[File Security]
;"%SystemRoot%SYSVOL",0,"D:AR(A;OICI;FA;;;BA)"
;---------------------------------------------------------------------------------------------
;Sysvol. THIS ENVIRONMENT VARIABLE MUST BE SET!!!!!!!!!!!!!!!!!!!!!!!!!
;---------------------------------------------------------------------------------------------
"%Sysvol%",2,"D:P(A;CIOI;GRGX;;;AU)(A;CIOI;GRGX;;;SO)(A;CIOI;GA;;;BA)(A;CIOI;GA;;;SY)(A;CIOI;GA;;;CO)"
"%Sysvol%domainpolicies",2,"D:P(A;CIOI;GRGX;;;AU)(A;CIOI;GRGX;;;SO)(A;CIOI;GA;;;BA)(A;CIOI;GA;;;SY)(A;CIOI;GA;;;CO)(A;CIOI;GRGWGXSD;;;PA)"
9. 使用以下参数保存在步骤 8 中创建的记事本文件的内容:? 文件名:%systemroot%securitytemplatessysvol.inf
保存类型:所有文件
编码:Unicode
10. 导入 SYSVOL 安全模板。为此,请依次单击“开始”、“运行”,键入 cmd,然后单击“确定”。键入以下命令,然后按 Enter:
secedit /configure /cfg %systemroot%securitytemplatessysvol.inf /db %systemroot%securitytemplatessysvol.db /overwrite
11再次运行如下命令后
ntfrsutl ds |findstr /i "root stage",
得出的结果表示为正常
(root :C:\windows\sysvol\admin
Stage : c:\windows\sysvol\staging\domain)
12. 使用 Linkd 命令更新文件系统中的重分析点,以反映 SYSVOL 树的新路径。例如,如果域控制器位于 CONTOSO.COM 域中,且 SYSVOL 树位于 X:WindowsSysvol 文件夹中,则在域控制器的命令提示符处键入以下命令。在输入每个命令后按 Enter。
linkd C:WinntSysvolSysvolCONTOSO.COM C:WinntSysvolDomain
linkd C:WinntSysvolStaging areasCONTOSO.COM C:WinntSysvolStagingDomain
13 打开注册表编辑器,找到如下键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtFrs\Parameters\Cumulative Replica Sets\{GUID},其中GUID是类似f 791c 404-f 37f -4634-9899d59d9397871e这样的字符串值。
然后找到右边的BurFlags,同样将其修改为D4,完成后退出注册表编辑器,如图
(注:第13步修改的注册表键值会在第14步操作后自动清除回到默认值)
17 如何解决上面的问题呢?我认为至少有3个方法可以解决:
a. 最简单也是最值得推荐的方法就是直接从别的域控制器上将以上的策略文件拷贝到该域控制的C:\WINDOWS\SYSVOL\sysvol\a.com\Policies目录下。如图19。不要告诉我你没有其他域控制器,重新安装一台虚拟机总是可以的吧。
(注:{31B 2F 340-016D-11D2 -945F -00C 04FB 984F 9}是““域安全策略”的文件策略;
{ 6AC 1786C -016F -11D2 -945F -00C 04fB 984F 9}是“域控制器安全策略”的策略文件)
b. 如果您以前曾通过GPMC备份过GPO,那么直接还原过去即可。这种方法是最没有副作用的。不止能还原系统默认的GPO,还能还原自定义的GPO设置。
c. 如果没有做过GPO的备份,又懒得从其他域控制器拷贝,那么还有一个办法是使用工具直接重建这两条策略,方法是安装Resource Kit后运行命令dcgpofix /target:both。这个命令会重新建立这两条策略到域控制器刚安装好时的默认状态,既然是重建那么你曾在这两条策略上做的设置都会清空,这点请注意。
(注:运行dcgpofix时如果提示“此域的 Active Directory 架构版本和此工具所支持的版本不匹配。”,那么请将命令修改为dcgpofix /ignoreschema /target:both忽略架构版本。之所以有这样的提示是因为我的系统现在是2003 SP2,而Resource Kit工具包是配合2003的,没有找到专门匹配2003SP2的资源包,其实不必理会,直接忽略警告信息就OK。)
18 此时再打开事件查看器,每隔5分钟出现一次的红叉终于没有了,整个世界清净了。