PowerShell: Version ändern leicht gemacht
Wie schon in einem früheren Beitrag erklärt, bit es verschiedene PowerShell Versionen. Doch man kann auch ganz einfach die Version ändern, die verwendet werden soll. Normalerweise sollte dieser Fall nicht oft auftreten, allerdings ist die Möglichkeit gegeben.
In dem verlinkten Beitrag sind die verschiedenen Versionen in einer Liste zusammengestellt. Zum Ändern der Version muss die Versionsnummer angegeben werden, die ihr ebenfalls in dieser Übersicht findet. Das Ganze funktioniert mit einem einfachen PowerShell Befehl.
PowerShell Version ändern
Zum Ändern der PowerShell Version wird folgender Befehl benötigt:
powershell -version 2.0
Nach dem Wechseln der Version ist zu beachten, dass unter Umständen nicht alle Cmdlets zur Verfügung stehen. Nach dem Parameter -version
muss die Versionsnummer angegeben werden. Wie bereits genannt findet ihr die verschiedenen PowerShell Versionen für Windows, MacOS und Linux in dem oben verlinkten Beitrag.
Script in bestimmter Verison starten
Außerdem besteht die Möglichkeit ein PowerShell Script in einer bestimmten Version zu starten. Dafür muss man nicht global die Version ändern. Der Befehl dazu lautet wie folgt:
powershell -Version 2 -File $MyInvocation.MyCommand.Definition # ALTERNATIV powershell -version 2 -file 'yourfile.ps1'
Mit diesem Befehl startet man ein bestimmten Script in einer bestimmten PowerShell Verison. $MyInvocation.MyCommand.Definition
bedeutet, dass das Script selbst nochmal in der geänderten Version gestartet wird.
Folgendes Script startet sich in der Version 2 neu, wenn die installierte PSVersion größer ist als V 2.
if ($PSVersionTable.PSVersion -gt [Version]"2.0") { powershell -Version 2 -File $MyInvocation.MyCommand.Definition exit }
Ich selbst hatte noch nie einen Grund die zu verwendende Version zu ändern. Allerdings ist es möglich und es gibt sicherlich gute Anwendungsgründe zum Wechseln.
Wenn man große Scripte global verteilt ist es notwendig einige Tests zu durchlaufen. Das wäre ein gutes Beispiel für einen Wechsel der eingesetzten Version. Somit kann man ganz einfach prüfen, ob das Script ohne Fehler auf allen verschiedenen Clients beendet wird.