インストールされているPowerShellのバージョンの確認

コンピュータにインストールされているPowerShellのバージョンや、インストールされているかどうかを確認するにはどうしたらいいですか?

ソリューション

エンジンのバージョンを調べるには、$PSVersionTable.PSVersionを使用します。この変数が存在しない場合は、エンジンのバージョンが 1.0 であると考えてよいでしょう。

ただし、$Host.Versionおよび(Get-Host).Versionは信頼できません。 エンジンではなく、ホストのバージョンのみを反映します。PowerGUIです。 PowerGUI、PowerShellPLUSなどはすべてホストアプリケーションであり ホストのバージョンを自分たちの製品のバージョンを反映するように設定します。 version — これは完全に正しいのですが、あなたが探しているものではありません。

PS C:\> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1
解説 (10)

PowerShellがインストールされているかどうかを確認するには、レジストリにある

HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Install

および

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3

と、存在する場合は値が1(インストール済みの場合)であるかどうかを、ブログ記事 Check if PowerShell installed and version で詳しく説明しています。

インストールされているPowerShellのバージョンを確認するには、レジストリキーの

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\PowerShellVersion

.ps1 スクリプトからインストールされている PowerShell のバージョンを判断するには、PowerShell.com の [Which PowerShell Version Am I Running][2] で詳しく説明されているように、次のワンライナーを使用できます。

$isV2 = test-path variable:\psversiontable

同サイトでは、バージョンを返す関数も紹介されています。

function Get-PSVersion {
    if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
}

[2]: http://powershell.com/cs/blogs/tips/archive/2009/09/11/which-powershell-version-am-i-running.aspx

解説 (2)

PowerShellがインストールされているかどうかを確認するには

HKLM\Software\Microsoft\PowerShell\1 Install ( = 1 )

RC2またはRTMがインストールされているかどうかを確認するには、以下を使用します。

HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-00301) -- For RC2
HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-04309) -- For RTM

ソースはこちら本サイトをご覧ください。

解説 (0)