組策略排錯知識簡析一
組策略對于系統管理員來說至關重要,它的威力不容小覷。組策略可以保障系統的網絡安全,同樣,在組策略出現問題時,我們該怎樣排錯呢?下文給出了詳細的描述。
組策略是一項復雜的技術,它的正常運作靠的是多個隨時可能會發生變化的部分之間的協同工作。通常來說,當你測試某個組策略時,與組策略有關的問題就會出現。很少的時候,這些問題之間看起來沒有什么關聯,也不容易發現組策略與這些問題有關。不管原因是什么,當組策略出問題時,你通常應該檢查多個地方以找到解決方案。
要成功地解決組策略相關的問題,關鍵是知道去哪兒查找故障。組策略的執行包括兩個階段,因此要找出問題的所在,你可以從兩個主要區域開始。
第一階段:是核心執行階段,Windows通過查詢活動目錄(AD)來找出需要將哪個組策略對象(GPO)應用到當前計算機或用戶,哪個組策略區域(如,管理模板、軟件安裝)需要被執行,以及計算機或用戶在上一次應用策略之后該組策略是否發生過改變。核心執行階段需要基礎結構中的幾個部分協同工作,包括DNS、AD、文件復制服務(FRS)和網絡。在核心執行階段,任何一個部分如果出了問題,整個組策略的執行都會出現問題。
執行過程的第二階段:包括客戶端擴展,像安全性設置、管理模板和文件夾重定向。客戶端擴展通過執行和應用在核心執行階段中找到的組策略中的設置來實現組策略。通常來說,如果問題發生在客戶端擴展執行階段,則問題可以限定在一個客戶端擴展之中——甚至限定在通過客戶端擴展來執行的組策略——以及計劃在后面繼續執行的其它組策略。要找出客戶端擴展中存在的問題不是一件容易的事情,因為每一個實現組策略的擴展在實施任務時采用的方式都有些不同,生成日志的級別也不同。
要成功地排除故障,兩個執行階段中生成的日志非常關鍵。日志文件通常能夠解釋那些不太容易發現的問題。如果組策略組結果集(RSoP)報告和基礎結構組件檢查都不能給出解決方法,日志中有時會包含一些重要的錯誤信息,明確地指出問題的所在。
沒有辦法通過一項設置來啟動所有的組策略日志。你可以通過修改注冊表鍵值來手工啟動每個日志。表1列出了用于組策略的日志和相應的注冊表鍵值。另外,你也可以用我編寫的工具(名為gpolog.adm的管理模板文件)來啟動任何一個或者所有與組策略相關的日志,這個方便快捷的工具是免費的,你可以通過以下網址下載:
“http://www.gpoguy.com/tools.htm”。不管問題出現在核心執行階段還是在客戶端擴展階段,按照我提供的步驟來操作都會有助于故障的排除。
表1:組策略日志
描述注冊表鍵值
在應用程序事件日志中記錄詳細的核心執行日志
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\RunDiagnosticLoggingGroupPolicy=REG_DWORD0x1
在應用程序事件日志中記錄詳細的軟件安裝日志
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\RunDiagnosticLoggingAppDeploy=REG_DWORD0x1
在應用程序事件日志中記錄詳細的Microsoft遠程信息服務(RIS)選項日志
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\RunDiagnosticLoggingIntellimirror=REG_DWORD0x1
詳細的用戶環境日志(寫入%windir%\debug\usermode\userenv.log)
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\UserEnvDebugLevel=REG_DWORD0x10002
詳細的文件夾重定向客戶端擴展日志(寫入%windir%\Debug\UserMode\fdeploy.log)
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\FDeployDebugLevel=REG_DWORD0x0F
詳細的軟件安裝客戶端擴展日志(寫入%windir%\Debug\UserMode\appmgmt.log)
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Diagnostics\AppmgmtDebugLevel=REG_DWORD0x9B
詳細的安全性客戶端擴展日志(寫入%windir%\security\logs\winlogon.log)
- HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\ExtensionDebugLevel=REG_DWORD0x02
步驟1:復查最近的執行周期
要判斷一臺工作站或服務器為什么存在組策略執行問題的第一步是找出最后一個組策略執行周期內都發生了什么事情。要完成這一任務,你需要在WindowsServer2003或WindowsXP中安裝使用組策略管理控制臺(GPMC)或Windows2000所帶的gpresult.exe命令行工具。
組策略管理控制臺提供了組策略結果向導,它可以查詢WindowsServer2003和WindowsXP系統并生成報告,指出在最后一個執行周期中在該系統中的指定用戶身上都發生了什么事情。你也可以在命令行方式下運行gpresult.exe,得到的數據與組策略結果向導所提供的內容是相同的。如果你用的是Windows2000系統且使用的是MicrosoftWindows2000資源包中的gpresult.exe,你只能得到WindowsServer2003和WindowsXP所能提供的數據的一個子集。因為Windows2000不包含組策略組結果集,它只存在于后續版本的操作系統。
要運行組策略結果向導,啟動組策略管理控制臺,右鍵點擊組策略結果節點,然后運行向導。向導會問你在本地計算機還是遠程計算機上收集信息。
指定了計算機之后,如果你想收集特定用戶的策略設置,可以選擇一個已經登錄到該計算機的用戶賬戶。向導會訪問你選定的計算機,使用Windows管理規范(WMI)來收集最近的組策略執行數據,最后將報告顯示在組策略管理控制臺的結果面板中。
從排錯的角度來看,結果中最值得關注的部分包含在摘要和策略事件標簽頁。摘要標簽頁提供了在最近一個執行周期中,在計算機和特定用戶之上應用的策略執行動作的總覽。看一看摘要標簽頁中的ComponentStatus部分,就知道核心執行階段或客戶端擴展階段中是否有失敗的部分。
如圖1所示,如果GroupPolicyInfrastructure的執行狀態顯示為“Failed”,則表示核心執行階段出了問題,如果Client-sideExtension的執行狀態顯示為“Failed”,則表示客戶端擴展執行階段出了問題(如文件夾重定向)。

圖1:表明客戶端擴展階段操作失敗的錯誤消息
策略事件標簽頁為你的排錯工作提供了更多的有用信息。通過對組策略結果向導所查詢的計算機上的應用程序事件日志進行過濾,就得到了此標簽頁上的內容。過濾后的視圖只顯示與組策略有關的事件。在這里,你可以得到很多有價值的信息,知道哪個部分工作正常,哪個部分存在問題。
我們來看一個例子,假設你的登錄腳本沒有運行,但是摘要標簽頁中的腳本客戶端擴展組件狀態卻顯示成功了。如果你檢查策略事件標簽頁,就可以看到如圖2所示的與腳本執行有關的錯誤,它會告訴你腳本文件找不到了。可能是服務器上的腳本文件丟失了,也可能是權限問題。不管怎樣,你發現了可以追蹤到問題根源的線索。在利用摘要和策略事件標簽頁中的信息縮小了問題范圍之后,可以開始深入分析了。


圖2:指明腳本丟失的策略事件
欲知更多有關組策略排錯知識,請點擊組策略排錯知識概述二。
【編輯推薦】