确定已安装的PowerShell版本

我如何确定计算机上安装的PowerShell版本,实际上是否安装了它?


使用$PSVersionTable.PSVersion来确定引擎版本。 如果该变量不存在,则认为该引擎是1.0版是安全的。

请注意$Host.Version(Get-Host).Version不可靠 - 它们仅反映主机的版本,而不是引擎。 PowerGUI,PowerShellPLUS等都是托管应用程序,他们将设置主机的版本以反映他们的产品版本 - 这是完全正确的,但不是您要查找的内容。

PS C:> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1

我会使用Get-Host$ PSVersionTable 。 正如Andy Schneider指出的那样,$ PSVersionTable在版本1中不起作用; 它是在第2版中引入的。

get-host

Name             : ConsoleHost
Version          : 2.0
InstanceId       : d730016e-2875-4b57-9cd6-d32c8b71e18a
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-GB
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

$PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.4200
BuildVersion                   6.0.6002.18111
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

要确定是否安装了PowerShell,可以检查注册表是否存在

HKEY_LOCAL_MACHINESoftwareMicrosoftPowerShell1Install

HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell3

并且如果它存在,值是否为1(针对安装),详见博客文章检查是否安装了PowerShell和版本。

要确定已安装的PowerShell的版本,可以检查注册表项

HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1PowerShellEnginePowerShellVersion

HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell3PowerShellEnginePowerShellVersion

要确定从.ps1脚本安装的PowerShell版本,可以使用以下单行命令,详细信息请参见PowerShell.com上的PowerShell版本。

$isV2 = test-path variable:psversiontable

同一个站点还提供了返回版本的功能:

function Get-PSVersion {
    if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
}
链接地址: http://www.djcxy.com/p/759.html

上一篇: Determine installed PowerShell version

下一篇: How do I get a YouTube video thumbnail from the YouTube API?