PowerShell Version abrufen

Migel Hewage Nimesha 30 Januar 2023
  1. Verwenden der Eigenschaft $PSVersionTable.PSVersion zum Abrufen der PowerShell-Version
  2. Verwenden Sie die Eigenschaft (Get-Host).Version, um die PowerShell-Version abzurufen
  3. Verwenden der Eigenschaft $host.Version zum Abrufen der PowerShell-Version
  4. Verwenden der Registrierung zum Abrufen der PowerShell-Version
PowerShell Version abrufen

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 der Eigenschaft $PSVersionTable.PSVersion zum Abrufen der PowerShell-Version

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
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.