使用Winlogon組件診斷并解決GPO設(shè)置丟失問題
一個(gè)加入域的Windows客戶端計(jì)算機(jī)可能不接收在活動(dòng)目錄域配置的所有組策略設(shè)置。因此,一些終端可能無法應(yīng)用丟失的組策略對(duì)象設(shè)置,但是Winlogon可以幫助診斷并解決這個(gè)問題。
例如,活動(dòng)目錄管理員可能已經(jīng)在組策略對(duì)象(GPO)中配置了要應(yīng)用在Windows機(jī)器上的壁紙和無線設(shè)置。你注意到用戶能***地接收壁紙?jiān)O(shè)置,但無法通過GPO中的“無線網(wǎng)絡(luò)(IEEE 802.11)策略”節(jié)點(diǎn)使用無線配置策略。桌面管理員必須找到組策略設(shè)置丟失的常見原因。
GPO架構(gòu)中實(shí)現(xiàn)兩種類型的組件:服務(wù)器端組件與客戶端組件。服務(wù)器端組件包括組策略編輯器,活動(dòng)目錄管理員可以使用組策略編輯器配置GPO的設(shè)置??蛻舳私M件在Windows客戶端實(shí)現(xiàn)GPO的設(shè)置??蛻舳私M件也被稱為客戶端擴(kuò)展(CSE)。
Winlogon組件作為進(jìn)程運(yùn)行在Windows電腦上,處理GPO設(shè)置過程。在計(jì)算機(jī)啟動(dòng)時(shí),Winlogon進(jìn)程調(diào)用CSE處理GPO設(shè)置、用戶登錄和組策略刷新間隔。每個(gè)CSE都作為動(dòng)態(tài)鏈接庫(DLL)存在,并且每個(gè)CSE可以決定不執(zhí)行GPO設(shè)置過程。
Winlogon如何知道哪個(gè)CSE負(fù)責(zé)處理GPO設(shè)置?
Windows注冊(cè)表是一個(gè)巨大的信息儲(chǔ)藏室。大多數(shù)應(yīng)用和操作系統(tǒng)組件將Windows組件活動(dòng)的必要信息存儲(chǔ)到注冊(cè)表數(shù)據(jù)庫。
每個(gè)客戶端擴(kuò)展從Winlogon組件注冊(cè)
例如,當(dāng)一臺(tái)Windows電腦啟動(dòng)時(shí),會(huì)檢查頁面文件在注冊(cè)數(shù)據(jù)庫中的位置,并在啟動(dòng)過程中將其初始化。同樣的,在指示CSE DLL開始處理組策略設(shè)置之前,Winlogon進(jìn)程使用注冊(cè)表來確定該CSE的位置。
每個(gè)CSE在下列注冊(cè)表主鍵位置:HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\GPExtensions。
如上面的截圖所示,GPO的“無線組策略”設(shè)置由“wlgpclnt.dll”DLL處理,將GUID分配給它。一些常見的CSE和GUID及其Dell名稱如以下所示:
在處理和應(yīng)用策略設(shè)置之前,客戶端設(shè)備必須存在GPO節(jié)點(diǎn)相應(yīng)的CSE DLL。例如,如果CSE DLL "Dskquota.dll"不存在或損壞,那么與Disk Quotas相關(guān)的GPO的設(shè)置不會(huì)被應(yīng)用或進(jìn)行相關(guān)處理。
Windows XP的CSE比Windows 8和Windows 7少。例如,Windows XP設(shè)備不知道如何處理與Drive Maps相關(guān)的設(shè)置,因?yàn)閃indows XP設(shè)備中沒有相關(guān)的CSE來處理GPO中“Drive Maps”節(jié)點(diǎn)的設(shè)置。
如果你需要Windows XP設(shè)備處理 "Drive Maps" 設(shè)置和***項(xiàng)設(shè)置,你必須下載并安裝CSE。
計(jì)算機(jī)啟動(dòng)時(shí)啟用CSE
如前所述,Winlogon進(jìn)程觸發(fā)CSE來處理GPO節(jié)點(diǎn)的策略設(shè)置。當(dāng)電腦啟動(dòng)時(shí),會(huì)發(fā)生以下事件:
- Windows客戶端計(jì)算機(jī)加入一個(gè)活動(dòng)目錄域。
- 客戶端驗(yàn)證活動(dòng)目錄域控制器。
- Winlogon進(jìn)程調(diào)用本身并開始處理GPO每個(gè)節(jié)點(diǎn)的策略設(shè)置。
- Winlogon進(jìn)程需要確定處理GPO節(jié)點(diǎn)設(shè)置的CSE。其確定CSE DLL在HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\GPExtensions注冊(cè)表的位置。Winlogon根據(jù)GUID確定CSE。
- Winlogon指示相應(yīng)的CSE處理GPO設(shè)置。例如,對(duì)于“Administrative Templates”GPO節(jié)點(diǎn),“userenv.dll”CSE負(fù)責(zé)對(duì)GPO中的"Administrative Templates" 節(jié)點(diǎn)執(zhí)行相關(guān)處理并應(yīng)用設(shè)置。同樣,“Dskquota.dll”CSE負(fù)責(zé)處理GPO節(jié)點(diǎn)的“Disk Quota”策略設(shè)置。
- 注意:這里的GPO處理由單獨(dú)的CSE負(fù)責(zé)。Winlogon的任務(wù)是指導(dǎo)CSE對(duì)GPO處理采取必要行動(dòng)。
- CSE生成Event ID 4016,這表明CSE處理已經(jīng)開始。
- 處理完成之后,Event ID 5016登錄應(yīng)用程序日志,表明CSE已經(jīng)成功處理了GPO設(shè)置。
- 為了防止CSE處理過程中出現(xiàn)問題,Event ID 6016或7016將登錄到Application Event Log來顯示CSE處理過程中出現(xiàn)的問題。CSE處理可能會(huì)導(dǎo)致下面的警告或錯(cuò)誤:
-
上述注冊(cè)表位置中的CSE或GUID丟失。
-
Winlogon可以找到GUID但不能獲得CSE DLL的位置。
-
Winlogon無權(quán)訪問上述注冊(cè)表主鍵。
-
CSE DLL丟失或損壞。
-
沒有相應(yīng)的CSE來處理GPO設(shè)置。
Winlogon進(jìn)程使用注冊(cè)表數(shù)據(jù)庫確定CSE的位置來處理GPO節(jié)點(diǎn)設(shè)置。正如你所看到的,如果沒有相應(yīng)的CSE來處理GPO設(shè)置,或如果CSE DLL損壞,GPO節(jié)點(diǎn)的策略設(shè)置將不適用。這就是為什么Windows客戶端可能會(huì)丟失一些GPO設(shè)置。