検索
連載

それは、Windows 11であり、Windows 10でもある――WSUSで見つかったWindowsの混乱とは?その知識、ホントに正しい? Windowsにまつわる都市伝説(210)

2015年に“最後のWindows”として登場したWindows 10。しかし、6年後の2021年6月には“Windows 11”が発表され、10月に正式リリースとなりました。“最後の”とは何だったのか、うそだったのか……。この点はいろいろと議論があるところですが、少なくともWSUSは、ある視点で見れば、Windows 10とWindows 11を別製品としては区別していないようです。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

Windows 11のレジストリに残るWindows 10の製品情報

 「Windows 11」は発表前、「Windows 10」の近い将来のリリース向けに開発されていたビルドである「CO_RELEASE」(COは「コバルト」に由来)が、簡単に言ってしまえば「Windows 11」というマーケティング戦略上の新しい名前でリリースされた製品です。デスクトップの見た目や操作性は大きく変わりましたが、OSのコアの部分はそれまでの64bit(x64)版Windows 10から劇的に変化しているわけではありません。

 Windowsの製品情報やバージョン情報は、「設定」アプリ、「Windowsのバージョン情報」アプレット、「システム情報」ツール(msinfo32.exe)など、幾つかのGUIで確認できます。コマンドラインからは、「Systeminfo.exe」コマンドや「WMIC」コマンド、「Get-ComputerInfo」コマンドレットなどを利用して確認できます。

 Windows 10からWindows 11への名称変更が突然だったからなのか分かりませんが、一部のツールはいまだに製品名として「Windows 10」を出力します。

 例えば、Windows 11のWMICコマンド(WMIC OS Get Caption)は「Microsoft Windows 11 Pro」を出力しますが(WMICは非推奨になりました。代わりにPowerShellの「CimCmdlets」コマンドレットの使用が推奨されています)、Get-ComputerInfoコマンドレットが返す情報の中には「Windows 10 Pro」も含まれています。Windows 11でGet-ComputerInfoコマンドレットで情報を取得する場合は、「WindowsProductName」ではなく、「OsName」を参照する必要があります(画面1)。

Windows 10およびWindows Server 2016/2019まで

Get-ComputerInfo | Select WindowsProductName,WindowsVersion, OsBuildNumber


Windows 11およびWindows Server 2022から

Get-ComputerInfo | Select OsName, OsDisplayVersion, OsBuildNumber


画面1
画面1 Windows 11では、Get-CompuerInfoコマンドレットの出力の一部に、実際の製品名やバージョンとは異なる情報を返すものがある

 Get-ComputerInfoコマンドレットの「WindowsProductName」と「WindowsVersion」は、それぞれ「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion」レジストリキーの「ProductName」と「ReleaseId」に対応していました。

 Windows 10は、Windows 10 バージョン2004まではビルドリリース時の2桁の年と2桁の月からなる「YYMM」をバージョン表記に使用していましたが、Windows 10 バージョン20H2から春のリリースを「YYH1」、秋のリリースを「YYH2」に変更しました。「RereaseId」値はバージョン20H2のときの「2009」以降、放置されており、変更されていません。Windows 10 バージョン21H1、バージョン21H2、Windows 11 バージョン21H2、「Windows Server 2022」の「ReleaseId」値は全て「2009」です。

 Windows 10までGet-CompuerInfoコマンドレットは「YYH1」「YYH2」形式のバージョン情報には対応しておらず(WMICコマンドも同様に非対応)、これらの情報をコマンドラインから得るには、レジストリに新たに追加された「DisplayVersion」値を直接参照する必要がありました(画面2)。

画面2
画面2 Windows 10 バージョン2004以降、「WindowsVersion」(「ReleaseId」レジストリ値)は「2009」のまま放置されている。「YYH1」「YYH2」形式に対応した情報をコマンドラインで取得するには、「DisplayVersion」レジストリ値を直接参照する必要があった

 Windows 11とWindows Server 2022からは、レジストリの「DisplayVersion」値に対応する「OsDisplayVersion」が、Get-ComputerInfoコマンドレットの出力に追加されたわけです。

 なお、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion」レジストリキーに、Windows 11の製品名に対応する値は見当たりません。Get-ComputerInfoコマンドの「OsName」は、レジストリ以外の別のところから製品名の情報を取得しています。それは、WMICコマンドが返す製品名と一致するため(「Microsoft」から始まります)、恐らくWMI(Windows Management Instrumentation)から取得しているのでしょう。

 その値は、WMI名前空間「root\cimv2」の「Win32_OperationgSystem」クラスにある「Caption」プロパティです。これは、PowerShellで「(Get-CimInstance -Query 'Select * from Win32_OperatingSystem').Caption」コマンドレットを実行して取得することもできます。

WSUSクライアントのWindows 11クライアントがWindows 10?

 こうした場当たり的な対応は、少なからず混乱を生みます。その一例が「Windows Server Update Services(WSUS)」で見つかります。WSUSは、「Windows Server 2016」でWindows 10へのアップグレードと更新に対応して以降、筆者の知る限り、新機能の追加や機能変更は行われていません。

 Windows 10の新しい機能更新プログラムを配布対象に含める場合と同様、「製品」のカテゴリーとして「Windows 11」を追加することで、Windows 11へのアップグレードや品質更新プログラム/機能更新プログラムの承認と配布が可能になります。Windows 10の64bit版の新しいバージョンの名前が“たまたま「Windows 11」である”ということもできるかもしれません。

 以下の画面3は、WSUSのクライアントとしてセットアップされているWindows 11コンピュータ「win11pv」です。また、画面4を見れば分かるように、Windows 11向けの更新プログラムのインストール状況が正しくレポートされており、WSUSを使用して新しい更新プログラムを承認して配布することが可能です。

画面3
画面3 WSUSクライアントとしてセットアップされ、管理対象になっているWindows 11コンピュータ
画面4
画面4 Windows 11向け更新プログラムのインストール状況を正しくレポートしており、不足している更新プログラムを承認すれば、クライアントの次のWindows Updateで検出、インストールさせることができる

 WSUSがこのWindows 11クライアントからの報告に基づいてデータベース(SUSDB)に自動登録したコンピュータのインベントリ情報を見てみましょう(画面5)。

画面5
画面5 Windows 11なのに「オペレーティングシステム」列には「Windows 10」と報告されている。「バージョン」列はwuaueng.dllのバージョン情報(前出の画面3を参照)であることに注意

 「オペレーティングシステム」列には「Windows 10 Enterprise」と表示されています。これは、WSUSがOS情報を「ProductName」レジストリ値から取得しているからだと思われます。表示上の問題であり、WSUSの現在の仕様なのでどうにもなりません。古いバージョンのWSUSでは、Windows 10を「Windows Vista」と表示するなど、Windowsの新バージョンを誤表示する問題があり、その後、修正されたことがあるので、Windows 11をWindows 10と表示する問題も修正される可能性はあります。

 同じ画面の「バージョン」列も、Windows 10やWindows 11の詳細なビルド番号(つまりどの累積更新プログラムまで適用されているか)を示していると誤解している人がいるようです。しかし、これはWindows 10が登場するずっと前からWSUSクライアントの「Windows Update Agent(WUA)」コンポーネント(C:\Windows\System32\wuaueng.dll)のファイルのバージョン情報を報告するものであり、Windows 10やWindows 11の現在の詳細なビルド番号とは一致しない場合があります(累積更新プログラムと同じタイミングで更新された場合、しばらくは一致するでしょう)。

 「Windows 7」や「Windows 8.1」といったレガシーなWindowsの更新にも対応しているWSUSにとって、製品名を格納しているレジストリ値にそもそも正しい情報がないWindows 11に即対応できるわけはないです。また、Windows 10以降の「YYMM」や「YYH1」「YYH2」といったバージョン番号や、累積更新プログラムでインクリメントされる詳細なビルド番号は、WSUSの機能に影響するものではないため、無関心なのです。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP 2009 to 2022(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る