【WMIフィルター】Win32_OperatingSystemのBuildNumberがWindows 10で正しく動作しない原因と解決策
本記事では、Windows Management Instrumentation(WMI)のグループポリシーフィルターにおいて、Win32_OperatingSystem の BuildNumber を比較する条件が Windows 10 上で期待どおりに動作しない問題について、その原因と解決策を詳しく解説します。
WMI(Windows Management Instrumentation)とは
WMI とは、分散管理タスクフォース(DMTF)が策定した Web-Based Enterprise Management(WBEM)および Common Information Model(CIM)標準を Microsoft が実装したものです。ネットワーク上のデバイスやアプリケーションの管理を、Windows コンピューティングシステムから一元的に行うための一連の仕様として提供されています。
WMI を利用すると、VBScript や Windows PowerShell などのスクリプト言語を使って、Microsoft Windows の PC やサーバーをローカルでもリモートでも管理できます。WMI は Windows 2000 以降の Microsoft OS に標準で搭載されています。
さらに、WMI では次のような操作もサポートされています。
- セキュリティ設定の構成
- システムプロパティの設定・変更
- 許可されたユーザーやユーザーグループに対する権限の設定・変更
- ドライブラベルの割り当て・変更
- 特定の時刻にプロセスを実行するスケジュール設定
- オブジェクトリポジトリのバックアップ
- エラーログの有効化・無効化
問題の概要:BuildNumber を使った WMI フィルターが機能しない
この問題は、次のようなシナリオで発生します。
グループポリシーを Windows 8.1 以降のバージョンに適用したいと考え、そのために Win32_OperatingSystem の BuildNumber を利用して、以下のような WMI フィルターを作成したとします。
"Select BuildNumber from Win32_OperatingSystem WHERE BuildNumber >= 9200"
Windows の各バージョンにおける既知のビルド番号は、下表のとおりです。
| ビルド番号 | Windows のバージョン |
|---|---|
| 9200 | Windows 8 |
| 9600 | Windows 8.1 |
| 10240 | Windows 10 |
| 10586 | Windows 10 バージョン 1511 |
| 14393 | Windows 10 バージョン 1607 |
| 15063 | Windows 10 バージョン 1703 |
| 16299 | Windows 10 バージョン 1709 |
| 17134 | Windows 10 バージョン 1803 |
| 17763 | Windows 10 バージョン 1809 |
| 18362 | Windows 10 バージョン 1903 |
このシナリオでは、WMI フィルターによってビルド番号 9200 以降の環境にグループポリシー設定が適用されることを期待します。ところが実際には、Windows 10 のビルドだけが除外されてしまうのです。
原因:BuildNumber のデータ型は「文字列」
Microsoft によると、この問題が発生する原因は、BuildNumber のデータ型が Integer(整数)ではなく String(文字列)である点にあります。文字列として比較が行われるため、「10*** < 9600」という誤った評価結果になってしまうのです。
解決策:LIKE 演算子を使ったフィルターに書き換える
この問題を解決するには、次の例のようなフィルターを使用します。
Select BuildNumber from Win32_OperatingSystem WHERE BuildNumber >= 10000 AND BuildNumber LIKE "%[123456789][0123456789][0123456789][0123456789][0123456789]%" OR BuildNumber >= 9200 AND BuildNumber LIKE "%[123456789][0123456789][0123456789][0123456789]%"
注意: 文字列比較で目的の結果を得る方法はいくつか存在します。上記の例はあくまで一例であり、お好みの方法を採用しても問題ありません。記載した例はそのまま正常に機能します。
本記事が問題解決の助けになれば幸いです。
-
Windows 10でISOファイルを扱う方法|マウントからディスクへの書き込みまで解説
ISOファイルとは、かつて光学メディアに収録されていたデータ一式をそのままアーカイブしたディスクイメージのことです。現在、ソフトウェアの配布にCDやDVDが使われることはめったになくなりましたが、大容量のソフトウェアをダウンロードする際のコンテナ形式としては、今なおISOが広く利用されています。MicrosoftもWindows 10のインストールイメージをISO形式で公開しており、その代表的な例といえるでしょう。 Windowsは、Windows 8の登場以降、ISOファイルへの対応が大きく強化されています。サードパーティ製ソフトウェアを一切使わなくても、ISOファイルをファイルシステムにマ
-
Windows 7の拡張セキュリティアップデート(ESU)とは?仕組み・料金・Windows 10への移行を徹底解説
発売から10年が経とうとしているWindows 7との別れの時刻が、着実に近づいています。メインストリームサポート終了から4年を経た2020年1月14日、MicrosoftはWindows 7の延長サポートを終了させます。ひとつの時代の幕引きとなる日です。 Windows 7のサポートが終了すると、ユーザー体験には突然の病のように大きな変化が訪れます。サポート終了日以降は、Windows 7向けのセキュリティ更新プログラムが一切提供されなくなります。つまり、システム乗っ取り、マルウェア感染、ランサムウェア攻撃などの被害が発生しても、Microsoftによる対応は期待できません。セキュリティホー