PowerShell Version abrufen
-
Verwenden der Eigenschaft
$PSVersionTable.PSVersion
zum Abrufen der PowerShell-Version -
Verwenden Sie die Eigenschaft
(Get-Host).Version
, um die PowerShell-Version abzurufen -
Verwenden der Eigenschaft
$host.Version
zum Abrufen der PowerShell-Version - Verwenden der Registrierung zum Abrufen der PowerShell-Version
PowerShell ist eine Art Eingabeaufforderung, die komplexer ist. Es verfügt über eine große Anzahl vorbereiteter Cmdlets und die Möglichkeit, das .NET-Framework/C# in verschiedenen Szenarien zu nutzen. PowerShell ISE ist eine grafische Benutzeroberfläche zum Debuggen und Bearbeiten von Skripts unter Windows. In PowerShell kann dasselbe auf verschiedene Arten geschehen. Es gibt also hauptsächlich vier Möglichkeiten, wie wir die Version von PowerShell erhalten können, und sie sind unten angegeben.
Verwenden der Eigenschaft $PSVersionTable.PSVersion
zum Abrufen der PowerShell-Version
Die erste Methode, die wir untersuchen, ist also das PSVersion-Attribut in der automatischen Variablen $PSVersionTable
. Hier repräsentiert es die PowerShell-Engine.
PS52> $PSVersionTable.PSVersion
Ausgabe:
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 1320
$PSVersionTable
ist eine schreibgeschützte Hash-Tabelle, die Informationen über die Version der PoweShell-Engine sowie die PSEdition enthält. Dieser Parameter kann entweder Desktop oder Core sein und liefert Ihnen zusätzliche Informationen über die von Ihnen verwendete PowerShell-Edition.
Die automatisierte Variable $PSVersionTable
ist lokal genauso genau wie aus der Ferne. Ich habe im Beispiel unten die umschließende $PSVersionTable. PSVersion innerhalb eines Skriptblocks und die Ausführung auf einem Remotecomputer gibt dieselbe Version zurück.
PS> Invoke-Command -ComputerName 11.0.0.3 -ScriptBlock {$PSVersionTable.PSVersion} -Credential $cred
Ausgabe:
Verwenden Sie die Eigenschaft (Get-Host).Version
, um die PowerShell-Version abzurufen
Die Idee von Hosts wird in PowerShell verwendet. Es ist nicht die PowerShell-Engine, die das Problem verursacht. PowerShell-Hosts sind PowerShell-Code-Editor/Konsole mit einem integrierten Terminal. Der Host könnte über eine vollständig eigenständige Edition von PowerShell verfügen.
Wenn (Get-Host).Version
verwendet wird, gibt es eine Versionsnummer ähnlich der PowerShell-Version aus.
PS52> (Get-Host).Version
Ausgabe:
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 1320
Die Version von Get-Host im integrierten Terminal ist jedoch nicht immer gleich. Obwohl der Host normalerweise dieselbe Edition der PowerShell-Engine darstellt, ist dies nicht immer der Fall. Wenn Get-Host auf einem lokalen Computer aufgerufen wird, gibt es immer die gleiche Version zurück, aber niemals auf Remote-Systemen.
Daher ist die Verwendung von Get-Host für alles eine schreckliche Idee.
Verwenden der Eigenschaft $host.Version
zum Abrufen der PowerShell-Version
.$host.Version
ist eine weitere Methode, um die Version der PowerShell-Engine abzurufen. Get-Host
liefert das gleiche Ergebnis wie die Variable $host, eine vollautomatische Variable.
PS52> $host.Version
Ausgabe:
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 1320
Dies ist der Get-host
-Methode ziemlich ähnlich.
Verwenden der Registrierung zum Abrufen der PowerShell-Version
Sie können die Registrierung auch nur dann überprüfen, wenn Sie PowerShell nicht starten möchten. Die Edition von PowerShell wird im Registrierungsschlüsselpfad wie folgt gespeichert HKLM:\SOFTWARE\Microsoft\PowerShell\3\
und auch als Wert. Get-ItemProperty
kann verwendet werden, um auf den PowerShellVersion-Wert in diesem Registrierungseintrag zu verweisen.
PS51> (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion
Ausgabe:
5.1.19041.1
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.