前ページの最後で「GPOは(編集すれば)自動的に保存される」と述べたが、どこに保存されているのだろうか。
ローカル・グループ・ポリシー・オブジェクト(LGPO)の場合は、%SystemRoot%\System32\GroupPolicy\に保存されている(GroupPolicyフォルダには隠し属性が付けられているので、エクスプローラ上では隠しファイルを表示するように設定しなければ見ることはできない)。
このようにGPOがファイルとして物理的に保存されたものを、グループ・ポリシー・テンプレート(GPT)と呼ぶ。差し当たり、このGPTがGPOの実体であると考えておいてよいだろう。ここではLGPOを例に取り上げているが、Active Directory上のGPOでもGPTは複製/同期されるため、中身をひととおり確認しておくことは重要だ。
以前すでにLGPOを操作したり、特に管理用テンプレート以外のポリシーを操作したりしたことがある場合は多少差異があるかもしれないが、ほぼ上の画面と同様の構成になっているはずだ。ファイルやフォルダの内容は次のようになっている。
フォルダ/ファイル | 内容 |
---|---|
\Adm | 管理用テンプレート・ファイル。このGPOの編集にグループ・ポリシー・エディタが使用した管理用テンプレート・ファイル(.admファイル)のコピーが置かれている |
\Machine | コンピュータの構成。グループ・ポリシー・エディタの[コンピュータの構成]で設定した内容が保存されている |
\User | ユーザーの構成。グループ・ポリシー・エディタの[ユーザーの構成]で設定した内容が保存されている |
gpt.ini | 設定ファイル。このGPT全体にかかわることが記されている |
グループ・ポリシー・テンプレート・フォルダの内容 グループ・ポリシー・テンプレート・フォルダには、いわばGPOの実体となるファイルが保存されている。LGPOでもActive Directory上のGPOでも構成はほぼ同じである。 |
以下では、それぞれのGPTについて、その内容を詳しく見ていこう。
GPTのGPT.iniファイルには、このGPT全体にかかわることが記述されている。今回の設定例のように[管理用テンプレート]の[壁紙を変更できないようにする]と[詳細な状態メッセージを表示する]だけを設定した場合は、次のようになっている。
※ファイルGPT.iniの例
[General]
gPCFunctionalityVersion=2
gPCUserExtensionNames=[{35378EAC-683F-11D2-A89A-
00C04FBBCFA2}{0F6B957E-509E-11D1-A7CC-0000F87571E3}]
Version=65537
gPCMachineExtensionNames=[{35378EAC-683F-11D2-A89A-
00C04FBBCFA2}{0F6B957D-509E-11D1-A7CC-0000F87571E3}]
ただしGPOの編集状態によっては、以下のうちの一部の項目しか記述されていないこともある。
項目 | 意味 |
---|---|
gPCFunctionalityVersion | このGPOを作成したツールのバージョン。現在は2 |
gPCMachineExtensionNames | コンピュータの構成」でポリシーが設定されているクライアント側拡張(CSE)のリスト |
gPCUserExtensionNames | ユーザーの構成」でポリシーが設定されているCSEのリスト |
Version | このGPOのバージョン |
Options | 「コンピュータの構成」と「ユーザーの構成」の有効/無効を切り替える。以下のいずれかの値を取る 0:デフォルト。すべて有効 1:「ユーザーの構成」が無効 2:「コンピュータの構成」が無効 3:すべて無効 |
GPT.iniファイルの要素 |
gPCMachineExtensionNamesとgPCUserExtensionNamesには、このGPOでポリシーが設定されているクライアント側拡張(CSE)のリストが列挙されている。形式は次のとおりである。
gPCMachineExtensionNames=[{CSEのGUID}{サーバ側拡張のGUID}{サーバ側拡張のGUID}…][(同左)] …
gPCUserExtensionNames=[{CSEのGUID}{サーバ側拡張のGUID}{サーバ側拡張のGUID}…][(同左)] …
コンピュータに対するポリシーの適用時にはgPCMachineExtensionNamesのCSEが、ユーザーに対するポリシーの適用時にはgPCUserExtensionNamesのCSEが、それぞれ実行されることになる。
何らかのCSEが担当する設定のみがうまく適用されないときは、そのCSEがここに正しくエントリされているか確認してみる必要もあるだろう。
Versionに記述されている数値は、GPTに変更を加えるたびに1増えていく。ただし、ユーザーの構成とコンピュータの構成はそれぞれ別々にカウントされる。ユーザーの構成を1つ変更するとユーザーの構成のバージョンが1つ増え、コンピュータの構成を変更するとコンピュータの構成のバージョンが1つ増える。
GPT.iniのVersionには、ユーザーの構成とコンピュータの構成のバージョンが合成された形でバージョン番号が保存されている。Versionに保存されている値はDWORD値(32bit幅の数値)であり、上位WORD(上位16bit)にユーザーの構成のバージョン、下位WORD(下位16bit)にコンピュータの構成のバージョンが保存される。
Version=「[ユーザーの構成のバージョン4桁][コンピュータの構成のバージョン4桁]」という8桁の16進数を、10進数に変換したバージョン番号
多少複雑に感じるかもしれないが、電卓ツール([スタート]メニューの[アクセサリ]−[電卓]で「関数モード」を使用する)で16進数と10進数を切り替えてみれば、簡単に確認することができる。
例えば、先ほどの操作では、[ユーザーの構成]の管理用テンプレートで[壁紙を変更できないようにする]を有効にしたときに、ユーザーの構成のバージョンが1増えた。その後[コンピュータの構成]の管理用テンプレートで[詳細な状態メッセージを表示する]も有効にしたときに、コンピュータの構成のバージョンが1増えた。これによって、Versionの値は00010001(16進数表記)=65537(10進数表記)となる。
もし、さらにユーザーの構成をもう1つ、コンピュータの構成をもう2つ変更すれば、Versionの値はさらに00010002(16進数表記)=65538(10進数表記)増えて、00020003(16進数)=131075(10進数)になる。
GPOが期待どおりに適用されないようなときには、グループ・ポリシー・エディタでGPOを編集したらこのようにバージョン番号が正しく増えているかを確認したり、GPT.ini以外に保存されているバージョン番号と比較したりしてみる、といった確認作業が必要になることもあるだろう。
GPOでポリシーを設定しても、そのGPOのうち、「ユーザーの構成」全体か、「コンピュータの構成」全体、もしくはその両方のポリシーを適用させないようにすることができる。このためには、[グループ ポリシー オブジェクト エディタ]スナップインのツリーの一番上にある[ローカル コンピュータ ポリシー]の[プロパティ]で設定する。
GPT.iniのOptionsではそれぞれの構成で設定したポリシーを適用するかどうかを選択できる。例えば1の場合(前出の表「GPT.iniファイルの要素」のOptionの項参照)、GPOでユーザーの構成がいろいろ設定されていたとしても、グループ・ポリシーの適用時にはそれらは適用されず、コンピュータの構成だけが適用される。
不要なポリシー処理を省略してパフォーマンスを上げたい場合や、テストなどのために一時的にポリシーの適用をやめてみたいときなどに、このオプションを使用するとよいだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.