Archive for 6月 2017
PowerShell で OS のバージョンを取得する簡単な方法
比較的新しい PowerShell (Windows 10 1607 や Windows Server 2016 以降)には Get-ComputerInfo コマンドがありますので、OS バージョンを簡単に取得できます。
PS C:\> $PSVersionTable Name Value ---- ----- PSVersion 5.1.17134.81 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.17134.81 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 PS C:\> Get-ComputerInfo -Property WindowsBuildLabEx WindowsBuildLabEx ----------------- 17134.1.amd64fre.rs4_release.180410-1804
ただ、Get-ComputerInfo で Property を指定しても、全ての情報を取得しに行きますので、コマンドの実行完了までかなり時間がかかります。
コマンドプロンプトの ver コマンドの方が、軽くてお手軽です。(オブジェクトではなく文字列として取得することになるので、多少の加工は必要ですが。)
PS C:\> cmd /C ver Microsoft Windows [Version 10.0.17134.81]
ちなみに、Get-ComputerInfo で Property を指定した場合、コマンドの返り値は ComputerInfo ではなく、フィルターされた PSCustomObject になります。
PS C:\> (Get-ComputerInfo).GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True False ComputerInfo System.Object PS C:\> (Get-ComputerInfo -Property WindowsBuildLabEx).GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True False PSCustomObject System.Object