Warum Admins powershell.exe und pwsh.exe nutzen sollten
Während viele Admins die neuere PowerShell-Version nutzen wollen, sollte auch powershell.exe erhalten bleiben, um Änderungen nicht zu unterbrechen.
Neueinsteiger in PowerShell Core fragen sich vielleicht, warum es eine pwsh.exe-Datei gibt, wenn bereits eine ausführbare powerhell.exe für Windows PowerShell existiert.
Es gibt eine kleine Hintergrundgeschichte, die erklärt, warum Administratoren die beiden PowerShell-Versionen auf ihren Windows-Rechnern kennen sollten.
Microsoft hat sein PowerShell Task Automation Framework im August 2016 auf ein Open-Source-Projekt umgestellt und für den Betrieb auf Linux- und Mac-Plattformen portiert. In der Übersetzung mit der ersten offiziellen Version von PowerShell Core 6.0 im Januar 2018 ging jedoch die volle Kompatibilität mit allen Cmdlets verloren, die Administratoren mit Windows PowerShell hatten. Es gab weitere Änderungen in PowerShell Core 6.0, die sich darauf auswirkten, wie IT-Mitarbeiter ihre Infrastruktur verwalteten, wie beispielsweise die Entfernung der Workflow-Funktion.
Das PowerShell-Team wusste frühzeitig, dass Administratoren mit einer hohen Investition in die PowerShell-Automatisierung möglicherweise sowohl mit der reinen Windows- als auch mit der Open-Source-Version PowerShell arbeiten müssen, bis diese die Funktionsparität erreicht hat. Das Team hielt diese Abwärtskompatibilität aufrecht, indem es PowerShell Core einen anderen Namen für die ausführbare Datei gab.
Administratoren, die PowerShell Core ausprobieren möchten, können weiterhin die ausführbare Datei powershell.exe für Windows PowerShell verwenden, während Core eine ausführbare Datei namens pwsh.exe nutzt. Diese Anordnung ermöglicht es dem Benutzer, beide Versionen nebeneinander zu betreiben. Umgebungen, die von Skripten abhängen, die noch nicht implementierte Funktionen in PowerShell Core verwenden, können mit Windows PowerShell, dessen neueste Version 5.1 aus dem Jahr 2016 stammt, verwendet werden.
Das ist nicht die einzige Veränderung. Das Projektteam verwendet auch einen anderen Ordner für PowerShell Core unter Windows. Der Pfad für die 64-Bit-Version von Windows-only powershell.exe lautet beispielsweise C:\Windows\System32\WindowsPowerShell\v1.0\, während für PowerShell Core 6.1 der Pfad C:\Program Files\PowerShell\6\ für die ausführbare Datei pwsh.exe lautet.
Jeffrey Snover, technischer Mitarbeiter von Microsoft und Erfinder von PowerShell, sagte, dass Microsoft während der Entwicklungsphase für Windows PowerShell weiterhin hinter der veralteten Version seines Automatisierungs-Tools stehen wird.
„Es wird für immer unterstützt werden. Aber es wird keine[weitere] Feature-Entwicklung[für Windows PowerShell] geben“, sagte Snover. Snover, der auch der Architekt von Azure Stack und der Chefarchitekt der Azure Storage and Cloud Edge Group bei Microsoft ist, sagt, dass er keine Bedenken hätte, wenn Administratoren aufgrund der umfangreichen Funktionalität und des anhaltenden Supports von Microsoft bei Windows PowerShell bleiben würden.
Snover wies jedoch darauf hin, dass PowerShell Core die Azure Cloud Shell auf der Cloud-Plattform von Microsoft ausführt. Das bedeutet, dass Administratoren, die PowerShell zur Verwaltung von Azure-Workloads verwenden möchten, sich damit vertraut machen müssen, wie sie sich von der Windows-Version unterscheidet, wie beispielsweise die Groß-/Kleinschreibung bei Dateien und das Entfernen bestimmter Aliase, die mit Linux-Befehlen kollidieren.
Das PowerShell-Team hat die Paritätslücke mit der Veröffentlichung von PowerShell Core 6.1 im September geschlossen. Das Team sagt, dass die Version mit den mehr als 1.900 Cmdlets funktioniert, die in den neuesten Versionen von Windows ausgeliefert werden – vorausgesetzt, die Benutzer installieren das Windows Compatibility Pack for.NET Core auf ihren Computern. Aber es gibt noch einige wichtige Module, wie zum Beispiel das Active Directory-Modul, die nicht mit dem Release 6.1 kompatibel sind.
Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!