Tags: PowerShell, Patch-Management
Microsoft veröffentlichte das Release 7.2 von PowerShell. Es handelt sich dabei um die Multi-Plattform-Version, die auch auf Linux und macOS läuft. Zu den wichtigsten Neuerungen gehören automatische Updates unter Windows, eine intelligente Autovervollständigung von Befehlen und erweiterter 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 bereitzustellen. 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-Verbesserungen 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.
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.
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.
Über sie lassen sich Vorder- und Hintergrundfarben, Unterstreichungen, kursive Schrift sowie weitere Formatierungen für Tabellenüberschriften, Fortschrittsanzeigen, 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 Farbdefinitionen 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)
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.
PSReadLine
Seit geraumer Zeit gehört PSReadLine zum Lieferumfang von Windows PowerShell und PowerShell 7.x. Es bietet eine Reihe von Komfortfunktionen wie eine Session-übergreifende History und diverse Optionen zum Editieren der Kommandozeile.
Eine Funktion besteht auch in der automatischen 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 vorauszusagen, 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 Unterstü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
Verwandte Beiträge
- Microsoft Defender: Updates für Viren-Signaturen über Gruppenrichtlinien und PowerShell steuern
- Exchange 2019: Neue Intervalle für CUs, kostenlose Hybrid-Lizenz, Update für Management Tools
- Windows Update for Business via Deployment Service und PowerShell steuern
- Windows-Images mit OSDBuilder automatisch offline aktualisieren
- Windows-Updates mit PowerShell abfragen, herunterladen und installieren
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.