Wie kann ich feststellen, welche Version von PowerShell auf einem Computer installiert ist, oder ob sie überhaupt installiert ist?
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
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"}
}
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.