グループ・ポリシーは,Active Directory環境でクライアントの設定を集中的に管理する機能である。グループ・ポリシー・オブジェクト・エディタ(図1)などで様々な項目を設定するだけで,ドメインに所属するユーザーやコンピュータのセキュリティ設定,ソフトウエア配布,デスクトップ環境を構成できる。半面,期待通りに適用されないなど設定ミスによるトラブルも多い。グループ・ポリシーを正しく設定するには,ドメイン・コントローラ側,クライアント側の両方の動作を理解しておく必要がある。

図1●グループ・ポリシー・オブジェクト・エディタの画面 [Default Domain Policy]を設定することで,ドメインに参加しているすべてのコンピュータにポリシーを適用できる。[画像をクリックすると拡大]

 サイトやドメインなどに対するグループ・ポリシーの設定は,グループ・ポリシー・オブジェクト(GPO)としてドメイン・コントローラに格納され,ほかのドメイン・コントローラに複製される。ポリシーの設定変更などの操作も,グループ・ポリシー・オブジェクト・エディタなどを使ってこのGPOを単位に行う。ただし,GPOに設定した内容は,実際には「グループ・ポリシー・コンテナ(GPC)」と「グループ・ポリシー・テンプレート(GPT)」の2つに分けて格納される。これらはそれぞれ格納場所が異なり,複製のタイミングにも違いがある。

 GPCは,GPOの設定のうち,Active Directoryと結びついた情報,例えばどのOU(組織単位)に適用するか,といった構成情報を格納する。GPOの適用場所(入れ物)を表すので「コンテナ」と呼ぶ。GPCはActive Directoryデータベースの一部として格納され,サイト内の複製パートナに対しては更新後15秒で,サイト間では指定したスケジュール間隔(既定では180分ごと)で複製される。

 GPTは,グループ・ポリシーの実際の設定項目,例えば「最後にログオンしたユーザー名を表示するかどうか」といった内容を格納する。適用先が決まっていない(特定のOUなどに結びついていない)GPOの設定も保持するので「テンプレート」と呼ぶ。GPTはActive Directoryデータベースではなく,SYSVOL共有フォルダ(%SystemRoot%\SYSVOL)以下に保存される。SYSVOL共有は,ドメイン・コントローラ間で共有するファイルを格納するためのフォルダであり,ログオン・スクリプトなどもここに配置される。

 SYSVOL共有の複製は,FRS(ファイル複製サービス)が実行する。FRSはActive Directoryのサイト情報などを参照するものの,複製のメカニズム自体はActive Directoryと異なる。このため,Active DirectoryデータベースとSYSVOL共有の複製のタイミングは必ずしも一致しない。

 一方,クライアントはコンピュータの起動時にコンピュータのポリシーを適用し,ユーザーのログオン時にユーザーのポリシーを適用する。コンピュータ,ユーザーのポリシーは,それぞれGPOの[コンピュータの構成][ユーザーの構成]で設定した内容に相当する。クライアントはドメイン・コントローラからGPOの順序付き一覧を取得し,(1)ローカルGPO,(2)サイトのGPO,(3)ドメインのGPO,(4)OUのGPO,(5)下位OUのGPO――の順に適用する(図2)。ポリシーの適用は同期的に処理されるため,コンピュータ,ユーザーのポリシーの適用が完了するまでログオン画面やユーザーのデスクトップは表示されない。

図2●クライアントがポリシーを取得して適用する際の動作
クライアントは,コンピュータの起動時やユーザーのログオン時にGPOの順序付き一覧をドメイン・コントローラから取得して適用する。ポリシーは,ローカル,サイト,ドメイン,OU,下位OU,の順に適用される。同じポリシー項目に異なる設定が施されているときは,後に適用するものが優先される。

 ポリシーを適用する順序が重要なのは,後に適用したものが先に適用したものを上書きするからである。言い換えれば,ローカル・ポリシーは一番優先度が低く,下位OUが一番高い。もっとも,上書きを禁止するなどの設定も可能なので,ドメインやサイトに対して設定した項目を組織全体に例外なく適用させることもできる。

 クライアントは起動時/ログオン時のほかに,既定で90分ごとにポリシーを更新する。ただし,実際の更新間隔は,この時間にランダムなオフセットを加えたものになる。多数のコンピュータが同時にドメイン・コントローラに対してグループ・ポリシーの更新を要求してしまうと,パフォーマンスに影響を与える可能性があるためである。

 Windows XP/Server 2003でグループ・ポリシーを直ちに反映させるには,「gpupdate」コマンドを利用する。gpupdateは表1のようなコマンド・ライン・オプションを用意しており,再起動後でないと設定項目が有効にならないような場合でも利用できる。クライアントがWindows 2000ベースの場合には,gpupdateの代わりにseceditコマンドを使う。

表1●gpupdateコマンドのオプション
オプション 説明
/target:{computer | user} コンピュータの設定または現在のユーザーの設定だけを更新する場 合に指定する。デフォルトでは両方を更新する
/force すべての設定を強制的に適用する。デフォルトでは,既に適用済み の設定を再度適用しないなどの最適化を行う
/wait:<値> ポリシーの適用が完了するまでの待ち時間(単位は秒)を設定する。 デフォルトは600秒
/boot 更新が完了した時点で再起動する。コンピュータの起動時でないと 有効にならない設定項目を変更する場合に利用する
/logoff 更新が完了した時点でログオフする。ログオン時でないと有効にな らない設定項目を変更する場合に利用する

 設問では,サイトの情報が提示されていないが,選択肢から考えてGPOの複製ではなく,GPOの適用間隔が問われていると考えられる。クライアントがWindows XPなので正解は1となる。

日経Windowsプロ2006年1月号掲載
藤田 将幸=グローバルナレッジネットワーク