見た目はWindows 10 バージョン20H2、中身はWindows 10 バージョン2009、その名は「Windows 10 October 2020 Update」:その知識、ホントに正しい? Windowsにまつわる都市伝説(170)
年2回リリースされる「Windows 10」の各バージョンには、さまざまな呼び名があります。これが混乱を招くことも……。間もなくリリースされるWindows 10の新バージョンでは、混乱を解消すべく、新たな変更が行われます。
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)。
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のバージョンを示します。
- What's next for Windows 10 Updates[英語](Windows Blogs)
- Preparing the Windows 10 October 2020 Update Ready for Release[英語](Windows Blogs)
バージョン「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コマンドレットも同様に、これらのレジストリ値を直接または間接的に参照していると思われます。
- Process Monitor(Windows Sysinternals)
画面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)。
画面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"}
「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のコア部分が共通ということ |
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。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.
関連記事
- 次期Windows 10最新動向:リリース秒読みの「19H1」はこう変わる
間もなくリリースされるWindows 10の新しい機能アップデート「19H1」。それに実装される新機能をまとめてみた。また、同時に変更となるライフサイクルなどについても解説する。 - 【新元号発表目前!】Windows 10/Officeの新元号対応どうするどうなる!?
新元号への切り替えが2019年5月1日に行われる。Windows OS/Officeでこの新元号に対応するにはどうすればよいのか、注意すべき点はあるのかなどをまとめる。 - 【Windows 10】できる人は知っているキーボードショートカット
Windows 10でキーボードショートカットを使うと、マウスを使うよりも素早い操作が可能だ。ただ、種類も多く、知っていると便利なのに意外と使われていないものも多いようだ。ここでは基本的なキーボードショートカットを紹介する。 - Windows 10への移行計画を早急に進めるべき理由
本連載では、これからWindows 10への移行を本格的に進めようとしている企業/IT管理者に向け、移行計画、展開、管理、企業向けの注目の機能を解説していきます。第1回目は、「Windows 10に移行すべき理由」を説明します。