經驗排錯法
上面說的是排錯的一般方法,屬于事物的普遍性,如果我們能夠掌握一些特殊規律,在排錯時有針對性地進行檢查,效果往往會更好一些。
1.應用程序管理策略不工作
首先激活日志,注意這里說的日志是專門監視應用程序管理策略的,打開注冊表,在以下位置HKEY_LOCAL_MACHINESoftware PoliciesMicrosoftWindowsInstaller新建一個字符串值,命名為Logging,值設為voicewarmup。這里,voicewarmup有不同的含義,其中,I表示狀態消息,w:非致命警告,e:所有錯誤信息,a:啟動操作;r:特定操作記錄;u:用戶請求; c:初始用戶界面參數;m:內存不足;p:終端屬性;v:詳細輸出;o:磁盤空間不足消息。
除了修改注冊表外,我們還可以在組策略中激活該日志。激活該日志后,重新執行一遍安裝程序,這樣整個安裝程序的詳內容就會被記錄下來,在命令行鍵入cd %temp%,查找mis開頭擴展名為log的文件就是了,文件名是隨機的。
關于應用程序安裝問題,筆者的經驗是,要么是GPO有問題,要么就是MSI安裝包有問題。當然,還有一種特殊情況,操作系統問題,比如,有一些軟件就沒有辦法安裝在特定的操作系統上,或者目標計算機的“添加/刪除程序”不能正常使用。筆者的經驗是,使用一個標準的MSI包進行問題隔離,看看究竟是MSI 包的問題還是GPO問題,這樣,排錯的目標性就很明確了。
2.注冊表、軟件策略、登錄/注銷/啟動/關閉腳本不生效
檢查Registry.pol 文件是否正確,該文件可以用記事本打開。
3.文件夾重定向策略不生效
關于文件夾重定向,在實際工作中這一塊的問題比較多,但是這些問題都是由于管理員的粗心導致。
當您在做重定向設置時,重定向到的文件夾是否是從網絡路徑獲取的?用戶是否可以通過網絡找到這個文件夾?排措時可以在地址欄里使用UNC路徑試試是否可以正常訪問這個文件夾。
每一位用戶對這個文件夾是否有寫的權限?默認,每一個文件夾被共享出來后,每位用戶對它只有讀取權限。
4.假象錯誤
有一類錯誤根本就不是組策略錯誤,但是很容易讓人誤以為是組策略錯誤。
(1)在域控制器計算機上每隔 5 分鐘,在成員服務器計算機上每隔 20 分鐘,事件查看器中都會記錄下列錯誤信息:
Userenv 1000
Windows cannot access the registry information at \domainname.comsysvoldomainname.comPolicies{ file://\domainname.comsysvoldomainname.comPolicies{31B2F340-016D D-11D2-945F-00C04FB984F9}Machine egistry.pol with (1398).
SceCli 1001
Security policy cannot be propagated.Cannot access the template.Error code=3.
Userenv 1000
The Group Policy client-side extension Security was passed flags (17) and returned a failure status code of (3).
NtFrs 13508
Description:The File Replication Service is having trouble enabling replication from (computername) to (computername) for c:winntsysvoldomain; retrying.
表面上看,錯誤是由Userenv報的,很容易讓人感覺是組策略出了問題,但經過多方檢查,這個錯誤的根源是時間不統一造成的。
解決這一問題的方法就是將所有計算機與域控制器時鐘時間同步:
net time \(domain controller name)/set/y
在所有出現此問題的服務器上停止然后重新啟動文件復制服務,打開事件查看器,確定沒有再出現錯誤。
(2)域控制器的組策略對象無法使用,當使用時,將記錄或顯示多個問題。
應用程序日志中包含下列錯誤消息:
UserEnv 1000 The Group Policy client-side extension Security was passed flags (17) and returned a failure status code of (3).
SceCli 1001 Security policy cannot be propagated.Cannot access the template.Error code = 3. \domain namesysvoldomain namePolicies{31B2F340-016D-11D2-945F-00C04FB984F9}MachineMicrosoftWindows NTSecEditGptTmpl.inf.
UserEnv 1000 Windows cannot access the registry information at \domain namesysvol domain namePolicies{31B2F340-016D-11D2-945F-00C04FB984F9}Machine egistry.pol with (51).
當使用“域安全”策略和“默認域控制器安全設置”策略嘗試訪問“組策略”對象時,將顯示“Group Policy Error”這一錯誤消息。此消息指出:“Failed to Open Group Policy Object. You may not have appropriate rights. Details:The network path not found.”
原因:導致這一問題的原因是主域控制器上面有多個網絡適配器,而主網絡適配器卻沒有綁定“文件和打印共享”,自然,當域控制器嘗試通過主網絡適配器訪問其 Sysvol 共享以讀取組策略。因為通過該適配器無法訪問此共享,所以操作不成功。
同樣,這個問題從根源上說其實也不是組策略出了問題,而是網絡適配器的故障,但卻是由UserEnv表現出來的。
組策略排措備忘錄
1.一定要確認客戶端是否拿到了您設定的策略,很多組策略故障其實并不是真正意義上的故障,是客戶端根本就沒有拿到相關的策略。這里,還要注意一點,那就是組策略有計算機策略和用戶策略,筆者曾經見過不少人在一個OU內(該OU下有10個用戶)鏈接了一個組策略,內容是關閉所有計算機的自動播放,結果策略沒有生效。切記,計算機策略對計算機生效,用戶策略對用戶生效。
2.檢查用戶對組策略是否有讀取權限,重點排查userenv中的cannot access語句。
3.若有多臺成員服務器,要確保組策略的一致性,也就是說,這些服務器之間的復制正常,方法:gpotool。
4.安全策略關注winlogon.log,其他問題仔細看看userenv.log。
5.確保故障不是軟件的Bug引起的,如何確定是否為軟件Bug,筆者的經驗是:做隔離,搭一個試驗環境,模擬生產環境,排除其他的干擾,看看問題是否會重現。
6.透過現象看本質,有些問題以組策略的問題形式表現出來,但往往不一定是組策略的問題。