グループポリシー「基本設定」のトラブルシューティングを行う

Windows 2000の登場当時から比べると、Windows Server 2008 R2では
本当にグループポリシー設定項目が増えましたね。
ぼーっと、グループポリシーオブジェクトを眺めているだけでも、飽きることがありません。
(どんなヒマつぶしだよ!)

Windows Server 2008のグループポリシーから、「基本設定」というGPOのカテゴリが新設されました。
昔はログオンスクリプトやログオフスクリプトとして、
bat拡張子のバッチファイルやvbs拡張子のスクリプトファイルなどを作成して、割り当てなどという操作を行っていました。
そのバッチファイルなどで作成しなければならなかった設定をGUIの画面だけで設定できるようにしようというのが
GPOの「基本設定」です。

新しい機能で、便利であることは間違いないのですが、
実際に管理する立場からすれば、「トラブルシューティングはどうやって行うの?」という疑問があります。

そんなことを思いながら、GPOの設定項目に目をやると、基本設定のログ/トレースなんていう機能を見つけました。
そんなわけで、今日は基本設定のログ/トレース機能を使ってみたいと思います。

–基本情報って何?という方のための参考情報–
グループ ポリシーの基本設定による管理範囲の拡大
http://technet.microsoft.com/ja-jp/magazine/2009.01.gpprefs.aspx

基本設定のログ/トレース機能は、GPOの
[コンピューターの構成]-[ポリシー]-[管理用テンプレート]-[システム]-[グループポリシー]-[ログおよびトレース]
という、すっごい奥まで探検すると、たどり着けます。

ご覧のとおり、基本設定の項目ごとに、ログおよびトレースの構成が用意されています。
そのため、実際にトラブルシューティングを行いたい基本設定項目だけログやトレースの設定を有効にしておけば、
膨大なログの中から探す、という大変な作業が少しは軽減できると思います。

そして、設定画面がこちら。

画面左上で、「有効」を選択すると、該当項目のログとトレースの設定が有効になります。
ログについては、「イベントログ」の部分で出力レベルを設定します。
また、トレースについては、「オン」にすれば、
ユーザートレース、コンピュータトレース、計画トレースのいづれかが記録されます。

今回は、ファイルの基本設定で、c:test.txtファイルを削除するという設定を
GPOの中に入れておきました。
実際に、グループポリシーを適用させ、ログを見てみます。

ログは、イベントビューアのGroup Policyのログの中で記録されます。
基本設定の処理が成功すると、イベントID4096で記録されます。

もう一度、GPOを実行します。
すると、今度は存在しないファイルを削除しようとするので、処理は失敗します。
このときのイベントログはこちら。

どちらのイベントも、Group Policy Filesという名前のソースで生成されます。

一方、トレースはGPOで設定したパスにファイルが作られます。
(下の図は実際にファイルを削除する処理を行った様子を表すトレースログ)

このような詳細なトレースログを使えれば、トラブルシュートの強力な武器となるでしょう。

ところで、GPOでトレースの設定を行うとき、注意しなければならないことがあります。
それは、トレースファイルが生成されるデフォルトのパスが実在しない場所をさし示しているという点です。
デフォルトのパスは、%COMMONAPPDATA%….なのですが、このパスは利用できません。

%COMMONAPPDATA%変数は、c:documents and settingsall usersApplication Dataを表すパスで、
Windows VistaやWindows 7などの最近のOSはこのパスを持っていません。
そのため、%COMMONAPPDATA%変数も使われておらず、そのままトレースするように設定すると、
パスが存在せず、ファイル生成に失敗します。

そのため、代わりにc:userspublicなどのパスを利用するとよいでしょう。