winver による確認
winver をコマンドプロンプト/PowerShell/「ファイル名を指定して実行」のいずれかから実行すると、以下のような画面が表示され、Windows の詳細なバージョンを確認することができます。(以下画面では、Version 1703 (OS Build 15063.250))
しかし、winver では GUI で表示されてしまうため、自動化する場合などには不便です。ということで、PowerShell で winver と同等のバージョンが確認できる関数を作成していきましょう。
Version と OS Build をレジストリから取得
上記の 1703/15063/250 に当たる部分をそれぞれレジストリから取得します。winver と同じように、「Version xxxx (OS Build xxxxx.xxx)」の形式で出力されるように関数を作成します。
function Get-WindowsVersion {
$ReleaseID = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseID
$CurrentBuild = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name CurrentBuild).CurrentBuild
$UBR = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name UBR).UBR
"Version " + $ReleaseID + " (OS Build " + $CurrentBuild + "." + $UBR + ")"
}
おまけ
上記の関数で Windows のバージョンを確認することができますが、エディションを確認することはできません。エディションも確認したい場合は既定で用意されている「Get-WindowsEdition」を使いましょう。(要「管理者として実行」)
(Get-WindowsEdition -Online).Edition
また、Windows 10 のサービスオプション(CB とか CBB とか)ごとの最新バージョンは Windows 10 release information で確認することができます。