Windows 10 を使っていて、一概に Windows 10 といっても定期的に大きなバージョンアップが行われていて、
そのバージョン次第でサポート切れみたいなこともあります。
今までの Windows に比べても今、このPC バージョンいくつ何だっけ? という確認をしなければならない場面が多い気がします。
視覚的に確認
複数確認できる場所(手順)がありますが、とにかく以下の手順が一番手っ取り早いです。
1) Windowsキー + R
キーを押して、ファイル名を指定して実行のウィンドウを表示
2) winver
と入力してOK
3) Windows のバージョン情報が表示されます
上記の赤枠の部分です。バージョンは、20H2
( 20H2 (OS Build 19042.928)
)ということになります。
PowerShell で 取得
ウィンドウ等で視覚的に確認でもよいんですが、文字情報(文字列)としてバージョンを取得したい場合もあるかもしれません。PowerShellを使いましょう。
20H2
よりも前か、 20H2
(以降) か でやり方がちょっと異なります。
Windows 10 20H2 よりも前
以下のいずれかのコマンドで取得できます。後者のコマンドだとちょっと時間がかかります。
$CurrentVersion = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" "Version " + $CurrentVersion.ReleaseId + " (OS Build " + $CurrentVersion.CurrentBuild + "." + $CurrentVersion.UBR + ")"
$ComputerInfo = Get-ComputerInfo "Version " + $ComputerInfo.WindowsVersion + " (OS Build " + $ComputerInfo.OsBuildNumber + "." + $ComputerInfo.WindowsUBR + ")"
実行例
PS C:\Users> $CurrentVersion = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" PS C:\Users> "Version " + $CurrentVersion.ReleaseId + " (OS Build " + $CurrentVersion.CurrentBuild + "." + $CurrentVersion.UBR + ")" Version 2004 (OS Build 19041.572)
Version 2004 (OS Build 19041.572)
というバージョン情報が取得できています。
Windows 10 20H2
Windows 10 20H2 (以降) でも上記のコマンドでバージョン情報は取得できます。
Windows10 20H2 の PC で実行すると以下のようになります。
PS C:\Users> $CurrentVersion = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" PS C:\Users> "Version " + $CurrentVersion.ReleaseId + " (OS Build " + $CurrentVersion.CurrentBuild + "." + $CurrentVersion.UBR + ")" Version 2009 (OS Build 19042.928)
Version 2009 (OS Build 19042.928)
というバージョン情報が取得できています。
2009
というのは内部的なバージョンで間違った値ではないんですが、
Windows 10 の バージョンの表記が分かりにくいとかいう色々なことがあったらしく、
内部的にはこれまでと同じルールの 2009
という値を持ってますが、 バージョンのラベルとして 20H2
という表記になったようです。
では、20H2
という値はどこから取ればいいのかというと、
レジストリの \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
の DisplayVersion
に保持されているので、そこから取得します。
先のPowerShellのコマンド で $CurrentVersion.ReleaseId
としていた部分を $CurrentVersion.DisplayVersion
に変更すればよいことになります。
というわけで実行するコマンドとしては以下になります。
$CurrentVersion = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" "Version " + $CurrentVersion.DisplayVersion + " (OS Build " + $CurrentVersion.CurrentBuild + "." + $CurrentVersion.UBR + ")"
ワンライナーにするなら以下(セミコロンで区切っているだけ)
$CurrentVersion = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"; "Version " + $CurrentVersion.DisplayVersion + " (OS Build " + $CurrentVersion.CurrentBuild + "." + $CurrentVersion.UBR + ")"
実行例
PS C:\Users> $CurrentVersion = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"; "Version " + $CurrentVersion.DisplayVersion + " (OS Build " + $CurrentVersion.CurrentBuild + "." + $CurrentVersion.UBR + ")" Version 20H2 (OS Build 19042.928)
無事に Version 20H2 (OS Build 19042.928)
という値を取得できました。
両方まとめると
Windows 10 20H2 よりも前と 20H2以降 の環境をまとめて扱うなら、
上記に書いてきた内容をひとまとめにして以下のようなコマンドで値を取得できます。
$CurrentVersion = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" if ($CurrentVersion.DisplayVersion -ne $null) { $DispVersion = $CurrentVersion.DisplayVersion } else { $DispVersion = $CurrentVersion.ReleaseId } "Version " + $DispVersion + " (OS Build " + $CurrentVersion.CurrentBuild + "." + $CurrentVersion.UBR + ")"