PowerShell で Windows バージョンを取得するための多くの方法を学ぶ方法

お使いのシステムのトラブルシューティングで、Windowsのバージョンを素早く確認する方法が必要ですか?幸運なことに、PowerShellを使用して現在のWindowsバージョンを取得できます。

使用しているWindowsのバージョンを確認することは、システムを管理する上で重要です。そして、このチュートリアルでは、Windowsバージョンを取得するさまざまな方法を学びます。

詳細を読んで、自分に最適な方法を選択してください!

前提条件

このチュートリアルは実演形式です。一緒に進めるには、Windowsシステムが必要です。このチュートリアルでは、PowerShell 7を使用したWindows 11が利用されています。

PowerShellを使用してWindowsのバージョンを取得する

PowerShellで複雑な作業に取り組む前に、システム情報の取得など、基本から始めましょう。PowerShellを使用してsysteminfoコマンドを使って、Windowsバージョンを素早く取得できます。

PowerShellを開き、次のコマンドを実行して、OSバージョンを含むシステムの詳細情報を取得します。

systeminfo.exe

以下に、10.0.22622 N/A ビルド22622を含むOSの詳細情報が表示されます。

Getting the Windows version via the SystemInfo

特定のプロパティを選択してWindowsバージョンを取得する

素晴らしいです!ちょうど詳細なシステム情報を取得しました。しかし、よく見ると、コマンドは短いですが、出力は多く見えます。

特定のプロパティ値のみを取得したい場合、Get-ComputerInfoコマンドはWindowsバージョンなどの特定のシステム情報を取得するための最も迅速な方法の1つです。

以下のコマンドを実行して、Windowsバージョン、製品名、Windowsカーネルのバージョン、およびシステムハードウェアの動作ハードウェア抽象化(OHA)を取得できます。

Get-ComputerInfo | Select-Object OSName, OSVersion, OsHardwareAbstractionLayer

以下のように、Select-ObjectコマンドをGet-ComputerInfoコマンドにパイプ処理することで、選択したプロパティのみを取得できます。

Getting the Windows version with the Get-ComputerInfo command

Windows 10 Proがインストールされており、そのバージョンは2009です。

System.Environmentクラスを介してWindowsバージョンを取得する別の方法は、System.Environmentクラスを使用する方法です。このクラスは、OSバージョン、ユーザー名、その他の環境変数など、システム情報にアクセスする機能を提供します。

System.Environmentクラスには、現在のOSに関する情報を含むOSVersionというプロパティもあります。

以下のコマンドを実行して、System.EnvironmentクラスからOSVersion.Versionプロパティを呼び出します。コロン2つ(::)記号は、クラスから静的メソッドを呼び出すために使用されます。

[System.Environment]::OSVersion.Version

以下のように、出力は次のようにOSVersion情報を表示します:

Property Value Description
Major 10 Despite saying 10, this may indicate Windows 10 or 11 as both use the same Major version.
Minor 0 There are two types of Windows releases, major and minor. Major releases are the “big” updates like the Creator update, and minor releases are smaller cumulative updates.
Build 22622 The number used to check the Windows version. In this case, it is for version 22H2.
Revision 0 Denotes a sub-version of the build.
Getting the windows via the System.Environment class

Windowsバージョンを取得するための特定のプロパティを掘り下げる

PowerShellコマンドレットは、システムに関する情報をいくつか提供します。ただし、Windowsバージョンだけを取得する場合は、Get-ItemPropertyコマンドレットも別のオプションです。このコマンドレットのコマンドを使用すると、レジストリにアクセスしてさまざまなプロパティを取得できます。

以下のコマンドを実行して、レジストリ(Get-ItemProperty)にアクセスし、現在のWindowsバージョン(HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion)のDisplayVersionを取得します。表示バージョン(ReleaseIDは非推奨)は、各Windowsバージョンの一意の識別子です。

(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").DisplayVersion

以下のコマンドでは、現在のWindowsバージョンである22H2を取得して印刷します。

Getting the Windows version via the Get-ItemProperty command

現在のWindowsバージョンのクエリ

プロパティにアクセスすることで現在のWindowsバージョンを取得できる方法を見てきました。そして、プロパティについて話している間に、Get-CimInstanceコマンドレットにこんにちはと言ってみましょう。

Get-CimInstanceコマンドレットは、Windows Management Instrumentation(WMI)オブジェクトをクエリしてWindowsバージョンを取得する別の方法です。これにより、システムハードウェアからさまざまなプロパティにアクセスできます。

次のコマンドを実行して、Win32_OperatingSystemクラス(WMIオブジェクト)をクエリし、現在のWindows .versionを取得します。 Win32_OperatingSystemクラスにはOSに関する情報が提供されます。

(Get-CimInstance Win32_OperatingSystem) | Select-Object Caption, Version

以下の出力を見ると、この出力はSystem.Environmentクラスを使用した場合と似ています。ただし、今回はプロパティヘッダーがなく、WMIオブジェクトからは利用できないため、リビジョンも省略されています。

Querying WMI for the current Windows version

結論

このチュートリアルを通じて、PowerShellで現在のWindowsバージョンを取得するさまざまな方法を学びました。PowerShellでWindowsバージョンを確認することは、有益なスキルです。システムの問題をトラブルシューティングしたり、現在のOSとアプリケーションの互換性をチェックする際に便利です。

さて、Windowsバージョンを確認するスクリプトを作成してみませんか?特定の時間にスクリプトを実行するタスクをスケジュールするのも良いでしょう。

Source:
https://adamtheautomator.com/powershell-to-get-the-windows-version/