我怎样才能确定计算机上安装的是什么版本的PowerShell,以及它是否被安装了?
使用$PSVersionTable.PSVersion来确定引擎的版本。如果该变量不存在,可以安全地认为引擎是1.0版本。
$PSVersionTable.PSVersion
1.0
注意$Host.Version和(Get-Host).Version是不可靠的 - 它们只反映了主机的版本,而不是引擎的版本。 它们只反映主机的版本,而不是引擎的版本。PowerGUI。 PowerShellPLUS等都是宿主应用程序,它们会设置宿主版本。 他们将设置主机的版本以反映他们的产品 版本 —这完全正确,但不是你要找的。
$Host.Version
(Get-Host).Version
PS C:\> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 4 0 -1 -1
要确定PowerShell是否已经安装,你可以检查注册表中是否存在
HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Install
和
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3
以及如果存在,其值是否为1(表示已安装),详见博文检查PowerShell是否安装和版本。
要确定所安装的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。
$isV2 = test-path variable:\psversiontable
该网站还提供了一个函数来返回版本。
function Get-PSVersion { if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"} }
要检查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
来源。本网站。
使用
$PSVersionTable.PSVersion
来确定引擎的版本。如果该变量不存在,可以安全地认为引擎是1.0
版本。注意
$Host.Version
和(Get-Host).Version
是不可靠的 - 它们只反映了主机的版本,而不是引擎的版本。 它们只反映主机的版本,而不是引擎的版本。PowerGUI。 PowerShellPLUS等都是宿主应用程序,它们会设置宿主版本。 他们将设置主机的版本以反映他们的产品 版本 —这完全正确,但不是你要找的。要确定PowerShell是否已经安装,你可以检查注册表中是否存在
和
以及如果存在,其值是否为1(表示已安装),详见博文检查PowerShell是否安装和版本。
要确定所安装的PowerShell的版本,你可以检查注册表的键值
和
要从.ps1脚本中确定所安装的PowerShell的版本,可以使用下面的单行代码,详见PowerShell.com上的Which PowerShell Version Am I Running。
该网站还提供了一个函数来返回版本。
要检查PowerShell是否已经安装,请使用。
检查是否安装了RC2或RTM,请使用。
来源。本网站。