WMIフィルターの効果的な活用

今回は、以前連載をさせていただいていた「Windows Server 2012で始めるActive Directory」の第10回「グループポリシーの効果的な活用」から抜粋・加筆修正し、WMIフィルターの効果的な活用方法について紹介します。

■ ■ ■

WMIフィルターとは

GPOの設定が完了したら、続いてGPOを適用する対象を決定する。GPOは基本的にOUまたはドメインにリンクすることで適用する対象が決定する。ドメインにリンクすれば、ドメイン内のユーザーまたはコンピューターが対象になるし、OUにリンクすれば、OU内のユーザーまたはコンピューターが対象になるといった具合だ(画面3)。

画面10-3

画面3●ドメインにGPOをリンクしている様子

しかし、実際の運用の場面では、ドメインやOUの括りではない範囲で適用する場合があるだろう。たとえば、ノートPCとデスクトップPCで適用する内容を変更したい場合などが考えられる。そのときには、WMIフィルターを利用することをお勧めする。

WMIフィルターはWMIと呼ばれる、主にハードウェアに関連する情報にアクセスするための機能(インターフェイス)にアクセスし、管理者が定義した条件に一致したユーザー/コンピューターだけにGPOを適用するというものである。WMIフィルターを設定するときは、あらかじめ[グループポリシーの管理]ツールの[WMIフィルター]から条件を設定しておく(画面4)。

画面10-4

画面4●WMIフィルターの設定

WMIフィルターは条件として「Select * From <WMIクラス> Where <条件>」のように記述する。たとえば、日本のタイムゾーンを使用しているコンピューターだけにGPOを適用したい場合なら、

Select * From Win32_TimeZone Where Bias = 540

と記述する。

このとき、問題になるのは自分の設定したい項目をどうやって探せばよいか?ということである。WMIは「WMIクラス」と呼ばれるジャンルと、プロパティと呼ばれる項目から構成されている。まず、WMIクラスとしてどのようなものがあるか調べるときは、Windows PowerShellから「Get-WmiObject -list」というコマンドレットを実行する。すると、WMIクラスの一覧が表示されるので、その中から自分が求めているであろうWMIクラスの名前を探す。

続いて、使用するWMIクラスの中にあるプロパティを探すときは、同じくWindows PowerShellから「Get-WmiObject -Class <クラス名>」というコマンドレットを実行する。すると、利用可能なプロパティが表示される。たとえば、画面5のようにWin32_TimeZoneクラスで利用可能なプロパティを表示すると、タイムゾーンはBiasというプロパティであらわされることが確認でき、また値が540だと日本のタイムゾーンを表していることがわかる。

画面10-5

画面5●Get-WmiObject -Class Win32_TimeZoneコマンドレットを実行した様子

こうして出来上がったWMIフィルターはリンクしたGPOの[WMIフィルター処理]で設定すれば完了だ(画面6)。

image

画面6●WMIフィルターをGPOに設定した様子

参考までに、よく使われることが予想されるWMIフィルターをいくつか紹介しよう。

-デスクトップPCだけにGPOを適用

Select * From Win32_SystemEnclosure Where ChassisTypes >= 3 and ChassisTypes <=7

(ChassisTypesが3,4,5,6,7の場合はデスクトップPC)

-仮想マシンだけにGPOを適用

Select * From Win32_NetworkAdapter Where ServiceName = “netvsc”