Ermitteln der installierten PowerShell-Version

Wie kann ich feststellen, welche Version von PowerShell auf einem Computer installiert ist, oder ob sie überhaupt installiert ist?

Lösung

Verwenden Sie $PSVersionTable.PSVersion, um die Motorversion zu ermitteln. Wenn die Variable nicht existiert, kann man davon ausgehen, dass der Motor Version 1.0 ist.

Beachten Sie, dass $Host.Version und (Get-Host).Version nicht zuverlässig sind - sie spiegeln Sie geben nur die Version des Hosts wieder, nicht die der Engine. PowerGUI, PowerShellPLUS, etc. sind alle Host-Anwendungen und sie setzen die Version des Hosts so, dass sie ihre Produkt Version — das ist völlig korrekt, aber nicht das, wonach Sie suchen.

PS C:\> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1
Kommentare (10)

Um festzustellen, ob PowerShell installiert ist, können Sie die Registrierung auf das Vorhandensein von

HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Install

und

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3

und, falls vorhanden, ob der Wert 1 (für installiert) ist, wie im Blogbeitrag Prüfen, ob PowerShell installiert und Version beschrieben.

Um die installierte Version von PowerShell zu ermitteln, können Sie die Registrierungsschlüssel überprüfen

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion

und

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\PowerShellVersion

Um die installierte Version von PowerShell aus einem .ps1-Skript zu ermitteln, können Sie den folgenden Einzeiler verwenden, wie auf PowerShell.com in Welche PowerShell-Version wird ausgeführt beschrieben.

$isV2 = test-path variable:\psversiontable

Auf derselben Website finden Sie auch eine Funktion zur Rückgabe der Version:

function Get-PSVersion {
    if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
}
Kommentare (2)

Um zu überprüfen, ob PowerShell installiert ist, verwenden Sie:

HKLM\Software\Microsoft\PowerShell\1 Install ( = 1 )

Um zu prüfen, ob RC2 oder RTM installiert ist, verwenden Sie:

HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-00301) -- For RC2
HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-04309) -- For RTM

Quelle: diese Website.

Kommentare (0)