Ako môžem zistiť, aká verzia prostredia PowerShell je nainštalovaná v počítači a či je vôbec nainštalovaná?
Na určenie verzie motora použite $PSVersionTable.PSVersion
. Ak premenná neexistuje, je možné predpokladať, že motor je verzie 1.0
.
Všimnite si, že $Host.Version
a (Get-Host).Version
nie sú spoľahlivé - odrážajú
iba verziu hostiteľa, nie motora. PowerGUI,
PowerShellPLUS atď. sú všetky hostiteľské aplikácie a
nastavia verziu hostiteľa tak, aby odrážala ich produkt
verziu — čo je úplne správne, ale nie je to, čo hľadáte.
PS C:\> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
4 0 -1 -1
Ak chcete zistiť, či je prostredie PowerShell nainštalované, môžete v registri skontrolovať existenciu
HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Install
a .
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3
a ak existuje, či je hodnota 1 (pre nainštalované), ako je podrobne opísané v príspevku na blogu Overiť, či je nainštalovaný PowerShell a jeho verzia.
Ak chcete zistiť verziu prostredia PowerShell, ktorá je nainštalovaná, môžete skontrolovať kľúče registra
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion
a .
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\PowerShellVersion
Na určenie verzie prostredia PowerShell, ktorá je nainštalovaná zo skriptu .ps1, môžete použiť nasledujúci jednoriadkový príkaz, ktorý je podrobne uvedený na stránke PowerShell.com v časti Which PowerShell Version Am I Running.
$isV2 = test-path variable:\psversiontable
Na tej istej stránke je uvedená aj funkcia na vrátenie verzie:
function Get-PSVersion {
if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
}
Ak chcete skontrolovať, či je prostredie PowerShell nainštalované, použite:
HKLM\Software\Microsoft\PowerShell\1 Install ( = 1 )
Ak chcete skontrolovať, či je nainštalovaný RC2 alebo RTM, použite:
HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-00301) -- For RC2
HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-04309) -- For RTM
Zdroj: táto webová stránka.