Zukunft von PowerShell: Aus für Windows-Version, Wechsel auf Core

    PowerShell 6.0 Core Beta 4 SetupAls Microsoft die Öffnung von Power­Shell für andere OS und die Frei­gabe als Open Source ankün­digte, war noch nicht abseh­bar, wie sich das auf Windows aus­wirken würde. Nun ist klar, dass die Core-Version auf allen Platt­formen die Zu­kunft gehört. Anwen­der werden unter Windows wohl einige Ab­striche machen müssen.

    Die neue Plattform­strategie 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 Betriebs­systeme 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.

    .NET Core repräsentiert eine Teilmenge des kompletten Frameworks

    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.

    Der Pfad zu den vorhandenen Modulen von Windows PowerShell wird automatisch eingebunden.

    Dies geschieht deshalb, weil die meisten Cmdlets nicht portiert wurden. Aufgrund der Binär­kompa­tibilität mit bestehenden .NET-Assemblies sollten sich die meisten vorhandenen Module weiternutzen lassen.

    Eingebaute Module von PowerShell 6 Core unter Ubuntu

    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 Betriebs­systemen 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 Entwicklungs­umgebung 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.

    Remote-Session über das Menü Datei öffnen

    Die ISE als PowerShell-spezifische Entwicklungs­umgebung 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.

    Keine Kommentare