2017年5月23日

【PowerShell】Windowsのバージョンを取得する


通常、Windowsのバージョンを取得するには、systeminfo.exeを実行すれば取得できます。

systeminfo.exe

PS C:\work> systeminfo.exe

ホスト名:               USERPC
OS 名:                  Microsoft Windows 10 Pro
OS バージョン:          10.0.14393 N/A ビルド 14393
OS 製造元:              Microsoft Corporation
OS 構成:                スタンドアロン ワークステーション
OS ビルドの種類:        Multiprocessor Free
登録されている所有者:   USER01
登録されている組織:     PC
プロダクト ID:          00000-00000-00000-00000
最初のインストール日付: 2016/09/26, 21:13:08
システム起動時間:       2017/05/20, 10:49:18
システム製造元:         xxxxxx
システム モデル:        xxxxxx
システムの種類:         x64-based PC
プロセッサ:             1 プロセッサインストール済みです。
                        [01]: Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~3401 Mhz
BIOS バージョン:        American Megatrends Inc. 4.6.4, 2011/12/23
-以下略-
ただ、これだとその他の情報もたくさん出てきて、あまりスマートとは言えません。


そこで次の2つの方法で取得してみました。

.NET

.NETクラスを利用した方法です。
PS C:\work> [System.Environment]::OSVersion

Platform ServicePack Version      VersionString
-------- ----------- -------      -------------
 Win32NT             10.0.14393.0 Microsoft Windows NT 10.0.14393.0
ほんとにバージョンだけの表示です。
シンプルですが、数字だけだとWindows10なのかどうなのかがいまいちよく分かりません。

WMI

Windows Management Instrumentation (WMI)を利用した方法です。
PS C:\work> Get-WmiObject Win32_OperatingSystem | Format-List Caption, Version


Caption : Microsoft Windows 10 Pro
Version : 10.0.14393
Get-WmiObjectでWMIオブジェクトを取得して、特定のプロパティ(Caption, Version)だけ表示しています。
これならWindows10ということも一目瞭然で、なおかつバージョンの数字も分かります。
この方法が一番すっきりしてて分かりやすい感じです。



スポンサーリンク