Active Directory ドメイン サービスとは、システム管理者が組織内のユーザーやリソースを管理するためのサービスです。
Active Directory の管理機能の一つとして、ユーザーやコンピューター、アプリケーションにおけるシステム設定を一元的に管理・配布する仕組みが用意されています。これは「グループ ポリシー」と呼ばれる機能で実現されています。
グループ ポリシーの設定の中に「管理用テンプレート」と呼ばれる設定項目があります。管理用テンプレートの設定は、設定項目の定義ファイルが用意されており、カスタマイズすることも可能です。
今回は、管理用テンプレートの一般的な仕組みについて紹介します。
管理用テンプレートとは
管理用テンプレートとは、OS やサービス、アプリケーションのシステム設定となるレジストリの設定値を配布するためのポリシー項目のことです。管理用テンプレートの配下のポリシー設定は、全てレジストリに設定が反映されます。
管理用テンプレートは、[コンピューターの構成]、[ユーザーの構成] のそれぞれに用意されています。管理用テンプレートにあるポリシーの設定値は、SYSVOL の MACHINE と USER フォルダのそれぞれに、registry.pol というファイルが展開されます。registry.pol には、実際に配布されるレジストリ設定値が定義されています。
管理用テンプレートにてポリシーの項目を設定すると、以下のレジストリにポリシーの設定値が展開されます。
- コンピューターの構成
HKEY_LOCAL_MACHINE¥SOFTWARE¥Policies - ユーザーの構成
HKEY_CURRENT_USER¥SOFTWARE¥Policies
管理用テンプレートで設定できるポリシーの中には、ローカルのレジストリ設定と重複する設定もあります。通常の動作としては、管理用テンプレートによって配布されたレジストリ設定は、ローカルのレジストリ設定よりも優先され、管理用テンプレートの設定値が反映された動作となります。
ADMX/ADML
管理用テンプレートは、ポリシーの定義ファイルとして ADMX/ADML ファイルが用意されています。
- ADMX ファイル
ポリシーで設定できるレジストリ値について定義できるファイルです - ADML ファイル
ポリシーの言語表記について定義できるファイルです
※ Window Server 2003 までは、ADMX ではなく ADM ファイル(テキスト形式)として定義されています。
ADMX ファイルは C:\Windows\PolicyDefinitions のフォルダの配下に配置されています。ADML ファイルは言語ごとに用意されており、PolicyDefinitions にある言語ごとのフォルダの配下に配置されます。
各設定項目ごとに ADMX の定義ファイルが用意されており、ADMX に対応した ADML ファイルが存在します。例えば、PolicyDefinitions フォルダには ActiveXInstallService.admx という定義ファイルがあり、ja-JP フォルダの配下には、日本語用の言語ファイルとして ActiveXInstallService.adml という同じファイル名の adml ファイルがあります。
ADMX ファイルと ADML ファイルのデータの記述形式は XML となります。
ADMX ファイルでは、ポリシーごとに設定対象となるレジストリ キーと値、またポリシーの設定値に対応したレジストリの設定値などの定義が行われています。[グループ ポリシー管理エディター] にて、[管理用テンプレート] にある対象のポリシーを定義した場合に、どのレジストリが設定されるのかが定義されています。
<parentCategory ref=”AppCompat” />
<supportedOn ref=”windows:SUPPORTED_WindowsVista” />
<enabledValue>
<decimal value=”1” />
</enabledValue>
<disabledValue>
<decimal value=”0” />
</disabledValue>
</policy>
また、ADMX ファイルに対応した言語ファイルの ADML ファイルには、[グループ ポリシー管理エディター] に表示されるポリシーの設定画面の表記が定義されています。ADMX ファイルに定義されている displayName 属性や explainText 属性は、ポリシー名やポリシーの説明に関する日本語表記を参照する string タグの ID が指定されています。ID 属性が対応する string タグの値が、ポリシーの編集画面に表示されます。
<string id=”AppCompatTurnOffProgramCompatibilityAssistant“>プログラム互換性アシスタントを終了する</string>
OS バージョンの違い
OS ごとの管理用テンプレートの差分
ADMX で定義されるポリシーは OS により異なります。OS のバージョン アップにより、追加、更新された機能などがあるため、[管理用テンプレート] で編集できるポリシーも OS のバージョンにより異なります。
例えば、Windows Server 2008 R2 のドメイン コントローラーと、Windows Server 2019 のドメイン コントローラーのそれぞれで、[管理用テンプレート] を表示した場合、以下のように設定できるポリシーに差分があります。
■ Windows Server 2008 R2
■ Windows Server 2019
[グループ ポリシー管理エディター] の画面からもわかるように、[Windows コンポーネント] の配下で定義できる各項目に差分があります。各項目に含まれているポリシーにも、OS バージョンごとに差分があります。
[管理用テンプレート:ローカル コンピューターから取得したポリシー定義(ADMX)ファイルです。] と表記されているように、ドメイン コントローラーで [グループ ポリシー管理エディター] を起動すると、操作をしているドメイン コントローラーのローカルにある PolicyDefinitions フォルダを参照して、ADMX ファイルを読み取ってエディター上に表示させます。そのため、同じドメイン環境でも、操作するドメイン コントローラーの OS バージョンが異なれば、表示される管理用テンプレートのポリシー項目は異なります。
バージョンごとに分けて管理
管理用テンプレートのポリシーが利用できるかどうかは、適用対象となる端末の OS のバージョンに依存します。例えば、Windows Server 2019 に追加された管理用テンプレートのオプションを追加しても、Windows 7 のような古い OS の端末では利用できない可能性もあります。
そのため、PolicyDefinitions に含まれる定義ファイルが対応している OS のバージョンと、配布する対象の端末の OS バージョンを意識して管理することがおすすめです。古い OS バージョンの管理ツールでのみ設定可能なポリシーは、古い OS バージョンを実行するドメイン コントローラー上で GPO を設定します。
利用可能な管理用テンプレートのポリシーは適用対象の端末の OS バージョンごとに異なるため、適用対象の OS ごとに GPO を分けて管理することが望ましいです。
PolicyDefinitions の定義ファイルの更新
ドメインで管理している端末の OS のバージョン アップに合わせて、PolicyDefinitions に含まれる定義ファイルを更新して、配布する GPO も新しい OS に合わせて定義することができます。
OS のバージョンごとの ADMX、ADML ファイルは、マイクロソフトのサイトから入手することができます。
タイトル:Windows でグループ ポリシー管理用テンプレート用のセントラル ストアを作成および管理する方法
https://learn.microsoft.com/ja-JP/troubleshoot/windows-client/group-policy/create-and-manage-central-store
ドメイン コントローラーのローカルに展開されている PolicyDefinitions 内の定義ファイルを更新する手順は以下の通りです。
1) 上記の URL より、対象のバージョンの管理用テンプレートをダウンロードします。
2) 対象のドメイン コントローラーに管理者権限をもつユーザーでログオンします。
3) ダウンロードした msi ファイルを、任意のフォルダにコピーします。
4) msi ファイルを実行して、展開します。既定の設定で処理を進めると、以下のパスに展開されます。
“C:\Program Files (x86)\Microsoft Group Policy\Windows xx and Windows Server xxxx (xxxx)\PolicyDefinitions”
5) 以下のフォルダにある既存の PolicyDefinitions フォルダを、任意の場所にコピーしてバックアップしておきます。
6) 管理者権限でコマンド プロンプトを開きます。
7) 以下のコマンドを実行して、ADMX ファイルと英語用と日本語用の ADML ファイルをコピーします。
robocopy <コピー元フォルダ> <コピー先フォルダ> <コピー対象ファイル名> /B
実行例:
robocopy “C:\Program Files (x86)\Microsoft Group Policy\Windows xx and Windows Server xxxx (xxxx)\PolicyDefinitions” %systemroot%\PolicyDefinitions\ *.admx /B
robocopy “C:\Program Files (x86)\Microsoft Group Policy\Windows xx and Windows Server xxxx (xxxx)\PolicyDefinitions\ja-jp” %systemroot%\PolicyDefinitions\ja-JP\ *.adml /B
robocopy “C:\Program Files (x86)\Microsoft Group Policy\Windows xx and Windows Server xxxx (xxxx)\PolicyDefinitions\en-US” %systemroot%\PolicyDefinitions\en-US\ *.adml /B
ADMX や ADLM を更新しても、registry.pol のファイルに対して、データの変更や削除は行われないため、更新による影響は想定されません。
セントラル ストア
セントラル ストアとは、PolicyDefinitions フォルダを SYSVOL 上に展開して、ドメイン コントローラー間で共有の定義ファイルを利用する構成のことです。
既定の動作では、各ドメイン コントローラーのローカルで管理された PolicyDefinitions を読み込みます。もし、ドメイン内にある全てのドメイン コントローラーで PolicyDefinitions で管理している定義ファイルのバージョンを更新する場合、1台ごとに更新の作業を行う必要があります。
ドメイン内の全てのドメイン コントローラーで共通の PolicyDefinitions を利用したい場合は、「セントラル ストア」の機能が有効です。ドメイン全体で利用する定義ファイルを含まれた PolicyDefinitions フォルダを、SYSVOL に展開すればセントラル ストアを構成することができます。
セントラル ストアの設定方法は以下の通りです。
1) ドメイン全体で利用する PolicyDefinitions を用意します。
2) 任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。
3) エクスプローラーを開き、SYSVOL 共有のフォルダの Policies フォルダ配下にコピーします。
ドメイン内でセントラル ストアが構成されていたら、ローカルの PolicyDefinitions よりも優先されます。PolicyDefinitions を SYSVOL 上にコピーした後、ドメイン コントローラー上で [グループ ポリシー管理エディター] を開くと、”セントラル ストアから取得したポリシー定義 (ADMX) ファイルです” と表示されます。
Tattooing
Tattooing(タトゥーイング)とは、管理用テンプレートで配布したレジストリ設定が残ることです。
レジストリの以下の Policies キーの配下に存在するキーや値は、基本的には、管理用テンプレートのポリシーで設定されたものとなります。
- HKEY_LOCAL_MACHINE¥SOFTWARE¥Policies
- HKEY_CURRENT_USER¥SOFTWARE¥Policies
GPO のリンクを削除する、ポリシーの設定を未構成にする等で、管理用テンプレートのポリシーが適用されなくなった場合、そのポリシーで設定されたキーや値は削除される動作となります。
しかしながら、一部のポリシーでは、ポリシーが適用されなくなった後も、そのポリシーで設定されたキーと値がそのまま残り、ポリシー適用前の状況に戻らないものもあります。このような動作を「Tattooing」と呼びます。
「Tattooing」するポリシーは、[グループ ポリシー管理エディター] にて、ポリシーのアイコンの右下に下向きの黒矢印が表示されます。