SYSVOL目錄是指存儲域公共文件服務(wù)器副本的共享文件夾,它們在域中負責所有的域控制器之間數(shù)據(jù)復制。該文件夾是安裝AD時創(chuàng)建的,用來存放GPO、Script等信息。存放在SYSVOL文件夾中的信息,會復制到域中所有DC上。例如,當客戶端登錄時,會首先在SYSVOL文件查找GPO和啟動腳本。當域管理員配置了新的組策略,發(fā)布了新的管理腳本,這些內(nèi)容保存在SYSVOL目錄中。
當客戶端重新開機或者執(zhí)行“gpupdate /force”等命令時,這些內(nèi)容同步到客戶機上,讓客戶機執(zhí)行預設(shè)的配置操作。如果在企業(yè)環(huán)境中部署了多臺域控,必然在彼此之間同步SYSVOL目錄的數(shù)據(jù)。在域控某臺服務(wù)器上打開文件管理器,在地址欄上輸入“\dcsrv.xxx.com”,這里的“dcsrv”表示域控名,“xxx.com”表示域名,回車后會顯示名為“NETLOGON”和“SYSVOL”的兩個共享目錄。
“NETLOGON”共享對應的是SYSVOL目錄中的名為“script”的文件夾,在其中主要保存和AD管理相關(guān)的腳本文件。也可以在域控上打開CMD窗口,執(zhí)行“net share”命令,顯示所有的共享目錄,其中包含上述兩個共享路徑。對于Netlogon(網(wǎng)絡(luò)登錄)服務(wù),可以為域控制器注冊所有的srv資源紀錄,這些紀錄出現(xiàn)在DNS服務(wù)器的正向查詢區(qū)域中企業(yè)域名中的 _msdcs、_sites、_tcp、and _udp等文件夾中,其他計算機利用這些紀錄查詢域活動目錄相關(guān)的信息。
執(zhí)行“tree %systemroot%sysvol /f”命令,可以顯示SYSVOL的目錄結(jié)構(gòu),包括“domain”、“staging”、“staging areas”和“sysvol” 等目錄。其中的“domain”文件夾主要用來保存組策略配置信息、腳本文件等內(nèi)容。“staging areas”文件夾主要用來存儲不同域控之間用于同步的數(shù)據(jù)。當存在多臺域控時,必然會相互同步數(shù)據(jù),該文件夾可以臨時存放需要同步的數(shù)據(jù),之后在多臺域控之間進行同步。上面提到的“NETLOGON”和“SYSVOL”的兩個共享目錄 ,是 和“%systemroot%sysvolxxx.comscript”、“%systemrootsysvol%”目錄對應。
根據(jù)以上分析可以看出,在SYSVOL目錄中主要存儲和活動目錄相關(guān)的組策略與腳本,因此需要及時備份,當SYSVOL出現(xiàn)故障時,可以迅速進行恢復。老版本的Windows Server使用文件復制服務(wù)DFS來備份該目錄,對于Windows Server 2008/2012等新系統(tǒng),利用分布式文件系統(tǒng)復制服務(wù)DFS-R來進行備份。這里以后者為例進行說明。
在CMD窗口中輸入“netstop dfsr”,停止分布式文件系統(tǒng)復制服務(wù)。之后針對該目錄進行復制或者備份操作,例如運行Windows Server Backup,在主界面右側(cè)的“操作”欄中點擊“一次性備份”,在向?qū)е羞x擇“其他選項”,點擊下一步,在備份配置窗口中選擇“自定義”,在下一步窗口中點擊“添加項”,選擇上述SYSVOL目錄,之后進行備份即可。當備份完畢后,執(zhí)行“net start dfsr”重啟分布式文件系統(tǒng)復制服務(wù)。
圖1 修改目標項屬性值
在域控運行過程中,由于某種原因需要更改SYSVOL目錄的位置,可以先在CMD窗口中執(zhí)行“net stop dfsr”,停止分布式文件系統(tǒng)復制服務(wù)。之后將“%systemroot%sysvol”目錄內(nèi)容完整復制到新的路徑中(例 如“d:sysvol”)。 為 了讓操作順利進行,需要將“d:sysvolstaging areas”目錄中的“xxx.com”文件夾刪除。執(zhí)行“regedit.exe”程序,在注冊表編輯器中打開“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesNetlogonParameters”分支,在右側(cè)雙擊“sysvol”項,將其值設(shè)置為“d:sysvol”。
這樣,系統(tǒng)就可以據(jù)此來創(chuàng)建上述兩個共享文件夾。執(zhí)行“adsiedit.msc”程序,在ADSI編輯窗口左側(cè)選擇“默認命名上下 文 →DC=xxx,DC=com→OU=Domain Controllers→CN=DC→CN=Domain System Volume” 分 支,在 右 側(cè)“CN=SYSVOL Subscription”項的右鍵菜單上點擊“屬性”項,在屬性窗口(如圖1)中的“屬性編輯器”面板中找到 “msDFSR-StagingPath”項,將其值修改為“d:sysvoldomain”。找到名為“msDFSRStagingPath”的項,將值修改為“d:sysvolstaging areasxxx.com”,點擊確定保存配置。
在CMD窗口中進入“d:sysvolstaging areas”目錄,執(zhí)行“mklink /j xxx.com d:sysvolstagingdomain”,針對該目錄創(chuàng)建鏈接指針,其實就是為其創(chuàng)建共享快捷方式。因為這里使用的是Windows Server 2008之后的版本,已經(jīng)不再使用文件復制服務(wù),取而代之的是分布式文件復制服務(wù),所以就沒有必要針對新路徑中的“sysvol”目錄創(chuàng)建鏈接指針了。最后,執(zhí)行“net stop netlogon”、“net start netlogon”、“net stop dfsr”和“net start dfsr”,重啟NETLOGON和DFRS服務(wù),就可以實現(xiàn)移動SYSVOL目錄的功能。
在管理工作中,經(jīng)常會遇到和AD相關(guān)的問題,有些故障就是和SYSVOL目錄緊密相關(guān)的。例如,域管理員發(fā)布了新的組策略,在客戶端無法發(fā)揮作用,在客戶端上訪問“\dcsrv.xxx.com”地址時并不顯示默認的共享路徑。造成該問題的原因很有可能是SYSVOL目錄中共享信息丟失的緣故。執(zhí)行“tree%systemroot%sysvol /f”,可以正常顯示SYSVOL目錄的完整內(nèi)容。為此可以執(zhí)行“net stop netlogon”、“net start netlogon”、“net stop dfsr”和“net start dfsr”,來停止并重新啟動NETLOGON和DFS-R服務(wù),重建上述兩個共享文件夾即可。
如果在轉(zhuǎn)移了SYSVOL目錄后,因為誤操作將其刪除,同樣會引起和AD管理有關(guān)的故障,可以手工進行恢復,執(zhí)行“net stop dfsr”命令,停止分布式復制服務(wù)。之后,手工創(chuàng)建上述SYSVOL目錄結(jié)構(gòu)。例如在CMD窗口中使用“md”命令,創(chuàng)建“d:sysvol”目錄,在該目錄下分別創(chuàng)建“domain”、“staging”、“staging areas”以及“sysvol”文件夾。進入“domain”目錄,創(chuàng)建“policies”和“scripts”文件夾,分別用來存儲組策略信息和腳本文件。在“staging”目錄下創(chuàng)建名為“domain”的文件夾。創(chuàng)建好SYSVOL的目錄結(jié)構(gòu)后,進入“d:sysvolstaging areas” 目 錄,執(zhí)行“mklink /j xxx.com d:sysvolstagingdomain”命令,針對該目錄創(chuàng)建鏈接指針。
圖2 組策略還原工具窗口
進 入“d:sysvolsysvol”目錄,執(zhí)行“mklink/j xxx.com d:sysvoldomain”命令,之后按照上述方法重啟分布式復制服務(wù)。為了順利發(fā)布組策略,還需要打開之前備份的SYSVOL目 錄, 將 “sysvolxxx.compolicies”文件夾中的內(nèi)容復制到上述手工創(chuàng)建的“policies”目錄中,主要是恢復域控中的策略文件。如果沒有備份,也可以使用系統(tǒng)自帶的組策略還原工具來解決該問題。進入“d:sysvol”目錄,執(zhí)行“dcgpofix”程序(如圖2),在警告信息欄中輸入“y”,就可以成功還原默認的控制器策略。這里僅僅執(zhí)行了還原操作,并沒有修改指向此組策略對象的組策略鏈接。在默認情況下,默認域控制器策略鏈接到域控制器OU上。這樣,就可以恢復SYSVOL目錄的功能了。
在有些情況下,域控是由較老版本的Windows Server升級到新版本的,當升級完成后,使用的依然是老版本的文件復制服務(wù),需要強制使用分布式文件復制服務(wù),來提供同步的效率。因為分布式復制服務(wù)針對的不是整個文件,而僅僅是文件中發(fā)生變化的數(shù)據(jù)。
例 如 名 為“dc1”的 域控由老版本升級到Windows Server 2008 R2,額外域控名為“dc2”安裝的是Windows Server 2008 R2。在執(zhí)行操作之前,需要將FSMO角色遷移到DC2上。在DC1上打開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”等命令,停止文件復制服務(wù),將分布式文件復制服務(wù)激活,并使其處于惟一狀態(tài)。在此期間,可 以 執(zhí) 行“dfsrmig /getglobalstate”和“dfsrmig/getmigrationstate”命令,來查看不同域控的狀態(tài)信息。