PowerShell 7.2: Automatische Updates, PSReadLine 2.1, drei Jahre Support


    Tags: ,

    Setup von PowerShell 7.2Microsoft veröffent­lichte das Release 7.2 von Power­Shell. Es handelt sich dabei um die Multi-Platt­form-Version, die auch auf Linux und macOS läuft. Zu den wich­tigsten Neuerungen gehören auto­matische Updates unter Win­dows, eine intelli­gente Auto­vervoll­ständigung von Befehlen und erwei­terter ANSI-Support.

    PowerShell 7.2 ist die neueste Ausgabe der Produktlinie, die Microsoft als Nachfolger von Windows PowerShell positioniert. Alle künftigen Neuerungen bleiben ihr vorbehalten, die in Windows integrierte Version ist aber weiterhin verfügbar und auch in Windows 11 an Bord.

    PowerShell 7.2 auf Basis von .NET 6

    Mit 6.x begann Microsoft, PowerShell auch für andere Plattformen bereit­zustellen. Dazu portierte der Hersteller das .NET-Framework in einer abgespeckten Form als .NET Core auf Linux und macOS. Diese Trennung von .NET in zwei Varianten ist mittlerweile hinfällig, Microsoft führte sie in .NET 6 wieder zusammen.

    PowerShell 7.2 ist das erste Release, das auf .NET 6 basiert. Daher stehen ihm mehr APIs zur Verfügung als den Vorgängern auf .NET Core. Außerdem reklamiert Microsoft erhebliche Performance-Verbes­serungen für das aktuelle Framework.

    Updates

    Bis dato fanden PowerShell 6.x und 7.x vor allem Anklang bei Benutzern von Linux und Macs, während die meisten Windows-Admins weiter der Version 5.1 treu blieben. Ursprünglich war dies dem Fehlen vieler wichtiger Module geschuldet. Mittlerweile hat PowerShell 7.x in dieser Hinsicht aufgeholt.

    Ein weiteres Defizit bügelt die Version 7.2 nun mit den automatischen Updates aus. Während die integrierte PowerShell notwendige Patches über OS-Updates erhielt, musste man sich bisher bei PowerShell 7.x selbst darum kümmern.

    In WSUS muss man PowerShell als eigenes Produkt abonnieren.

    Microsoft liefert Updates nun über WSUS bzw. Microsoft Update aus. Unter WSUS muss man dazu PowerShell als eigenes Produkt auswählen. Bei der Installation fragt das Setup bereits nach, ob es diese Option aktivieren soll. Dies erfolgt aber nur bei der Installation des MSI-Pakets.

    Bereits bei der Installation kann man das automatische Update aktivieren.

    Optische Anpassung

    PowerShell 7.2 bringt neue Möglichkeiten bei der farblichen Gestaltung der Konsole. Richtig eingesetzt, handelt es sich dabei nicht bloß um eine Spielerei, sondern um ein Mittel, das die Ausgabe übersichtlicher gestaltet. Diesem Zweck dienen die erweiterte Unterstützung für ANSI-Escape-Sequenzen sowie die Variable $PSStyle.

    Die Variable $PSStyle enthält unter anderem alle unterstützten Escape-Sequenzen.

    Über sie lassen sich Vorder- und Hintergrund­farben, Unter­streichungen, kursive Schrift sowie weitere Formatierungen für Tabellen­über­schriften, Fortschritts­anzeigen, Dateien, etc. festlegen. Für eine dauerhafte Speicherung derartiger Anpassungen muss man diese in das Profil eintragen.

    Will man etwa die Ausgabe von Get-ChildItem farblich anpassen, etwa indem man Verzeichnisse und Dateien mit bestimmten Extensionen hervorhebt, dann kann man das über die FileInfo-Eigenschaft tun.

    Dazu muss man dieses derzeit noch experimentelle Feature erst aktivieren:

    Enable-ExperimentalFeature("PSAnsiRendering")

    Damit diese Änderung aktiv wird, startet man eine neue PowerShell-Session. Anschließend könnte man Verzeichnisse mit einem roten Hintergrund versehen:

    $PSStyle.FileInfo.Directory = $PSStyle.Background.BrightRed

    PowerShell 7.2 bringt bereits Farb­definitionen für einige Dateitypen mit. Diese kann man sich mit

    $PSStyle.FileInfo.Extension.Keys

    anzeigen lassen. Möchte man etwa Textdateien (".txt") mit einer Schrift in Magenta ausgeben, dann geht man so vor:

    $PSStyle.FileInfo.Extension.Add(".txt",$PSStyle.Foreground.Magenta)

    Farblich angepasste Ausgabe von Get-ChildItem für Verzeichnisse und .txt-Dateien

    Um eine solche Definition wieder zu entfernen, ruft man diese Methode auf:

    $PSStyle.FileInfo.Extension.remove(".txt")

    Die gesamten verfügbaren Eigenschaften von $PSStyle kann man mit

    $PSStyle | Get-Member

    und mit

    $PSStyle.Formatting | Get-Member

    für weitere untergeordnete Properties abrufen.

    In $PSStyle gespeicherte Eigenschaften und Methoden anzeigen mit Get-Member

    PSReadLine

    Seit geraumer Zeit gehört PSReadLine zum Lieferumfang von Windows PowerShell und PowerShell 7.x. Es bietet eine Reihe von Komfort­funktionen wie eine Session-übergreifende History und diverse Optionen zum Editieren der Kommando­zeile.

    Eine Funktion besteht auch in der auto­matischen Vervollständigung eines Kommandos auf Basis der bereits abgesetzten Befehle. Das in der neuen Version enthaltene PSReadLine 2.1 versucht nach Auswertung früherer Befehle mittels Predictive Intellisense voraus­zusagen, was man eintippen möchte.

    Support und Verfügbarkeit

    Microsoft gewährt PowerShell 7.2 wie allen Versionen mit einer geraden Nummer einen Long Term Support von drei Jahren. Für die die 7.0 bleibt noch ein Jahr Unter­stützung, so dass Anwender während dieser Zeit auf 7.2 umstellen können.

    Aufgrund des Wechsels zu .NET 6 lässt sich PowerShell 7.2 unter Server 2008 R2 und 2012 sowie unter Windows 8.1 nicht mehr nutzen.

    Auf Client-Systemen kann man PowerShell 7.2 über den Store beziehen, für alle Windows-Varianten geeignet ist hingegen das MSI-Paket. Dieses kann man für alle Plattformen von GitHub herunterladen.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fachautor, Berater und Kon­ferenz­sprecher zu ver­schiedenen Themen der IT. Da­neben war er als System­admini­stra­tor und Consultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Ähnliche Beiträge

    Weitere Links

    2 Kommentare

    "Dieses kann man für alle Plattformen von GitHub herunterladen."

    Bestenfalls auch gerne via winget install Microsoft.PowerShell
    bzw.

    winget upgrade ...

    Das Color Rendering finde ich toll. Erinnert sehr an schöne Zeiten unter 4DOS.