Určenie nainštalovanej verzie prostredia PowerShell

Ako môžem zistiť, aká verzia prostredia PowerShell je nainštalovaná v počítači a či je vôbec nainštalovaná?

Riešenie

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
Komentáre (10)

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"}
}
Komentáre (2)

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.

Komentáre (0)