Einführung in PowerShell 7.0

Heute freuen wir uns, die Veröffentlichung der öffentlichen (GA)  Version von PowerShell 7.0 bekannt zu geben ! Zunächst möchten wir unseren vielen Mitwirkenden dafür danken,  dass sie diese Version durch den Austausch von Code, Tests, Dokumentation und Feedback zu Problemen ermöglicht haben. PowerShell 7 wäre ohne Ihre Hilfe nicht möglich gewesen.



Was ist PowerShell 7?


Für Anfänger ist PowerShell 7 das neueste wichtige Update für PowerShell, ein plattformübergreifendes (Windows, Linux und macOS) Automatisierungstool und eine Konfigurationsinfrastruktur, die für die Arbeit mit strukturierten Daten (z. B. JSON, CSV, XML usw.), einer REST-API, optimiert sind und Objektmodelle. PowerShell enthält eine Befehlszeilen-Shell, eine objektorientierte Skriptsprache und eine Reihe von Tools zum Ausführen von Skripten / Cmdlets und zum Verwalten von Modulen.

Vor drei Jahren haben wir PowerShell Core 6 als brandneue Version von PowerShell angekündigt. Basierend auf .NET Core führte PowerShell Core plattformübergreifende Unterstützung für Windows, MacOS und Linux, SSH-basiertes PowerShell Remoting, deutlich verbesserte REST- und JSON-Unterstützung, offizielle Docker-Container und vieles mehr ein. Darüber hinaus war dies die erste Version von PowerShell, die unter einer Open Source-Lizenz (MIT) erstellt wurde und langjährige PowerShell-Enthusiasten und Anfänger dazu ermutigt, direkt zum Quellcode, zu Tests und zur Dokumentation beizutragen.

Nach drei erfolgreichen Versionen von PowerShell Core freuen wir uns über PowerShell 7, das nächste Kapitel in der kontinuierlichen Entwicklung von PowerShell. In PowerShell 7 zusätzlich zu den üblichen vielen neuen Cmdlets / APIs und FehlerkorrekturenWir führen eine Reihe neuer Funktionen ein, darunter:

  • Pipeline-Parallelisierung mit ForEach-Object-Parallel
  • Neue Betreiber:
    • Ternärer Operator: a? b: c
    • Pipelinekettenbetreiber: || und &&
    • Null-Koaleszenz-Aussagen: ?? und ?? =
  • Vereinfachte und dynamische Fehleranzeige und das Cmdlet Get-Error zur einfacheren Untersuchung von Fehlern
  • Eine Kompatibilitätsstufe, mit der Benutzer Module in eine implizite Windows PowerShell-Sitzung importieren können
  • Automatische Update-Benachrichtigungen
  • Möglichkeit, DSC-Ressourcen direkt aus PowerShell 7 aufzurufen (experimentell)

Eine vollständigere Liste der Funktionen und Korrekturen finden Sie  hier .

Ein Upgrade von PowerShell Core 6.x auf 7.0 bedeutet auch ein Upgrade von .NET Core 2.x auf 3.1. .NET Core 3.1 gibt viele der .NET Framework-APIs zurück (insbesondere unter Windows) und bietet eine deutlich höhere Abwärtskompatibilität mit vorhandenen Windows PowerShell-Modulen. Dies umfasst viele Module unter Windows, die GUI-Funktionen wie Out-GridView und Show-Command erfordern, sowie viele Rollenverwaltungsmodule, die als Teil von Windows ausgeliefert werden. Weitere Informationen finden Sie in unserer Modulkompatibilitätstabelle , in der gezeigt wird, wie Sie die neuesten, modernen Module verwenden können, die mit PowerShell 7 funktionieren.

Wenn Sie PowerShell Core 6.x in der Vergangenheit aufgrund von Modulkompatibilitätsproblemen nicht verwenden konnten, kann dies der Fall sein, wenn Sie einige der Funktionen nutzen, die wir bereits seit dem Start des Core-Projekts bereitgestellt haben!

Cool! Wie bekomme ich PowerShell 7?


Lesen Sie zunächst die Installationsdokumentation für  WindowsMacOS oder  Linux . Abhängig von Ihrer Betriebssystemversion und dem bevorzugten Paketformat kann es verschiedene Installationsmethoden geben.

Wenn Sie bereits wissen, was zu tun ist, und nur nach einem Binärpaket suchen (sei es MSI, ZIP, RPM oder etwas anderes), gehen Sie zu unserem neuesten Versions-Tag auf GitHub .

Alternativ können Sie eines unserer vielen Docker-Bilder verwenden . Weitere Informationen zu deren Verwendung finden Sie in unserem PowerShell-Docker-Repository .

Welche Betriebssysteme unterstützt PowerShell 7?


PowerShell 7 unterstützt die  folgenden  x64- Betriebssysteme , einschließlich:

  • Windows 7, 8.1 und 10
  • Windows Server 2008 R2, 2012, 2012 R2, 2016 und 2019
  • macOS 10.13+
  • Red Hat Enterprise Linux (RHEL) / CentOS 7+
  • Fedora 29+
  • Debian 9+
  • Ubuntu 16.04+
  • openSUSE 15+
  • Alpine Linux 3.8+

Darüber hinaus unterstützen wir ARM32- und ARM64-Versionen von Debian und Ubuntu sowie ARM64 Alpine Linux.

Obwohl nicht offiziell unterstützt, hat die Community auch Pakete für Arch und Kali Linux bereitgestellt .

Wenn Sie Unterstützung für eine Plattform benötigen, die nicht in dieser Liste aufgeführt ist, senden Sie eine Verteilungsanforderung an GitHub (obwohl zu beachten ist, dass wir uns letztendlich auf die Tatsache beschränken, dass .NET Core 3.1 unterstützt wird ).

Warten Sie, was ist mit PowerShell "Core" passiert?


Wie bei .NET mit .NET 5 glauben wir, dass PowerShell 7 das Ende unseres Weges zur maximalen Abwärtskompatibilität mit Windows PowerShell markiert. In dieser Hinsicht glauben wir, dass PowerShell 7 und höher die einzige unterstützte PowerShell in der Zukunft ist.

PowerShell 7 wird weiterhin in der Core Edition enthalten sein, um 6.x / 7.x von Windows PowerShell zu unterscheiden. Insgesamt werden Sie jedoch feststellen, dass es in Zukunft als PowerShell 7 bezeichnet wird.

Welche Microsoft-Produkte unterstützen PowerShell 7 bereits?


Jedes Modul, das bereits von PowerShell Core 6.x unterstützt wird, wird auch in PowerShell 7 unterstützt, einschließlich:


Unter Windows haben wir dem Import-Modul auch den Parameter -UseWindowsPowerShell hinzugefügt, um den Übergang zu PowerShell 7 für Benutzer mit inkompatiblen Modulen zu vereinfachen. Diese Option erstellt ein Proxy-Modul in PowerShell 7, das den lokalen Windows PowerShell-Prozess verwendet, um implizit alle in diesem Modul enthaltenen Cmdlets auszuführen. Weitere Informationen zu dieser Funktion finden Sie in der Dokumentation zum Import-Modul .

Für die Module, die noch nicht kompatibel sind, arbeiten wir mit einer Reihe von Kollegen zusammen, um die integrierte Unterstützung für PowerShell 7 hinzuzufügen, einschließlich Microsoft Graph, Office 365 und anderen.

Die Azure Cloud Shell wurde bereits für die Verwendung von PowerShell 7 aktualisiert, während andere, z. B. die .NET Core SDK Docker-Container-Images undAzure-Funktionen werden in Kürze aktualisiert.

Was weiter?


Wir arbeiten bereits intensiv an PowerShell 7.1, und Sie können in naher Zukunft mit der ersten Vorschau rechnen, die voller neuer Funktionen und Korrekturen ist, die in 7.0 nicht enthalten sind. Seien Sie gespannt auf einen detaillierteren Roadmap-Blog, der unsere aktuellen Forschungsergebnisse und Wünsche für 7.1 beschreibt.

Wie oben erwähnt, wechseln wir auch zu einer jährlichen Veröffentlichungshäufigkeit, um die .NET-Versionen und ihren Support-Lebenszyklus besser anzupassen (Vorabversionen werden weiterhin ungefähr jeden Monat veröffentlicht).

All Articles