■Windows Server 2003になって拡張されたグループ・ポリシーの基本機能を紹介する連載の後編。今回は,WMI(Windows Management Instruments)によるフィルタリング,「グループ・ポリシーの結果セット」を取り上げる。
■WMI(Windows Management Instruments)を使えば,グループ・ポリシーの適用条件を詳細に設定できる。他にも,「ポリシーの結果セット」機能により,グループ・ポリシー適用のシミュレーション,結果の確認も簡単に行えるようになった。

(福田真紀子=グローバル ナレッジ ネットワーク)

 前編では,Windows Server 2003になって改良されたグループ・ポリシーの利用方法として,「ソフトウエアの制限のポリシー」を取り上げ,サンプル・スクリプトを制限する設定や規則を紹介した。Windows Server 2003のグループ・ポリシーには,他にもWMIフィルタリング機能や「ポリシーの結果セット」といった機能の改良があって,サーバーやクライアントの一括管理に役立てられる。今回はGPOをきめ細かく適用するため,これらの新機能を使ってみる。

セキュリティ・グループによるフィルタリングでGPOを細かく適用する
 最初に,GPOと従来のフィルタリングのおさらいをしておこう。GPOは,Windows Server 2003においてグループ・ポリシー・オブジェクト・エディタ(Windows 2000では[グループポリシー]という名称)を使って設定することは,前回も述べた(前編の図1)。グループ・ポリシー・オブジェクト・エディタの画面を見ると分かるが,GPOにはコンピュータに適用される「コンピュータの構成」と,ユーザーに適用される「ユーザーの構成」に分かれている。

 コンピュータの構成では,ソフトウエア・インストール,セキュリティ・ポリシー,ネットワークなどの設定を行う。一方,ユーザーの構成では,ソフトウエア・インストール,マイドキュメントのリダイレクト,コントロール・パネルへのアクセス許可,デスクトップなどが設定を行う。これらはいずれも,Active Directoryの支配下にあるコンピュータやユーザーの振る舞いを決めるためのもので,他にも多様な設定項目がある。これらGPOを適用するに当たっては,ドメイン,組織単位(OU),サイトといった単位で実施することになっている。例えば,全社共通の設定をドメイン単位で適用し,事業部ごとの設定をOU単位で適用するといったことである。

 ところが,複数のOUに点在する特定のユーザーやコンピュータに対してだけ,GPOを適用したいこともある。一見,設定が不可能のように思えるが,従来のWindows 2000のころから,GPOにセキュリティ・グループのフィルタをかけることで解決していた。

△ 図表をクリックすると拡大されます
図1●各OUの上位のコンテナにのみ,グループ・ポリシーを適用する


△ 図表をクリックすると拡大されます
図2●GPMCの[スコープ]タブ「セキュリティフィルタ処理」欄で確認する

 例えば,部署ごとにOUを分けるような構造で,各部署のマネージャだけに特定のアプリケーションを配布することを考えよう。この場合,各部署のOUの上位のコンテナに対してGPO(グループ・ポリシー・オブジェクト)を設定し,さらにGPOのアクセス権を変更して,グループ・ポリシーが特定のユーザーやグループだけに適用されるよう設定する(図1)。

 通常,GPOのアクセス権は「Authenticated Users」に対し,[読み取り]と[グループポリシーの適用]のアクセス許可が設定される。このため,すべての認証されたユーザーやコンピュータにグループ・ポリシーが適用される。

 特定のユーザーやコンピュータだけにグループ・ポリシーを適用するには,まず既定のAuthenticated Usersに対するアクセス許可を削除してしまう。それから,必要なグループ(セキュリティ・グループ)のみに[読み取り]と[グループポリシーの適用]のアクセス許可を与える。また,管理者だけに適用させたくないGPOがある場合は,その管理者に対し[グループポリシーの適用]の「拒否」を設定する。このような設定により,きめ細かいGPOの適用が可能になる。

 実際に特定のセキュリティ・グループだけに適用されているかどうかは,GPMC(グループ・ポリシー管理コンソール)を使って確認できる。GPMCを起動し,GPOまたはGPOへのリンクを選択して,[スコープ]タブの「セキュリティフィルタ処理」欄を表示する(図2)。なお,GPMCに関しては,筆者が別の記事で解説しているので,そちらをご覧いただきたい(該当記事)。

WMIを使用して,詳細な条件でフィルタリングをかける
 今度はWindows Server 2003になって利用できるようになったWMIフィルタリングの方法を紹介しよう。

 GPOに対して,グループ・アカウントやユーザー・アカウントを使ったフィルタ処理を行うことにより,特定のグループにだけポリシーを適用する/適用しないという処理は,Windows 2000でも可能であった。

 しかし,現実にはセキュリティ・グループがうまく分類できないことも多い。例えば,「特定のセキュリティ・パッチが当たっているコンピュータや,ハードディスクの空き容量が十分あるコンピュータにだけ,ソフトウエアをインストールしたい」というような要望に対しては,どうすればいいのだろうか?管理者がコンピュータの状況を収集し,その結果に基づいてグループ分けをすれば,実現できるように思えるが,実際には非常に手間がかかるし,そのコンピュータの状態が変わったときに速やかに対処できない。

 Windows Server 2003では,グループ・アカウントによるフィルタに加え,ハードウエアやソフトウエアの構成情報を操作するインフラであるWMI(Windows Management Instruments)で「WMIフィルタ」を作成し,より詳細な条件を設定できる。例えば,ディスクの空き領域やメモリーなどのハードウエア,OSの種類などのソフトウエアのインベントリ情報を基にフィルタリングをかけられるのだ。

△ 図表をクリックすると拡大されます
図3●[グループポリシーの管理](GPMC)で,新しくWMIフィルタを作成しようとしているところ
△ 図表をクリックすると拡大されます
図4●新しいWMIフィルタを作成するためのダイアログ画面
△ 図表をクリックすると拡大されます
図5●GPMCを使って,GPOにWMIフィルタへのリンクを追加する

 WMIフィルタでは,以下のようなフィルタをかけられる。
●例1:Windows XP以上のコンピュータにだけ規則を適用する
Select*from Win32_OPeratingSystem where BuildNumber>2200
(Windows 2000のビルド番号は2195,Windows XPは2600)
●例2:Cドライブのハードディスクの空き領域が,600Mバイト以上のコンピュータに対して規則を適用する
Select*from Win32_LogicalDisk where FreeSpace>629145600 and DeviceID="C:"

 GPMCでWMIフィルタを作成するには,以下の手順で行う。ここでは,OSのビルド番号を使用し,Windows XP ProfessionalだけをフィルタするWMIフィルタを作成する。なお,WMIの詳細はPlatform SDKなどを参照してほしい。

(1)スタート・メニューから[管理ツール]-[グループポリシーの管理]を選択して,GPMCを起動する。
(2)GPMC画面の左ペインにある[ドメイン]の下にある[WMIフィルタ]を右クリックし,現れたメニューで[新規]を選択する(図3)。
(3)「新しいWMIフィルタ」ダイアログ画面で,WMIフィルタの名前と説明を入力し,[追加]ボタンをクリックする(図4左)。
(4)すると[WMIクエリ]ダイアログ画面が表示されるので,クエリの名前を入力する(図4右)。ここではWindows XP Professionalだけをフィルタするため,「Select*from Win32_OPeratingSystem where BuildNumber=2600」と入力している。
(5)GPMCを使ってGPOにWMIフィルタへのリンクを追加するには,GPMCを起動して,GPOまたはGPOへのリンクを選択し,[スコープ]タブの[WMIフィルタ処理]欄で作成したWMIフィルタを選択する(図5)。
以上でWMIフィルタの設定は完了である。

 実際に,Windows XP ProfessionalのService Pack 1をインストールするグループ・ポリシー「Service Pack1 for Windows XP」に対し,WMIフィルタを設定して,適用してみた。Windows XP Professionalのコンピュータを起動してみると,起動時にService Pack 1がインストールされたことが確認できた。