Как мога да определя коя версия на PowerShell е инсталирана на даден компютър и дали изобщо е инсталирана?
Използвайте $PSVersionTable.PSVersion
, за да определите версията на двигателя. Ако променливата не съществува, може да се приеме, че двигателят е версия 1.0
.
Имайте предвид, че $Host.Version
и (Get-Host).Version
не са надеждни - те отразяват
само версията на хоста, а не на двигателя. PowerGUI,
PowerShellPLUS и т.н. са хостинг приложения и
те ще зададат версията на хоста, за да отрази техния продукт
версия —, което е напълно правилно, но не е това, което търсите'.
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
За да определите версията на PowerShell, която е инсталирана от .ps1 скрипт, можете да използвате следния едносричен текст, както е описано в 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
Източник: този уебсайт.