SYSVOL目錄是指存儲(chǔ)域公共文件服務(wù)器副本的共享文件夾,它們?cè)谟蛑胸?fù)責(zé)所有的域控制器之間數(shù)據(jù)復(fù)制。該文件夾是安裝AD時(shí)創(chuàng)建的,用來(lái)存放GPO、Script等信息。存放在SYSVOL文件夾中的信息,會(huì)復(fù)制到域中所有DC上。例如,當(dāng)客戶端登錄時(shí),會(huì)首先在SYSVOL文件查找GPO和啟動(dòng)腳本。當(dāng)域管理員配置了新的組策略,發(fā)布了新的管理腳本,這些內(nèi)容保存在SYSVOL目錄中。
當(dāng)客戶端重新開(kāi)機(jī)或者執(zhí)行“gpupdate /force”等命令時(shí),這些內(nèi)容同步到客戶機(jī)上,讓客戶機(jī)執(zhí)行預(yù)設(shè)的配置操作。如果在企業(yè)環(huán)境中部署了多臺(tái)域控,必然在彼此之間同步SYSVOL目錄的數(shù)據(jù)。在域控某臺(tái)服務(wù)器上打開(kāi)文件管理器,在地址欄上輸入“\dcsrv.xxx.com”,這里的“dcsrv”表示域控名,“xxx.com”表示域名,回車(chē)后會(huì)顯示名為“NETLOGON”和“SYSVOL”的兩個(gè)共享目錄。
“NETLOGON”共享對(duì)應(yīng)的是SYSVOL目錄中的名為“script”的文件夾,在其中主要保存和AD管理相關(guān)的腳本文件。也可以在域控上打開(kāi)CMD窗口,執(zhí)行“net share”命令,顯示所有的共享目錄,其中包含上述兩個(gè)共享路徑。對(duì)于Netlogon(網(wǎng)絡(luò)登錄)服務(wù),可以為域控制器注冊(cè)所有的srv資源紀(jì)錄,這些紀(jì)錄出現(xiàn)在DNS服務(wù)器的正向查詢區(qū)域中企業(yè)域名中的 _msdcs、_sites、_tcp、and _udp等文件夾中,其他計(jì)算機(jī)利用這些紀(jì)錄查詢域活動(dòng)目錄相關(guān)的信息。
執(zhí)行“tree %systemroot%sysvol /f”命令,可以顯示SYSVOL的目錄結(jié)構(gòu),包括“domain”、“staging”、“staging areas”和“sysvol” 等目錄。其中的“domain”文件夾主要用來(lái)保存組策略配置信息、腳本文件等內(nèi)容。“staging areas”文件夾主要用來(lái)存儲(chǔ)不同域控之間用于同步的數(shù)據(jù)。當(dāng)存在多臺(tái)域控時(shí),必然會(huì)相互同步數(shù)據(jù),該文件夾可以臨時(shí)存放需要同步的數(shù)據(jù),之后在多臺(tái)域控之間進(jìn)行同步。上面提到的“NETLOGON”和“SYSVOL”的兩個(gè)共享目錄 ,是 和“%systemroot%sysvolxxx.comscript”、“%systemrootsysvol%”目錄對(duì)應(yīng)。
根據(jù)以上分析可以看出,在SYSVOL目錄中主要存儲(chǔ)和活動(dòng)目錄相關(guān)的組策略與腳本,因此需要及時(shí)備份,當(dāng)SYSVOL出現(xiàn)故障時(shí),可以迅速進(jìn)行恢復(fù)。老版本的Windows Server使用文件復(fù)制服務(wù)DFS來(lái)備份該目錄,對(duì)于Windows Server 2008/2012等新系統(tǒng),利用分布式文件系統(tǒng)復(fù)制服務(wù)DFS-R來(lái)進(jìn)行備份。這里以后者為例進(jìn)行說(shuō)明。
在CMD窗口中輸入“netstop dfsr”,停止分布式文件系統(tǒng)復(fù)制服務(wù)。之后針對(duì)該目錄進(jìn)行復(fù)制或者備份操作,例如運(yùn)行Windows Server Backup,在主界面右側(cè)的“操作”欄中點(diǎn)擊“一次性備份”,在向?qū)е羞x擇“其他選項(xiàng)”,點(diǎn)擊下一步,在備份配置窗口中選擇“自定義”,在下一步窗口中點(diǎn)擊“添加項(xiàng)”,選擇上述SYSVOL目錄,之后進(jìn)行備份即可。當(dāng)備份完畢后,執(zhí)行“net start dfsr”重啟分布式文件系統(tǒng)復(fù)制服務(wù)。

圖1 修改目標(biāo)項(xiàng)屬性值
在域控運(yùn)行過(guò)程中,由于某種原因需要更改SYSVOL目錄的位置,可以先在CMD窗口中執(zhí)行“net stop dfsr”,停止分布式文件系統(tǒng)復(fù)制服務(wù)。之后將“%systemroot%sysvol”目錄內(nèi)容完整復(fù)制到新的路徑中(例 如“d:sysvol”)。 為 了讓操作順利進(jìn)行,需要將“d:sysvolstaging areas”目錄中的“xxx.com”文件夾刪除。執(zhí)行“regedit.exe”程序,在注冊(cè)表編輯器中打開(kāi)“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesNetlogonParameters”分支,在右側(cè)雙擊“sysvol”項(xiàng),將其值設(shè)置為“d:sysvol”。
這樣,系統(tǒng)就可以據(jù)此來(lái)創(chuàng)建上述兩個(gè)共享文件夾。執(zhí)行“adsiedit.msc”程序,在ADSI編輯窗口左側(cè)選擇“默認(rèn)命名上下 文 →DC=xxx,DC=com→OU=Domain Controllers→CN=DC→CN=Domain System Volume” 分 支,在 右 側(cè)“CN=SYSVOL Subscription”項(xiàng)的右鍵菜單上點(diǎn)擊“屬性”項(xiàng),在屬性窗口(如圖1)中的“屬性編輯器”面板中找到 “msDFSR-StagingPath”項(xiàng),將其值修改為“d:sysvoldomain”。找到名為“msDFSRStagingPath”的項(xiàng),將值修改為“d:sysvolstaging areasxxx.com”,點(diǎn)擊確定保存配置。
在CMD窗口中進(jìn)入“d:sysvolstaging areas”目錄,執(zhí)行“mklink /j xxx.com d:sysvolstagingdomain”,針對(duì)該目錄創(chuàng)建鏈接指針,其實(shí)就是為其創(chuàng)建共享快捷方式。因?yàn)檫@里使用的是Windows Server 2008之后的版本,已經(jīng)不再使用文件復(fù)制服務(wù),取而代之的是分布式文件復(fù)制服務(wù),所以就沒(méi)有必要針對(duì)新路徑中的“sysvol”目錄創(chuàng)建鏈接指針了。最后,執(zhí)行“net stop netlogon”、“net start netlogon”、“net stop dfsr”和“net start dfsr”,重啟NETLOGON和DFRS服務(wù),就可以實(shí)現(xiàn)移動(dòng)SYSVOL目錄的功能。
在管理工作中,經(jīng)常會(huì)遇到和AD相關(guān)的問(wèn)題,有些故障就是和SYSVOL目錄緊密相關(guān)的。例如,域管理員發(fā)布了新的組策略,在客戶端無(wú)法發(fā)揮作用,在客戶端上訪問(wèn)“\dcsrv.xxx.com”地址時(shí)并不顯示默認(rèn)的共享路徑。造成該問(wèn)題的原因很有可能是SYSVOL目錄中共享信息丟失的緣故。執(zhí)行“tree%systemroot%sysvol /f”,可以正常顯示SYSVOL目錄的完整內(nèi)容。為此可以執(zhí)行“net stop netlogon”、“net start netlogon”、“net stop dfsr”和“net start dfsr”,來(lái)停止并重新啟動(dòng)NETLOGON和DFS-R服務(wù),重建上述兩個(gè)共享文件夾即可。
如果在轉(zhuǎn)移了SYSVOL目錄后,因?yàn)檎`操作將其刪除,同樣會(huì)引起和AD管理有關(guān)的故障,可以手工進(jìn)行恢復(fù),執(zhí)行“net stop dfsr”命令,停止分布式復(fù)制服務(wù)。之后,手工創(chuàng)建上述SYSVOL目錄結(jié)構(gòu)。例如在CMD窗口中使用“md”命令,創(chuàng)建“d:sysvol”目錄,在該目錄下分別創(chuàng)建“domain”、“staging”、“staging areas”以及“sysvol”文件夾。進(jìn)入“domain”目錄,創(chuàng)建“policies”和“scripts”文件夾,分別用來(lái)存儲(chǔ)組策略信息和腳本文件。在“staging”目錄下創(chuàng)建名為“domain”的文件夾。創(chuàng)建好SYSVOL的目錄結(jié)構(gòu)后,進(jìn)入“d:sysvolstaging areas” 目 錄,執(zhí)行“mklink /j xxx.com d:sysvolstagingdomain”命令,針對(duì)該目錄創(chuàng)建鏈接指針。

圖2 組策略還原工具窗口
進(jìn) 入“d:sysvolsysvol”目錄,執(zhí)行“mklink/j xxx.com d:sysvoldomain”命令,之后按照上述方法重啟分布式復(fù)制服務(wù)。為了順利發(fā)布組策略,還需要打開(kāi)之前備份的SYSVOL目 錄, 將 “sysvolxxx.compolicies”文件夾中的內(nèi)容復(fù)制到上述手工創(chuàng)建的“policies”目錄中,主要是恢復(fù)域控中的策略文件。如果沒(méi)有備份,也可以使用系統(tǒng)自帶的組策略還原工具來(lái)解決該問(wèn)題。進(jìn)入“d:sysvol”目錄,執(zhí)行“dcgpofix”程序(如圖2),在警告信息欄中輸入“y”,就可以成功還原默認(rèn)的控制器策略。這里僅僅執(zhí)行了還原操作,并沒(méi)有修改指向此組策略對(duì)象的組策略鏈接。在默認(rèn)情況下,默認(rèn)域控制器策略鏈接到域控制器OU上。這樣,就可以恢復(fù)SYSVOL目錄的功能了。
在有些情況下,域控是由較老版本的Windows Server升級(jí)到新版本的,當(dāng)升級(jí)完成后,使用的依然是老版本的文件復(fù)制服務(wù),需要強(qiáng)制使用分布式文件復(fù)制服務(wù),來(lái)提供同步的效率。因?yàn)榉植际綇?fù)制服務(wù)針對(duì)的不是整個(gè)文件,而僅僅是文件中發(fā)生變化的數(shù)據(jù)。
例 如 名 為“dc1”的 域控由老版本升級(jí)到Windows Server 2008 R2,額外域控名為“dc2”安裝的是Windows Server 2008 R2。在執(zhí)行操作之前,需要將FSMO角色遷移到DC2上。在DC1上打開(kāi)CMD窗口,依次執(zhí)行“ntdsutil”、“roles”、“connections”、“connect to server dc2.xxx.com”、“quit” 命 令,連接到額外域控上。依次執(zhí)行“transfer schema master”、“transfer RID master”、“transfer infrastructure master”、“transfer PDC”、“transfer naming master”等命令,將FSMO角色遷移到DC2上。以域管理員身份在DC2上依次執(zhí)行“repadmin/replsum”、“dfsrmig /setglobalstate 1”、“dfsrmig/setglobalstate 2”、“dfsrmig/setglobalstate 3”等命令,停止文件復(fù)制服務(wù),將分布式文件復(fù)制服務(wù)激活,并使其處于惟一狀態(tài)。在此期間,可 以 執(zhí) 行“dfsrmig /getglobalstate”和“dfsrmig/getmigrationstate”命令,來(lái)查看不同域控的狀態(tài)信息。