Tags: PowerShell, Linux, Mac OS, SSH
Als Microsoft die Öffnung von PowerShell für andere OS und die Freigabe als Open Source ankündigte, war noch nicht absehbar, wie sich das auf Windows auswirken würde. Nun ist klar, dass die Core-Version auf allen Plattformen die Zukunft gehört. Anwender werden unter Windows wohl einige Abstriche machen müssen.
Die neue Plattformstrategie für PowerShell bedeutet also nicht bloß, dass die CLI- und Script-Umgebung auf Linux und Mac OS portiert wird. Microsoft ist vielmehr daran gelegen, auf allen Systemen inklusive Windows eine einheitliche Implementierung zu bieten.
PowerShell 5.1 letzte Version für Windows
In einem Beitrag auf einem TechNet-Blog gab das PowerShell-Team nun einen Ausblick darauf, was diese Cross-Plattform-Ambitionen für Windows bedeutet. Die wesentliche Aussage besteht darin, dass Windows PowerShell, das in der Version 5.1 zum Lieferumfang von Windows 10 und Server 2016 gehört, nicht mehr weiterentwickelt wird.
Diese Variante soll stattdessen nur Bugfixes, aber keine neuen Features mehr erhalten. Die Roadmap spricht davon, dass Windows PowerShell 5.1 weiterhin Bestandteil der aktuellen Betriebssysteme sein soll. Sie macht aber keine längerfristigen Aussagen, etwa zu den Nachfolgern von Windows 10 oder Server 2016.
.NET Core als Basis
Windows PowerShell basiert bekanntlich auf dem .NET Framework, das es nur für Windows gibt. Für eine portable PowerShell entwickelte Microsoft daher .NET Core, das die Vorgaben von .NET Standard umsetzt (siehe dazu die .NET Standard FAQ). Die Portierung auf andere Systeme erfolgt unter Mithilfe der Open-Source-Community.
Bei .NET Core handelt es sich um ein Subset des .NET Framework, dem entsprechend eine Reihe von Technologien fehlt. Dazu zählt etwa die Windows Presentation Foundation (WPF), Windows Forms oder die Windows Workflow Foundation (siehe dazu: Choosing between .NET Core and .NET Framework). Entsprechend unterstützt PowerShell 6.0 Core keine Workflows.
Kompatibilität mit vorhandenen Modulen
Installiert man die aktuelle Beta 4 unter Windows x64 (eine 32-Bit-Version existiert vorerst nur für Windows 7), dann weist sie beim Start darauf hin, dass der Modulpfad von Windows PowerShell hinzugefügt wurde.
Dies geschieht deshalb, weil die meisten Cmdlets nicht portiert wurden. Aufgrund der Binärkompatibilität mit bestehenden .NET-Assemblies sollten sich die meisten vorhandenen Module weiternutzen lassen.
Installiert man PowerShell 6.0 Core Beta 4 unter Ubuntu, dann zeigt sich, dass die Zahl der eingebauten Module sehr überschaubar ist. Die meisten Cmdlets finden sich in den Kernmodulen Management, Security und Utility. Mit an Bord ist auch PowerShellGet, dem eine besondere Bedeutung zukommt, weil .NET Core aus einer Sammlung von NuGet-Paketen besteht.
Unklare Zukunft für PowerShell Web Access
Durch die Vereinheitlichung von PowerShell über mehrere Plattformen hinweg könnten weitere Windows-spezifische Features auf der Strecke bleiben. So ist etwa unklar, wie es mit PowerShell Web Access weitergeht, nachdem dieses bisher nur unter IIS läuft und Microsofts Web-Dienste auf anderen Betriebssystemen nicht verfügbar sind.
In Bezug auf PowerShell-Remoting sieht es so aus, als würde OpenSSH zum bevorzugten Mechanismus avancieren. Welche Rolle künftig WinRM spielt, bleibt abzuwarten.
ISE nicht mehr an Bord
Sichtbare Änderungen zeichnen sich auch bei der Tools-Ausstattung ab. PowerShell_ISE, die grafische Entwicklungsumgebung für PowerShell, ist bei PowerShell 6 Core nicht mehr an Bord. Microsoft setzt hier auf Visual Studio Code (VSC) inklusive PowerShell-Plugin. Dieses Tool wurde auf Basis von Web-Technologien entwickelt und ist ebenfalls Cross-Plattform verfügbar.
Die ISE als PowerShell-spezifische Entwicklungsumgebung bietet einige komfortable Features, die das generische VSC kaum unterstützen wird. Dazu zählen etwa Remote-Tabs oder PSEdit, mit dem sich Dateien remote bearbeiten lassen.
Verfügbarkeit
PowerShell 6.0 Core liegt wie erwähnt derzeit als Beta 4 vor. Microsoft möchte die finale Version gegen Ende des Jahres freigeben. Sie lässt sich parallel zu Windows PowerShell installieren.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
- PowerShell Core 6.0 für Windows, Mac und Linux offiziell verfügbar
- PowerShell-Modul für Exchange Online (EXO v2) unterstützt nun macOS und Linux
- VMware PowerCLI 10.0 für Windows, macOS und Linux: Installation, Anmeldung an vSphere, Upgrade
- VMware PowerCLI unter Ubuntu installieren
- PowerShell unter Linux installieren und verwenden
Weitere Links