検索
連載

見た目はWindows 10 バージョン20H2、中身はWindows 10 バージョン2009、その名は「Windows 10 October 2020 Update」その知識、ホントに正しい? Windowsにまつわる都市伝説(170)

年2回リリースされる「Windows 10」の各バージョンには、さまざまな呼び名があります。これが混乱を招くことも……。間もなくリリースされるWindows 10の新バージョンでは、混乱を解消すべく、新たな変更が行われます。

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

Windowsにまつわる都市伝説

Windows 10のバージョン番号は、「YYMM」から「YYH1」「YYH2」へ

 2015年7月に登場した「Windows 10」は、“最後のWindowsバージョン”とも呼ばれました。“Windows 10”という名称は最後かもしれません。しかし、最初のころには乱れもありましたが、年に2回(春ごろと秋ごろ)のペースで「機能更新プログラム」とも呼ばれる新バージョンがリリースされ続けています。

 全てWindows 10なわけですが、バージョンを識別するために幾つかの表現が用いられます。よく使われるのは「フレンドリー名」「バージョン番号」「ビルド番号」「開発コード名」です(後出の表1にまとめています)。

 フレンドリー名である「November Update」や「Creators Update」って、いつのどのバージョンだったっけ(どちらもサポートが終了した古いバージョンです)、「RS」て何番まであったっけと混乱することあります。例えば、ほとんどの一般ユーザーは「RS5」なんて呼び名は知りもしませんが、Microsoftやアプリケーションベンダーの公式ドキュメントやブログなどでは、当然のことのように「RS5」などの開発コード名が使われることがあります(画面1)。

画面1
画面1 Microsoftや他社の公式ドキュメントでも、システム要件などで開発コード名が使われることがある(RS5はバージョン1809、19H1はバージョン1903)

 Windows 10は2つ目のバージョン、フレンドリー名「Windows 10 November Update」から「Windows 10 バージョン1511」のように、暦年下2桁(YY)とビルド完成月の2桁(MM)を組み合わせた、「YYMM」というバージョン番号を持つようになりました。当初はよく分からないというか、今後、どうするんだというようなフレンドリー名でしたが、最近はリリース年とリリース月を表す名称(Windows 10 May 2020 Updateなど)になっています。

 しかし、ビルド完成月(バージョン番号はこちらがベース)とリリース月(フレンドリー名はこちらがベース)のズレはユーザーを混乱させることがあります。また、日本では米国時間で月の最終日にリリースされた場合、日付変更線の関係で翌月1日のリリースになってしまい、さらに混乱することになります。

 例えば、「Windows 10 April 2018 Update」はバージョン「1803」で、米国時間では2018年4月30日にリリースされましたが、日本では5月1日から利用可能になりました。「April(4月)」と「03(月)」と「5月(日本)」の異なる3つの月が、同じWindows 10のバージョンを示しているのです。

 また、「Windows 10 May 2020 Update」は、過去のMicrosoft製品のバージョンとの混乱を避けるため、バージョン「2004」が採用されました。Windows 10と同じバージョン番号を持つ半期チャネル(SAC)のWindows Serverは「Windows Server, version YYMM」という名称で呼ばれます。もし、バージョン「2003」だったとしたら、既にサポートが終了した「Windows Server 2003」と新しい「Windows Server, version 2003」が存在することになり、いろいろと問題があったからです。

 バージョン「2004」も過去に幾つか同じバージョン番号の製品がある都合の悪い数字でしたが、2020年下半期には都合の悪い番号がめじろ押しです。「Microsoft Office 2007」「Windows Server 2008」「BizTalk Server 2009」「Microsoft Office 2010」「Windows Small Business Server 2011」「Windows Server 2012」など、使えるバージョン番号が見当たりません。

 バージョン番号をめぐる混乱は2020年にリリースされるバージョンだけで、2021年以降にリリースされるバージョンで問題になることはないでしょう。Officeアプリやサーバ製品の多くも今は同様のバージョン形式が採用され、多くのユーザーが慣れてきたところでもあります。

 しかし、Microsoftは2020年6月、Windowsのバージョンに関するこうした混乱の解消を目的に、バージョン番号をこれまでのYYMM形式から、暦年下2桁(YY)と上半期(the first half of YYYY)、下半期(the second half of YYYY)のリリース時期を表す「H1」「H2」を組み合わせた「YYH1」「YYH2」に移行することを発表しました。間もなくリリースされる次のバージョンは、この変更が初めて適用された「Windows 10 バージョン20H2」になります。「20H2」は開発コード名ではなく、正式なWindows 10のバージョンを示します。

バージョン「20H2」はバージョン「2009」でもある?

 「設定」アプリの「システム」→「バージョン情報」(バージョン1909以前)や「詳細情報」(バージョン20H2)、「Windowsのバージョン情報」(winver.exe)は、YYMM形式が導入されたWindows 10 バージョン1511から、バージョン番号を表示するようになりました。また、PowerShellの「Get-ComputerInfo」コマンドレットは、Windows 10 バージョン1703から「WindowsVersion」にバージョン番号を出力するようになりました。

 Windows 10 バージョン2004とバージョン20H2でこれらの情報を確認すると、面白いことが分かります。「設定」アプリや「Windowsのバージョン情報」は新しいバージョン「20H2」の表示に対応していますが、Get-ComputerInfoコマンドレットのWindowsVersionは依然としてYYMM形式のバージョン番号を出力し、新しいバージョン「20H2」の情報を提供しません。そして、バージョン「20H2」のWindowsVersionの値は「2009」です。

 Windows 10 バージョン1511からバージョン2004までの「設定」アプリや「Windowsのバージョン情報」は、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion」キーにある「ReleaseID」値、「CurrentBuild」値、「UBR」値からバージョン、ビルド、リビジョン番号(品質更新プログラムでインクリメントされる詳細なビルド番号)を取得しています。

 これは、Windows Sysinternalsの「Process Monitor」(Procmon.exe)ユーティリティーを使用して、「SystemSettings.exe」や「winver.exe」プロセスがアクセスするレジストリをトレースすることで確認できます(画面2)。Get-ComputerInfoコマンドレットも同様に、これらのレジストリ値を直接または間接的に参照していると思われます。

画面2
画面2 Windows 10 バージョン2004以前の場合、「設定」アプリや「winver.exe」は、レジストリの「ReleaseID」(バージョン)、「CurrentBuild」(ビルド番号)、「UBR」(リビジョン番号)からバージョン番号を取得している

 Windows 10 バージョン20H2でも、Process Monitorを使用して「設定」アプリや「Windowsのバージョン情報」のレジストリアクセスをトレースすると、これまでは参照していなかった「DisplayVersion」という未知の値を参照していました(画面3)。「レジストリエディター」(Regedit.exe)でこのレジストリの場所を開くと、「DisplayVersion」値には新しいバージョン番号「20H2」が格納されていました。また、以前にバージョン番号を保持していた「ReleaseID」値には、「2009」というYYMM形式のバージョン番号が存在しました(画面4)。

画面3
画面3 Windows 10 バージョン20H2の場合、以前は参照していなかった「DisplayVersion」値を参照している
画面4
画面4 新たに追加されたレジストリ値「DisplayVersion」は、新しいバージョン番号「20H2」を保持していた。そして、以前にバージョン番号を保持していた「ReleaseID」には「2009」というYYMM形式のバージョン番号がある

バージョン「2009」は、スクリプトやアプリの下位互換性のため?

 Windows 10 バージョン20H2で、新しいバージョン番号「20H2」を「ReleaseID」値ではなく、「DisplayVersion」という新しい値に格納することにした理由は定かではありません。しかし、結果としては“下位互換性が維持されている”ということになります。

 例えば、自作スクリプトでバージョン番号をレジストリから取得し、数値演算で条件分岐している場合、「ReleaseID」値に「20H2」がセットされてしまうと、スクリプトは文字列として突如出現する「20H2」を正しく扱えないでしょう。アプリケーションは本来、レジストリから直接バージョン番号を取得して判定に使用すべきではありませんが(適切なAPIを使用する必要があります)、ガイドラインに従わない作りのアプリケーションもあるはずです。

 以下のPowerShellスクリプトは、「ReleaseID」を数値に変換してWindows 10 バージョン1809以降かそうでないかを識別する例です。もし「ReleaseID」に「20H2」がセットされていたとしたら文字列型を数値型に変換できずにエラーになるはずです。Windows 10 バージョン20H2は「ReleaseID」値に「2009」がセットされているため、スクリプトを変更しなくても、期待通りに動作します(画面5)。一方、スクリプトなどでレジストリから取得したバージョン情報や製品名から資産管理台帳などを作成している場合、公式には存在しないWindows 10の名前が作り出されてしまう可能性があります。

$currentver = [int](Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").ReleaseID
if ($currentver -ge 1809){Write-Host "1809 or later"} else { Write-Host "before 1809"}

画面5
画面5 「ReleaseID」値を条件に、Windows 10のバージョンを識別するスクリプトの例。「ReleaseID」が「20H2」の場合、最初の[int]がエラーになるはず

 「ReleaseID」値が今後も維持され、YYMM形式でインクリメントされているかどうかについては何とも言えません。突然登場した「DisplayVersion」値のように、将来バージョンで突然消えてしまうかもしれません。また、Windows ServerのSACバージョンもWindows 10と同じ「YYH1」「YYH2」形式に移行するのかどうかも注目したいところです。

 最後に、これまでリリースされたWindows 10のフレンドリー名、バージョン番号、ビルド番号、開発コード名、関連するレジストリ値(BuildBranch、ReleaseID、DisplayVersion)を以下の表1にまとめました。あまり知られていないかもしれませんが、Windows 10 バージョン2004/20H2は、「Vibranium」という開発コード名でも呼ばれることがあります。アプリやドライバの開発者はSDKに出てくるのでご存じだと思いますが、あまり表に出てこない名前です。「Windows Server Update Services(WSUS)」の製品分類にはこの名前が出てくるので、Windows 10 バージョン2004/20H2のことだと知っておく必要があるでしょう(画面6)。

フレンドリー名 バージョン ビルド 開発コード名 BuildBranch ReleaseID DisplayVersion
Windows 10(Initial Release) なし(1507) 10240 Threshold(TH1) th1 なし なし
November Update 1511 10586 TH2 th2_release、th2_release_sec 1511 なし
Anniversary Update 1607 14393 Redstone(RS1) rs1_release 1607 なし
Creators Update 1703 15063 RS2 rs1_releas 1703 なし
Fall Creators Update 1709 16299 RS3 rs1_releas 1709 なし
April 2018 Update 1803 17134 RS4 rs1_releas 1803 なし
October 2018 Update 1809 17763 RS5 rs1_release 1809 なし
May 2019 Update 1903 18362 19H1 19h1_release 1903 なし
November 2019 Update 1909 18363 19H2 19h1_release 1909 なし
May 2020 Update 2004 19041 20H1(Vibranium) vb_release 2004 なし
October 2020 Update 20H2 19042 20H2(Vibranium) vb_release 2009 20H2
表1 Windows 10のこれまでのリリース名称のまとめ。BuildChannelから分かるのは、1903と1909、2004と20H2はOSのコア部分が共通ということ
画面6
画面6 WSUSの製品分類にある「Windows 10, Vibranium and later ……」は、「Windows 10, version 2004 and later ……」のこと

筆者紹介

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

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


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る