今日は、先日あるお客様よりご質問をいただいた、
グループポリシーのクライアントサイド拡張(CSE)について紹介します。
通常、クライアントコンピューターがドメインコントローラーからGPOを受信するとき、
クライアント側のグループポリシーエンジン(Group Policy Clientサービス)が処理をしますが、
GPOの特定の項目だけは、グループポリシーのクライアントサイド拡張(CSE)と呼ばれるコンポーネントが処理を担当します。
主なCSEには、
・Group Policy Software Installation Client-Side Extension
(ソフトウェアインストールの項目を担当)
・Group Policy Scripts Client-Side Extension
(ログオン/ログオフスクリプト等の項目を担当)
・Group Policy Registry Client-Side Extension
(管理用テンプレートの項目を担当)
・Group Policy Preference Client-Side Extension
(グループポリシーの基本設定の項目を担当)
などがあります。
その他、どのようなCSEがあるかについては、
@ITさんで紹介されているので、ご覧ください。
■@IT Windows基礎解説 グループポリシーのしくみ
http://www.atmarkit.co.jp/fwin2k/tutor/gpolicy02/gpolicy02_05.html
こんなことを知っていて何の役に立つかといえば、やはりトラブルシューティングだと思います。
CSEにこのようなものがあるということを知っていれば、
グループポリシーのトラブルで「一部のグループポリシー項目だけが適用されない」 なんていうのが
ある場合、いずれかのCSEが処理していないのではないか、と考えることができるからです。
CSEの処理結果を見ながらトラブルシューティングを行う方法は、いくつかあるようなのですが、
ここでは、CSE関連のイベントログがイベントビューアに記録されることに着目し、
イベントログを参照する方法を紹介したいと思います。
イベントビューアのGroup Policyログではなく、アプリケーションログに表示されます。
■Group Policy Software Installation Client-Side Extension
グループポリシーによるソフトウェアのインストールを担当するCSEで
インストールの処理に失敗するときには、イベントID101~308のログが表示される場合があります。
・詳細 – Software Installation Processing
http://technet.microsoft.com/ja-jp/library/cc727267(en-us,WS.10).aspx
■Group Policy Scripts Client-Side Extension
ログオン/ログオフ/スタートアップ/シャットダウンのスクリプト実行を担当するCSEで
スクリプト実行に失敗するときには、イベントID 1130のログが表示される場合があります。
・詳細 – Group Policy Scripts Processing
http://technet.microsoft.com/ja-jp/library/cc727287(en-us,WS.10).aspx
■Group Policy Registry Client-Side Extension
グループポリシーの[管理用テンプレート]内の項目の処理を担当するCSEで
レジストリの書き換え等に失敗するときには、イベントID 1096のログが表示される場合があります。
・詳細 – Group Policy Registry Processing
http://technet.microsoft.com/ja-jp/library/cc727308(en-us,WS.10).aspx
■Group Policy Preference Client-Side Extension
グループポリシーの[基本設定]内の項目を処理するCSEでイベントIDの…
と書こうとしたのですが、残念ながら、どのようなイベントIDが出力されるのか
現時点ではわかりませんでした。
これらのログは、以前の投稿
「イベントビューアからグループポリシーのトラブルシューティングを行う」でも紹介したように、
イベントビューア Group Policy ログのイベントID4016が記録された後に、
個々のCSEの処理が始まりますから、そのことも併せて頭に入れておくと
グループポリシー処理の流れを立体的に捉えることができるかと思います。
クライアントコンピューターが受信したGPOはレジストリにも記録されるので、
最後にGPOを受信したのがいつか?などについて、レジストリから参照することで
トラブルがいつ発生したかなどの状況を把握することもできるようになります。
これについては@ITさんの記事の中で紹介されていたので、参考にするとよいと思います。
■@IT グループポリシーの最終適用日時をレジストリから取得する
http://www.atmarkit.co.jp/fwin2k/win2ktips/1127gptime/gptime.html
また、@ITさんで紹介されているレジストリ項目のほか、HKLMSoftwareMicrosoftWindowsCurrentVersionGroup PolicyHistory
または
HKCUSoftwareMicrosoftWindowsCurrentVersionGroup PolicyHistory
の配下から確認することも可能です。
Historyキーの配下にある文字の羅列はCSEのGUIDを表しており、各GUIDは前述の@ITさんの記事から
確認できます。また、GUIDの配下にある、0とか1などという数字は、そのCSEの処理をどのGPOを
利用して行ったかを確認できます。たとえば、画面1では「1」と数字をクリックすると、画面の右側に
Default Domain Controllers Policyから受信したことが表示されています(DisplayName値に表示)。
追伸
CSEについては、マイクロソフトの資料でこんなものもありました(英語)。
http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-GPAC%5D.pdf