【Active Directory】GPO管理テンプレートをセントラルストアで管理

グループポリシーには、最初から多くの管理用テンプレートが組み込まれています。管理用テンプレートは、グループポリシーで設定できる項目(どのレジストリをどう設定するか)と、その表示名や説明を定義したファイルです。

Chrome などのテンプレートを追加するとき、ドメインコントローラのローカルフォルダに置くと、そのコンピューターのエディタでしか使えません。この記事では、セントラルストアを作って管理用テンプレートを SYSVOL に置き、ドメインコントローラ間で複製して共有する手順を確認します。

この記事でわかること
  1. 管理用テンプレート(ADMX/ADML)の保存場所と役割
  2. PolicyDefinitions フォルダを SYSVOL にコピーしてセントラルストアを作る
  3. グループポリシー管理エディタでセントラルストアの使用を確認する
  4. もう1台のドメインコントローラに複製されたことを確認する

管理用テンプレートの保存場所

管理用テンプレートは、言語に依存しない ADMX ファイルと、言語ごとの ADML ファイルに分かれています。ADMX は設定項目とレジストリの対応を、ADML はエディタに表示する名前や説明文を定義します。

ファイル中身置き場所(ローカル)
ADMX(.admx)設定項目、カテゴリ、対応するレジストリキーと値C:\Windows\PolicyDefinitions
ADML(.adml)表示名や説明文などの言語ごとの文字列C:\Windows\PolicyDefinitions\ja-JP など言語名のフォルダ

セントラルストアがないとき、グループポリシー管理エディタはローカルの C:\Windows\PolicyDefinitions にある ADMX を読み込みます。エディタの「管理用テンプレート」には、そのことが表示されています。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

グループポリシー管理エディタ(AD-1)画面イメージ
Default Domain Policy [AD-1.HIROTANOBLOG.LOCAL] ポリシー▾ コンピューターの構成  ▾ ポリシー    › ソフトウェアの設定    › Windows の設定1    ▾ 管理用テンプレート: ローカル コンピューターから取得したポリシー定義 (ADMX) ファイルです。      › Windows コンポーネント      › コントロール パネル        サーバー      › システム      › タスク バーと [スタート] メニュー      › ネットワーク        プリンター        すべての設定
図1 既定の管理用テンプレート(実際の画面ではなく、表示内容のポイントを示したイメージです)
No.表示意味
1ローカル コンピューターから取得したポリシー定義 (ADMX) ファイルこのエディタは、エディタを動かしているコンピューターの C:\Windows\PolicyDefinitions を読み込んでいます

エクスプローラーで C:\Windows\PolicyDefinitions を開くと、ADMX ファイルと、言語ごとの ADML を入れたフォルダ(en-US、ja-JP)があります。

エクスプローラー(AD-1)画面イメージ
PC ›› ローカル ディスク (C:) ›› Windows ›› PolicyDefinitions
名前更新日時種類
1en-US2018/09/16 1:50ファイル フォルダー
ja-JP2022/07/31 14:36ファイル フォルダー
2ActiveXInstallService.admx2018/09/15 16:13ADMX ファイル
AddRemovePrograms.admx2018/09/15 16:13ADMX ファイル
AllowBuildPreview.admx2018/09/15 16:13ADMX ファイル
AppCompat.admx2018/09/15 16:13ADMX ファイル
AppPrivacy.admx2018/09/15 16:12ADMX ファイル
appv.admx2018/09/16 1:53ADMX ファイル
⋮ (中略)
図2 C:\Windows\PolicyDefinitions の中身(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1en-US、ja-JP言語ごとの ADML を入れるフォルダです
2○○.admx設定項目を定義した ADMX ファイルです
ADMX は編集のためのファイル

GPO で有効にした設定そのものは、ADMX ではなく GPO のフォルダ(SYSVOL の Policies\{GUID})に保存され、ドメインコントローラ間で複製されます。ADMX と ADML は、管理者がエディタで設定項目を表示・編集するときに使うファイルです。クライアントに ADMX を配る必要はありません。

ローカルに追加したテンプレートの問題

検証環境は、Windows Server 2019 で構成したドメイン hirotanoblog.local で、ドメインコントローラは AD-1 と AD-2 の2台です。AD-1 の C:\Windows\PolicyDefinitions に、Chrome の管理用テンプレートを追加しています。追加の手順は、次の記事で紹介しています。

>> 参考記事:【Active Directory】Chromeをグループポリシーで管理(管理用テンプレートの追加)

AD-1 のエディタには「Google」が増えていますが、読み込み元は「ローカル コンピューターから取得したポリシー定義」のままです。

グループポリシー管理エディタ(AD-1)画面イメージ
Default Domain Policy [AD-1.HIROTANOBLOG.LOCAL] ポリシー▾ コンピューターの構成  ▾ ポリシー    › ソフトウェアの設定    › Windows の設定1    ▾ 管理用テンプレート: ローカル コンピューターから取得したポリシー定義 (ADMX) ファイルです。2      › Google      › Windows コンポーネント      › コントロール パネル        サーバー      › システム
図3 Chrome のテンプレートを追加したあと(実際の画面ではなく、表示内容のポイントを示したイメージです)
No.表示意味
1ローカル コンピューターから取得した…まだ AD-1 のローカルフォルダを読み込んでいます
2Google追加した Chrome のテンプレートのカテゴリです

C:\Windows\PolicyDefinitions は各コンピューターのローカルフォルダで、共有もされず、ドメインコントローラ間で複製もされません。このため、AD-2 や管理用の PC でエディタを開くと、Chrome の設定項目は表示されません。管理する場所ごとに ADMX を置いて回る必要があり、バージョンもそろえにくくなります。

AD-1AD-2 SYSVOL\sysvol\…\Policies SYSVOL\sysvol\…\Policies C:\Windows\PolicyDefinitions C:\Windows\PolicyDefinitions 標準のテンプレートのみ DFSR で複製 複製されない PolicyDefinitions PolicyDefinitions + Chrome の ADMX セントラルストアローカル セントラルストアがあると、エディタはローカルではなくセントラルストアを読み込む
図4 ローカルの PolicyDefinitions と、SYSVOL に置いたセントラルストアの違い

セントラルストアを作る

セントラルストアは、SYSVOL の Policies フォルダの下に作る PolicyDefinitions フォルダです。グループポリシーのツールは、このフォルダがあれば既定でここを読み込みます。SYSVOL の中身はドメイン内のすべてのドメインコントローラに複製されるので、テンプレートを1か所に置けば全体で同じものを使えます。

PolicyDefinitions を SYSVOL にコピーする

AD-1 で、C:\Windows\PolicyDefinitions フォルダごと、SYSVOL の Policies フォルダにコピーします。ドメインコントローラの SYSVOL は、インストール先を変えていなければ C:\Windows\SYSVOL にあります。

項目パス(hirotanoblog.local の場合)
コピー元C:\Windows\PolicyDefinitions
コピー先(ローカルパス)C:\Windows\SYSVOL\sysvol\hirotanoblog.local\Policies
コピー先(共有パス)\\hirotanoblog.local\SYSVOL\hirotanoblog.local\Policies
できあがるセントラルストア…\Policies\PolicyDefinitions
コピー元コピー先 C:\Windows C:\Windows\SYSVOL\sysvol\ hirotanoblog.local\Policies PolicyDefinitions PolicyDefinitions コピー PerformancePLAPrefetchPrintDialog⋮ {1E608DF3-…}{6AC1786C-…}{31B2F340-…}{B048D3E9-…}
図5 PolicyDefinitions フォルダを SYSVOL の Policies にコピーする

コピー先の Policies には、もともと GPO が GUID の名前のフォルダで保存されています。たとえば {31B2F340-016D-11D2-945F-00C04FB984F9} は Default Domain Policy、{6AC1786C-016F-11D2-945F-00C04fB984F9} は Default Domain Controllers Policy です。ここに PolicyDefinitions フォルダが加わります。

本番でセントラルストアを作るとき
  • マイクロソフトは、コピー元として最新の Windows 10/11 クライアントの C:\Windows\PolicyDefinitions、または別途ダウンロードした管理用テンプレートのフォルダを挙げています。
  • セントラルストアができると、エディタはローカルの PolicyDefinitions ではなくセントラルストアだけを読み込みます。Chrome のような追加テンプレートや、使う言語の ADML フォルダ(ja-JP など)も忘れずにセントラルストアに入れます。
  • あとで新しいテンプレートを追加したときも、ローカルに置いただけでは SYSVOL は更新されません。セントラルストアに手動でコピーします。

動作確認

エディタの読み込み元を確認する

AD-1 でグループポリシー管理エディタを開き直すと、「セントラル ストアから取得したポリシー定義」に変わります。PolicyDefinitions フォルダをコピーするだけで、特別な設定をしなくてもセントラルストアとして認識されます。

グループポリシー管理エディタ(AD-1)画面イメージ
Default Domain Policy [AD-1.HIROTANOBLOG.LOCAL] ポリシー▾ コンピューターの構成  ▾ ポリシー    › ソフトウェアの設定    › Windows の設定1    ▾ 管理用テンプレート: セントラル ストアから取得したポリシー定義 (ADMX) ファイルです。      › Google      › Windows コンポーネント      › コントロール パネル        サーバー      › システム      › タスク バーと [スタート] メニュー      › ネットワーク        プリンター        すべての設定
図6 セントラルストアを読み込んだエディタ(実際の画面ではなく、表示内容のポイントを示したイメージです)
No.表示意味
1セントラル ストアから取得したポリシー定義 (ADMX) ファイルSYSVOL の PolicyDefinitions を読み込んでいます。コピーに含めた Chrome のテンプレート(Google)も表示されています

AD-2 に複製されたことを確認する

AD-2 で SYSVOL の Policies フォルダを開くと、PolicyDefinitions フォルダが複製されています。同じ画面の PowerShell で hostname を実行し、AD-2 で見ていることを確かめています。

エクスプローラー(AD-2)画面イメージ
SYSVOL ›› sysvol ›› hirotanoblog.local ›› Policies
名前更新日時種類
{1E608DF3-C405-42F0-9AC0-2A7C49EB45…2022/09/20 19:31ファイル フォルダー
{6AC1786C-016F-11D2-945F-00C04fB984F9}2022/09/18 11:57ファイル フォルダー
{31B2F340-016D-11D2-945F-00C04FB984F9}2022/09/20 19:34ファイル フォルダー
{B048D3E9-5B1F-46C2-AAA6-13ABC7838…2022/09/20 19:31ファイル フォルダー
1PolicyDefinitions2022/09/20 23:37ファイル フォルダー
管理者: Windows PowerShell2PS C:\> hostnameAD-2
図7 AD-2 の SYSVOL に複製された PolicyDefinitions(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1PolicyDefinitionsAD-1 でコピーしたセントラルストアが、SYSVOL の複製で AD-2 にも届いています
2hostname → AD-2このフォルダを AD-2 上で見ていることを示しています

AD-2 で開いたグループポリシー管理エディタでも、「セントラル ストアから取得したポリシー定義」と表示され、Google のカテゴリも見えます。

グループポリシー管理エディタ(AD-2 で起動)画面イメージ
1Default Domain Policy [AD-1.HIROTANOBLOG.LOCAL] ポリシー▾ コンピューターの構成  ▾ ポリシー    › ソフトウェアの設定    › Windows の設定2    ▾ 管理用テンプレート: セントラル ストアから取得したポリシー定義 (ADMX) ファイルです。      › Google      › Windows コンポーネント      › コントロール パネル      ⋮PS C:\> hostnameAD-2
図8 AD-2 で起動したエディタ(実際の画面ではなく、表示内容のポイントを示したイメージです)
No.表示意味
1[AD-1.HIROTANOBLOG.LOCAL]エディタが接続しているドメインコントローラです。AD-2 で起動しても、編集先は AD-1 になっています
2セントラル ストアから取得した…AD-2 のローカルフォルダではなく、セントラルストアのテンプレートが使われています
エディタが接続するドメインコントローラ

グループポリシーの編集は、既定では PDC エミュレータの役割を持つドメインコントローラに対して行われます。このため、AD-2 で起動してもタイトルは AD-1 になっています。AD-2 自身の SYSVOL に複製されたかどうかは、図7 のように AD-2 のフォルダを直接見るのが確実です。

PDC エミュレータがどのドメインコントローラかは、Get-ADDomain | Select-Object PDCEmulator で確認できます。グループポリシーの管理コンソールでは、ドメインを右クリックして「ドメイン コントローラーの変更」から接続先を変えられます。

うまくいかないとき

状態よくある原因確認すること
エディタの表示が「ローカル コンピューターから取得した…」のままフォルダの名前や場所が違う…\sysvol\<ドメイン名>\Policies\PolicyDefinitions になっているか(Policies の直下か、フォルダ名に余分な文字がないか)
ローカルにあった設定項目が表示されなくなったセントラルストアにその ADMX が入っていないセントラルストアができるとローカルは読み込まれません。追加テンプレートの ADMX と ADML をセントラルストアにもコピーする
表示名や説明が読み込めないというエラーになる使っている言語の ADML フォルダがない、または ADMX と版が合っていないja-JP などのフォルダと、ADMX と同じ版の ADML がそろっているか
他のドメインコントローラに PolicyDefinitions がないSYSVOL の複製が終わっていない、または止まっているしばらく待ってから再確認する。DFS Replication のイベントログにエラーが出ていないか

まとめ

項目ローカルセントラルストア
場所C:\Windows\PolicyDefinitionsC:\Windows\SYSVOL\sysvol\<ドメイン名>\Policies\PolicyDefinitions
使えるエディタそのコンピューターのエディタだけドメインのどこでエディタを開いても同じテンプレート
複製されないSYSVOL の複製ですべてのドメインコントローラに届く
エディタの表示ローカル コンピューターから取得した…セントラル ストアから取得した…
作り方―PolicyDefinitions フォルダを Policies の下にコピーするだけ

テンプレートを追加するときは、セントラルストアに置くことで、ドメインコントローラや管理用 PC ごとの差をなくせます。

コメント