引言: 使用組策略,可以對系統進行全面的設置和控制。但是,在使用組策略時,有時會遇到一些故障,例如配置的組策略并沒有對相關的主機和用戶發生作用,或者雖然應用了預設的組策略,但起到的作用存在問題等。本文介紹如何診斷和排除組策略相關的故障。
在域環境中,客戶端想要應用組策略,必須擁有對域控制器的訪問權限。這樣,客戶端才可以檢測到相關GPO(即Group Policy Object,組 策略對象)的設置信息,通過對當前的組策略配置進行比對,來檢測其是否發生了變動,并據此來更新本機的組策略配置信息。從組策略應用的過程來看,在多個環節都可能發生故障,導致組策略更新出現異常。例如,客戶機和域控之間網絡連接存在問題,域控制器存在問題導致客戶端無法訪問,域控之間數據復制出現問題,身份驗證以及DNS解析錯誤等,都會引發組策略無法正常更新的情況。
因此,在排查問題之前,必須先解決和組策略無關的網絡問題。例如可以使用Ping命令,檢測網絡連通性。運行Windows資源包中的“netdiag.exe”命令,來檢測和診斷網絡連接故障。利用“nslookup”命令,來檢測DNS服務是否正常運行。使用“DcDiag”命令,通過各種診斷測試對域控制器進行全面診斷,分析當前林或域中域控制器狀態,通過查看檢測報告,來尋找問題所在,便于管理員排除故障恢復域控正常功能。通過運行“eventvwr.msc”程序,在事件檢查器中查看相關日志信息,來發現和組策略故障相關的記錄信息,縮小排查范圍,確定問題的根源。
僅就組策略故障排除本身而言,有一些相關的工具可以使用。例如使用“RSOP”、“GPResult”命令,可以查看組策略結果集。執行“mmc”命令,在控制臺中點擊菜單“文件→添加或刪除管理單元”項,選擇“策略的結果集”項,點擊“添加”按鈕,將其添加到控制臺列表中。在“策略的結果集”項的右鍵菜單上點擊“生成RsoP數據”項,在向導界面中選擇“記錄模式”項,可以復查應用到一個特定計算機和用戶的策略設置。選擇“計劃模式”項,可以通過使用來自Active Directory服務的數據來模擬一個策略實現。這里選擇前者,在下一步窗口中選擇“這臺計算機”項,點擊“下一步”,選擇當前用戶或者指定的賬戶,來顯示策略設置信息。點擊“下一步”,完成策略結果集的統計操作。之后,在組策略結果集中,就可以以圖形界面查看變動信息。
當然,在CMD窗口中執行“gpresult /R”命令,可以以命令行方式查看當前用戶的組策略結果集信息。執行“gpresult /USER usename/V”命令,可以查看指定賬戶的組策略結果集。
使用“Gpotool”命令,可以檢測組策略對象的穩定性,并且可以組策略的復制進行監控,可以遍歷所有的域控制器,檢測組策略容器和組策略模板之間是否一致。先安裝Windows資源包,運行其中的“gptool”工具,會顯示所有GPO的GUID參數、名稱、狀態等。在對應GPO的“Policy”欄中顯示“OK”字樣,說明狀態正常,否則就說明存在問題。使用“gpupdate”命令,可以強制更新組策略。
因為在默認情況下,要激活針對賬戶的組策略更新,需要執行注銷操作。要激活針對計算機的組策略更新,需要執行重啟銷操作。利用該命令,可以強制立即更新。使用“Dcgpofix”命令,可以將默認的組策略對象還原到初始安裝后的原始狀態,即對默認組策略進行還原處理。利用“GPLogView”工具,可以查看GPO的日志信息。該命令出現在Windows Server 2008之后的系統中,可以查看和組策略相關的事件和操作日志信息,并且可以將其導出為獨立的文件。利用組策略管理腳本GPMC,可以快速高效地執行各種故障排除操作。
在默認情況下,域的根節點和OU之間,不同OU之間會形成層級結構,因為不同的GPO可以連接到根節點或者不同的OU中,因此GPO也會形成層級結構。因此,在上一級的容器中鏈接了某個GPO對象,那么下一級容器也會繼承該GPO對象。
如果因為配置不當,在下一級的容器上阻止了GPO對象的繼承,必然會造成該容器中的用戶或者計算機無法應用該GPO對象。在域控上打開組策略管理器,如果發現某個容器上帶有藍色嘆號標記,說明在該容器上設置了阻止繼承功能。在客戶端執行“gpresult -R”命令,在返回信息中的“下列組策略對象被篩選排除,因此沒有應用”欄中也會顯示被阻止繼承的GPO對象。在該容器的右鍵菜單上取消“阻止繼承”項,就可以讓客戶端順利的應用該容器的上級策略。對于一些重要的GPO對象,可以在其右鍵菜單上選擇“強制”項,禁止下一級容器對其進行阻止繼承操作。
利用組策略的篩選功能,只允許目標OU中的指定用戶或計算機可以應用特定的GPO對象,即確定哪些用戶或計算機可以接收到相關的組策略設置信息。組策略的篩選包括安全篩選和WMI篩選,因為篩選針對的是具體的GPO進行的,對于安全篩選來說,可以將指定的用戶或者組添加進來。如果配置不當的話,就會造成某些組中的用戶被排除在篩選范圍之外,這些用戶自然無法應用該GPO的配置信息。
所以,在排查問題時,應該檢測是否將正常的用戶和計算機加入到篩選范圍內,便于其順利更新組策略。如果某個GPO連接到預設的WMI篩選器上,可以對客戶端的軟硬件以及配置信息進行篩選,只有符合條件的客戶端,才可以應用該GPO對象。如果WMI篩選器設置有問題,就會造成某些客戶端正確更新組策略的問題。因為組策略篩選設置不當,往往會造成同一個OU中的不同用戶和計算機會接收到不同的組策略配置參數。只要在篩選配置中檢測,自然可以找到問題所在。排除方法很簡單,將合法的用戶或計算機添加到篩選列表中即可。
組策略對象實際上由組策略模版(GPT)和組策略(GPC)容器組成,其中組策略容器存放在活動目錄數據庫中,組策略模板是存放在“SYSVOL”目錄中的。在不同站點中存在多臺域控,彼此之間必然會自動復制數據,針對GPT和GPC,復制的機制是不同的。對于前者采用的是文件復制模式,對于后者采用的是AD DS模式模式。因為復制方式不同,就有可能造成在某個時間段內,不同域控之間的組策略版本不一致的問題。如果在該時間段內,客戶端執行組策略更新操作,就會造成得不到最新組策略設置的情況。如果客戶端使用的是慢速連接,就很容易出現該問題。運行“GPOTool”這一工具,可以檢查所有域控之間策略是否達到了一致性。
如果組策略沒有按照預設的周期執行刷新,就需要檢查是否在檢查用戶的計算機的刷新時間間隔內調整了組策略,這樣達到刷新時間點后,客戶端就會自動執行刷新操作。讓客戶端用戶先注銷再登錄,或者重啟計算機,來應用組策略更新操作。檢查是否存在緩存的憑據,因為其可能延遲組策略更新的效果。檢測環回策略是否啟用,防止其阻止組策略按照預設周期刷新。使用“gpupdate/force”命令,可以強制執行組策略的刷新操作。
在具體排斥組策略故障時,是很講究順序的。首選在組策略結果集中進行檢查,查看相應的GPO對象是否列為應用目標。如果是的話,接著查看設置是否被列出,如果是的話,可以接著針對GPO繼承、復制、組策略刷新、異步處理、客戶端擴展以及回環處理等方面進行排查。如果否的話,可以針對復制、組策略刷新、操作系統是否支持、慢速鏈接等方面進行排查。如果相應的GPO對象沒有被列為應用目標,可以查看在結果集中其是否出現在拒絕列表中,如果是的話,可以針對安全篩選,是否禁用該GPO,不可訪問的數據,該GPO是否為空,預設的WMI篩選器是否有誤等方面進行排查。
如果沒有出現在拒絕列表中,可以針對管理范圍、復制問題、組策略刷新、網絡連接是否順暢等方面進行排查。當在客戶端配置組策略時,必須得到不同的客戶端擴展程序的支持。例如,對于不同的組策略設置項目(例如軟件、安全設置、管理模版等)來說,對應的是不同的客戶端擴展程序。如果某些客戶端擴展程序沒有被啟用,自然無法執行對應組策略的配置操作。如果檢測到客戶端使用的是慢速鏈路(默認低于500Kbps),某些客戶端擴展程序就不會進行處理。例如對于通過組策略部署軟件來說,因為傳送的安裝包體積很大,慢速鏈路顯然無法應對,和軟件安裝相關的客戶端擴展程序就不會正常運作。對于安全設置模板來說,不管是慢速連接還是快速鏈接,與之對應的客戶端擴展程序則總是處于應用狀態,無法將其關閉。