Windows の管理

Windows Vista の新しいグループ ポリシー テンプレートを掘り下げる

Darren Mar-Elia

 

概要:

  • ADMX の内部
  • ADMX ファイルを編集する
  • ADM ファイルと ADMX ファイルの相違点
  • 中央ストアを作成する

Windows Vista より前のバージョンでは、グループ ポリシー内で設定できるレジストリ値は ADM ファイルによって管理されていました。この ADM ファイルの構文は、不可解で独特なものでした。マイクロソフトにより標準の ADM ファイルと共に出荷されたもの以外に、追加のレジストリ値を制御する必要がある場合は、この

構文を習得し、カスタム ADM ファイルを作成する必要がありました。さらに、これらの ADM ファイルは各グループ ポリシー オブジェクト (GPO) と共に Active Directory® 環境に格納され、これらの各 GPO は、付属の ADM ファイルと共にドメイン内のすべてのドメイン コントローラにレプリケートされていました。

Windows Vista™ のリリースに伴い、マイクロソフトはグループ ポリシー ベースのレジストリ テンプレートの領域に大きな一歩を踏み出します。Windows Vista は、現在では ADMX と呼ばれている ADM ファイルの書式と、これらのファイルの格納方法に大きな変化をもたらします。この記事では、新しい ADMX 書式に注目し、これらのファイルと ADM との相違点について説明します。さらに、これらのファイルのストレージが Windows Vista 環境でどのように取り扱われるかについても見ていきます。

ADMX の相違点

新しい ADMX ファイル書式と、Windows NT® 4.0 以降に使用されてきた古い ADM 書式の最も大きな違いは、ADMX ではレジストリ ポリシー設定の記述に XML 標準を採用していることです。これは、いくつかの理由により望ましいことです。第 1 の理由は、XML の編集には ADM 構文よりも多くのツールを利用できることです。第 2 の理由は、XML はスキーマ化されているので、的確な ADMX ファイルを作成する上で、どこにどのタグを配置すればいいかを判断するためのツールを簡単に構築できるようになることです。スキーマ化は、ADMX 書式などの XML の任意のアプリケーションに対し、使用可能な要素および属性についてと、これらの編成方法について記述したスキーマが存在することを意味します。この記事ではその例を後で紹介します。

ADMX と ADM の別の主な相違点として、メインの ADMX ファイルの文字列セクションが言語固有の ADML ファイルに分割されていることが挙げられます。ADM ファイルについての知識があれば、各ファイルの最後に "[strings]" タグで区切られたセクションがあり、このセクションでは、グループ ポリシー エディタまたは管理用テンプレートを使用したときに表示されるテキストの文字列に値を割り当てることができることをご存じだと思います。たとえば、特定のポリシーの [Explain] タブをクリックしたときに表示されるテキストは、この文字列セクション内に格納されていました。これにまつわる問題は、文字列が ADM ファイル内で格納されていたので、別の言語を使用している Windows® システムでその ADM を使用する場合には、その言語の文字列セクションを含む新しい ADM ファイルを作成する必要があったことです。

また、たとえばフランス語版の Windows を使用しているユーザーが、英語の ADM を使用している既存の GPO を編集する必要があるときには、さらに作業が複雑になっていました。グループ ポリシー エディタではフランス人の管理者は英語しか表示できませんでした。Windows Vista では、[strings] セクションを XML ベースの ADM 言語 (または ADML) ファイルに分割することで、この問題を回避しています。ADML ファイルは、サポートされているすべての言語で提供できます。新しい言語をサポートする場合は、ポリシーを格納するメインの ADMX ファイルには手を加えずに、ADML ファイルを簡単に変更するだけで済みます。さらに重要なこととして、このフランス人管理者が自分の Windows Vista ワークステーションで GPO を編集すると、グループ ポリシー エディタではフランス語版の Windows が使用されていることを検出し、その GPO に対してフランス語の ADML ファイルを自動的に読み込みます。

c:\windows\policydefinitions のフォルダを開くと、Windows Vista のインストールに付属している ADMX および ADML ファイルをすべて表示できます (図 1 参照)。

図 1 Windows Vista の ADMX ファイル

図 1** Windows Vista の ADMX ファイル **(画像を拡大するには、ここをクリックします)

図 1 に示すファイルの上部には、en-us というフォルダがあることに注目してください。これは言語特有のフォルダで、この PolicyDefinitions フォルダ (ここでは英語 (米国)) に表示される ADMX ファイル用の ADML ファイルを含んでいます。各 ADMX には 1 つの ADML ファイルが存在します。このドキュメントの執筆時点では、Windows Vista には既定により 132 の ADMX/ADML ファイルが含まれています。これは、Windows Vista とそれ以前のバージョンのもう 1 つの大きな違いです。Windows XP により作成された GPO には、通常 5 つの ADM ファイルが含まれていました。そのうち一番大きなものは System.adm で、これにはポリシー制御下のほとんどの Windows コンポーネント用のポリシー アイテムが格納されていました。Windows Vista では、ADMX ファイルは機能ごとに分割されているので、はるかに多くの ADMX ファイルが存在します。各 ADMX は通常 1 つの Windows コンポーネント (コントロール パネル、DNS クライアント、Windows エクスプローラなど) に対応しています。

ADMX の内部

この ADMX が XML で作成されているということは、前に説明したように、飛躍的な改善です。ただし、多くの管理者は XML の作成方法に関する知識を持っておらず、ポリシー拡張の作成に ADMX が使用するスキーマについても理解していません。カスタム ADMX を作成するためのチュートリアルはこの記事の対象範囲を超えていますが、ADMX がどのように作成されるかについて見てみましょう。

ADMX または ADML ファイルは任意のテキスト エディタで開くことができます。メモ帳を使用することもできますが、エディタが XML 構文を理解していない限り、メモ帳の使用はあまり便利ではありません。私は Visual Studio® を使用しています。その IntelliSense® 機能が特定の要素の作成に役立つためです。図 2 は、Windows Vista に付属している 1 つの ADMX の最初の数行を示しています。

Figure 2 ADMX ファイル内の一部の XML

<?xml version="1.0" encoding="utf-8"?>
<policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="0.9" schemaVersion="0.9"
  xmlns="https://www.microsoft.com/GroupPolicy/PolicyDefinitions">
  <policyNamespaces>
    <target prefix="AxInstSv" namespace="Microsoft.Policies.ActiveXInstallService" />
    <using prefix="windows" namespace="Microsoft.Policies.Windows" />
  </policyNamespaces>

XML に関する知識がなければこれは不可解に見えるかもしれませんが、これらの XML 要素の多くはどの ADMX ファイルにも含まれているものです。たとえば、policyNamespaces 要素はすべての ADMX ファイルの中でこの ADMX ファイルを一意に識別します。

以前のバージョンの Windows でカスタム ADM ファイルを作成したことがある場合には、Category、Policy、ListBox、ActionList などの一連のタグを使用して、グループ ポリシー エディタに表示されるポリシー設定を定義されたことと思います。これらのタグの多くは変更されていないか、ADMX 書式で若干変更されているだけにすぎませんが、これらは XML として表現されているのでかなり異なっているように見えます。たとえば、私はグループ ポリシーのトラブルシューティング用に Windows 内でさまざまな種類のログを有効にしたカスタム ADM ファイルを作成したことがあります。そのカスタム ADM の一部を図 3 に示します。このファイルを新しい ADMX 書式に移植したものを、図 4 に示します。

Figure 4 ADMX ファイルに変換された ADM ファイル

<policy name="Folder Redirection Logging" class="Machine" displayName="$(string.FolderRedirLogging)" explainText="$(string.FolderRedirLogging_Help)" key="Software\Microsoft\Windows NT\CurrentVersion\Diagnostics" valueName="FDeployDebugLevel">
      <parentCategory ref="PolicyLogging" />
      <supportedOn ref="windows:SUPPORTED_Win2K"/>
      <enabledValue>
        <decimal value="15"/>
      </enabledValue>
      <disabledValue>
        <decimal value="0" />
      </disabledValue>
    </policy>

Figure 3 カスタム ADM ファイル

CLASS MACHINE
  CATEGORY !!System
    CATEGORY !!GroupPolicy
    CATEGORY !!Logging
POLICY !!FolderRedir
EXPLAIN !!FolderRedir_HELP
KEYNAME "Software\Microsoft\Windows NT\CurrentVersion\Diagnostics"
VALUENAME "FDeployDebugLevel"
VALUEON NUMERIC 15
VALUEOFF NUMERIC 0
END POLICY ;FolderRedir
      END CATEGORY ;Logging
   END CATEGORY ;GroupPolicy
 END CATEGORY ;SYSTEM

多くの点において、この ADMX スニペットはそれに対応する ADM と比較して簡潔なため、簡単に理解できます。ポリシー要素は、このポリシーの機能 (フォルダのリダイレクトのログ記録) を指定します。先頭に $(string. が付いた属性は、対応する ADML 文字列要素の参照です。key および valuename 属性は、その名前から明らかなように、それぞれレジストリ キーおよびこのポリシーが影響を及ぼす値を指定します。parentCategory 要素は、このポリシーがグループ ポリシー エディタの管理テンプレート階層のどこに表示されるかを制御します。supportedOn 要素は、どのオペレーティング システムのバージョンがこのポリシーに従うかを示し、最後に、enabledvalue および disabledvalue 要素は、このポリシーが有効または無効に設定されたときにレジストリに挿入される値を指定します。

これはとても単純なオン/オフ ポリシーです。ADM 構文と同じように、グループ ポリシー エディタではさらに複雑な UI 要素を作成することもできます。ADMX でそれを行うと、構文はもう少し複雑になり、UI 要素のテキスト ラベルを含む ADML ファイルの部分を参照しているプレゼンテーション属性を含むようになります。ただし、ADMX 構文がそれ以上に複雑になることはありません。1 つ念頭に置いておくべきことは、一部のタグ名が ADM と ADMX の間で変更されていることです。たとえば ADM 用語では、"edittext" および "listbox" というタグがありました。ADMX では、これらのタグは ADMX ファイル内でそれぞれ "text" および "list" と呼ばれています。これらの要素には、対応するエントリが ADML ファイル内にあり、そのファイルの中で、これらの要素と共に表示されるテキストが指定されます。

ご存じかもしれませんが、管理者はカスタム (レガシー) ADM ファイルを Windows Vista Group のグループ ポリシー オブジェクト エディタに読み込むことができます。マイクロソフトではカスタム ADM ファイルを ADMX 構文に変換するためのユーティリティを提供する予定があるのかという質問を受けることがよくあります。実のところ、マイクロソフトは FullArmor Corp. と提携し、ADMX Migrator という無料のツールをリリースしました。このツールは 2 つの処理を行います。まず、古いカスタム ADM ファイルを ADMX 書式に変換します (このツールを使用してカスタム gpolog.adm を変換した例については、図 5 を参照してください)。

図 5 ADMX Migrator

図 5** ADMX Migrator **(画像を拡大するには、ここをクリックします)

第 2 に、このツールは新しい ADMX ファイルを最初から作成するための ADMX エディタとして機能します。このツールは go.microsoft.com/fwlink/?LinkID=77409 (英語) からダウンロードできます。

ADMX のストレージ

ここで触れておくべきもう 1 つの変更に、使用される ADMX および ADML ファイルの格納方法があります。Windows Vista より前のバージョンの Windows では、新しい GPO を編集すると、ADM ファイルが編集タスクを実行したローカルのワークステーションから、Active Directory ドメイン内のドメイン コントローラの GPO の SYSVOL 部分に自動的にコピーされました。これらの ADM はその後、作成された GPO ごとに、ドメイン内の各 DC にレプリケートされました。これにより、特に数十または数百の GPO を扱うような大規模な環境では、多くのネットワーク帯域幅とディスク領域が無駄になっていました。Windows Vista では、このプロセスが大きく方向転換されています。既定では、Windows Vista ワークステーションで Active Directory ベースの GPO を作成すると、グループ ポリシー エディタに表示される管理用テンプレート ポリシーが、GPO を編集しているコンピュータの c:\windows\policydefinitions フォルダから読み込まれます。

ADMX および ADML ファイルは SYSVOL にはコピーされません。これらはローカルでの参照用です。これにより、ADM からグループ ポリシー環境にかかるストレージとネットワークの負担が取り除かれます。ただし、それだけではありません。Windows Vista では、管理用テンプレートのリポジトリとして、中央ストアをサポートしています。これにより、GPO の編集を誰が行うかにかかわらず、編集に使用する ADMX ファイルが効果的に制御されます。制御は、公式の ADMX および ADML ファイル (および作成したカスタム ファイル) すべてをネットワーク上の場所にコピーすることで行います。それにより、その後 Windows Vista ワークステーションで編集するグループ ポリシーはすべて、個別のローカル ファイルではなく、ネットワークベースのバージョンを参照するようになります。中央ストアの設定は、1 つのドメインあたり 1 回だけ行う簡単なタスクです。「中央ストアを作成する」サイトバーの手順に従ってください。

まとめ

Windows Vista の新しい ADMX 書式は、以前の OS バージョンで使用されていた ADM ファイルより飛躍的に改善されています。XML の使用により、これらのファイルの編集や検索のフレームワークが明確になっています。言語固有の文字列を個別のファイルに移動することで、複数言語のグループ ポリシーの編集が容易になり、中央ストアによってすべての GPO を ADM ファイルのコピーを使用して格納し更新する必要性が取り除かれています。これらすべての理由により、ADMX について学ぶことは理にかなっています。

中央ストアを作成する

中央ストアの作成は、比較的簡単です。Active Directory ドメイン内に中央ストアを作成するには、次の手順に従います。

手順 1: エクスプローラを開き、環境内の PDC エミュレータ DC にある SYSVOL 共有にアクセスします (任意の DC を使用できますが、通常、グループ ポリシーの変更に的を絞っているのは PDC ロールの所有者です)。

手順 2: SYSVOL の下の Policies フォルダにアクセスし、PolicyDefinitions という新しいフォルダを作成します。

手順 3: Windows Vista ワークステーションの C:\windows\policydefinitions フォルダの内容を、新しい PolicyDefinitions フォルダにコピーします。このとき、各言語に依存している ADML フォルダ (英語 (米国) のコンピュータの en-us など) も含めます。

ADMX および ADML ファイルを中央ストア フォルダにコピーすると、Windows Vista のグループ ポリシー オブジェクト エディタでは、ローカルに格納されているファイルを無視して、中央ストアにあるファイルを参照し始めます。

Darren Mar-Eliaは、Microsoft グループ ポリシー MVP で、人気の高いグループ ポリシー サイト www.gpoguy.com の作成者であり、『Microsoft Windows Group Policy Guide』(英語) (Microsoft Press、2005) の共同執筆者です。彼は、SDM Software, Inc. の CTO 兼創立者でもあります。彼の連絡先は Darren@gpoguy.com(英語) です。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.