Windows10 バージョンごとに別のポリシーを適用する方法

最近 ActiveDirectory のグループポリシーを OS のバージョンに応じて適用したいという要件に出くわしたので、そういった対応が可能か確認してみました。

結論として WMI フィルターを活用することで対応できそうだったので、適用方法を確認していきたいと思います。

まず、適用したい OS のバージョン情報を確認します。

今だとクライアントならほぼ Windows10 になると思いますが、設定アプリのシステムよりバージョン情報を見ていきます。

この画面内 OS ビルドの値を覚えておきましょう。

以下内容の場合 18363.959 となっています。このうち 18363 が覚えておく場所です。

 

f:id:mohessu:20200812030309p:plain

 

続いて AD にアクセスし、グループポリシーの管理を開きます。

ここから WMI フィルターを選び、右クリックで新規を押します。

名前はわかりやすいフィルター名をつけましょう。次に追加ボタンを押します。

f:id:mohessu:20200812031129p:plain

するとクエリの追加画面になるので、名前空間とクエリを記載していきます。
名前空間は初期値のままで大丈夫です。クエリは先ほど覚えた 18363 の前に 10.0. を付加します。これは Windows10 を表すバージョン番号ですね。

名前空間:root\CIMV2

クエリ:Select * from Win32_OperatingSystem where Version = "10.0.18363"

f:id:mohessu:20200812025901p:plain

今回は名前を Windows10_1909 としました。

f:id:mohessu:20200812025922p:plain

対比できるようにバージョンを 20185 とした WMI フィルターも作っておきます。( 2009_Insider_Dev としました)

f:id:mohessu:20200812030039p:plain

この WMI フィルターを使用している GPO の枠で右クリックし追加を押しましょう。

GPO の選択画面が出るので関連させたい GPO を選びます。

f:id:mohessu:20200812031749p:plain

これで適用準備は完了です。

あとはこのポリシーが配布された GPO が適用されるOU内のユーザーやマシンでアクセスしてみましょう。

以下コマンドをコマンドプロンプトから確認すると、適用されたかどうかがわかります。 1909 のマシンでアクセスしたのですが、見事適用されたようです。

gpresult /r

f:id:mohessu:20200812030126p:plain

WMI フィルターに適用可能な値は wmic というコマンドで確認可能です。

コマンドプロンプト以下コマンドを打つとクエリに適用可能な項目がわかります。

wmic

/namespace:\\root\CIMv2

path Win32_OperatingSystem

f:id:mohessu:20200812030139p:plain

バージョン情報は後ろの方ですね。

f:id:mohessu:20200812030155p:plain

今回はルートに GPO を適用していますが、ポリシーを途中に付けても同様に動作しました。

f:id:mohessu:20200812032752p:plain

WMI フィルターはほかにも細かく設定可能ですのでぜひ一度何ができるか確認してみてください。

音楽:永遠の螺旋