PowerShell で Windows バージョンを取得する
-
PowerShell の
[System.Environment]
クラスを使用して Windows バージョンを取得する -
PowerShell の
Get-ComputerInfo
コマンドレットを使用して Windows バージョンを取得する -
PowerShell の
Get-WMIObject
コマンドレットで WMI クラスを使用して Windows バージョンを取得する -
systeminfo
レガシーコマンドの使用
コンピュータに搭載されている Windows オペレーティングシステムを取得する最速の方法は、winver
コマンドを使用することです。Windows PowerShell では、Windows バージョンのオペレーティングシステムを取得する方法が複数あります。これらについては、この記事で説明します。
PowerShell の [System.Environment]
クラスを使用して Windows バージョンを取得する
.NET ライブラリにアクセスできる場合は、[System.Environment]
クラスの OSVersion
プロパティにアクセスできます。
サンプルコード:
[System.Environment]::OSVersion.Version
出力:
Major Minor Build Revision
----- ----- ----- --------
10 0 22000 0
現在実行している現在の Windows バージョンのオペレーティングシステムを相互参照するために、公式 Microsoft ドキュメントを参照する場合があります。
ただし、Windows11 や WindowsServer 2019 などの最新のオペレーティングシステムを使用している場合は、Windows 10 と WindowsServer 2016 を表すメジャービルド 10 が引き続き表示されるため、正しいバージョンは表示されません。したがって、上記のコマンドは以下の Windows 10 および WindowsServer 2016 を実行している場合にのみ、適切な値が表示されます。
PowerShell の Get-ComputerInfo
コマンドレットを使用して Windows バージョンを取得する
Get-ComputerInfo
を単独で使用すると、多くのプロパティが出力されます。これらのプロパティセットから WindowsProductName
、Windows バージョン
、および OSHardwareAbstractionLayer
プロパティのみを呼び出して、Windows オペレーティングシステムのバージョンを取得できます。
サンプルコード:
Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
出力:
WindowsProductName WindowsVersion OsHardwareAbstractionLayer
------------------ -------------- --------------------------
Windows 10 Pro 2009 10.0.22000.1
以前の [System.Environment]
クラスと同様に、オペレーティングシステムが Windows 10 および WindowsServer 2016 バージョン以下を使用している場合、このコマンドレットは正しい値を表示します。
HKLM
レジストリをチェックし、Get-ComputerInfo
コマンドレットの Windows バージョンプロパティを表示する同様のコマンドがあります。
サンプルコード:
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId
出力:
2009
上記の Windows バージョンのプロパティは、オペレーティングシステムのビルド番号と呼ばれるものです。ビルド番号 2009 は、Windows 10 ビルドを表します。これは、このコマンドが Windows 10 および WindowsServer2016 以下のオペレーティングシステムにのみ適用されることを意味します。
PowerShell の Get-WMIObject
コマンドレットで WMI クラスを使用して Windows バージョンを取得する
また、Windows Management Instrumentation(WMI)クラスを使用して、オペレーティングシステムの現在のバージョンを確認する場合もあります。
サンプルコード:
(Get-WmiObject -class Win32_OperatingSystem).Caption
出力:
Microsoft Windows 11 Home
[System.Environment]
クラスや Get-ComputerInfo
コマンドレットとは異なり、最新バージョンを使用している場合、WMI オブジェクトは Windows オペレーティングシステムのバージョンを正しく表示します。
systeminfo
レガシーコマンドの使用
Windows PowerShell コマンドレットラッパーで systeminfo
legacy コマンドを使用して、詳細なオペレーティングシステムバージョンを出力することもできます。
systeminfo /fo csv | ConvertFrom-Csv | select OS*, System*, Hotfix* | Format-List
出力:
OS Name : Microsoft Windows 11 Home
OS Version : 10.0.22000 N/A Build 22000
OS Manufacturer : Microsoft Corporation
OS Configuration : Standalone Workstation
OS Build Type : Multiprocessor Free
System Boot Time : 21/12/2021, 5:10:47 pm
System Manufacturer : ASUSTeK COMPUTER INC.
System Model : ASUS TUF Gaming A15 FA506IC_FA506IC
System Type : x64-based PC
System Directory : C:\Windows\system32
System Locale : en-us;English (United States)
Hotfix(s) : 3 Hotfix(s) Installed.,[01]: KB5007040,[02]: KB5007215,[03]: KB5006755
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn