Neuerungen in PowerShell 7.2

PowerShell 7.2 ist das nächste LTS-Release (Long Term Servicing), das auf .NET 6.0 basiert.

PowerShell 7.2 umfasst die folgenden Features, Updates und Breaking Changes.

  • Neue universelle Installationsprogrammpakete für die meisten unterstützten Linux-Distributionen
  • Microsoft Update-Unterstützung für Windows
  • 2 neue experimentelle Features
    • Verbesserte Unterstützung für die Übergabe von nativen Befehlsargumenten
    • ANSI-FileInfo-Farbunterstützung
  • Verbesserte Vervollständigung mit der TAB-TASTE
  • PSReadLine 2.1 mit Predictive IntelliSense
  • 7 experimentelle Features, die zu Mainstreamfeatures höher gestuft wurden, und 1 entferntes Feature
  • DSC wurde von PowerShell 7 getrennt, um zukünftige Verbesserungen zu ermöglichen
  • Mehrere Breaking Changes zur Verbesserung der Benutzerfreundlichkeit

Eine umfassende Liste der Änderungen finden Sie im Änderungsprotokoll im GitHub-Repository.

Installationsupdates

Prüfen Sie die Installationsanweisungen für Ihr bevorzugtes Betriebssystem:

Darüber hinaus unterstützt PowerShell 7.2 die ARM64-Versionen von Windows und macOS sowie die ARM32- und ARM64-Versionen von Debian und Ubuntu.

Aktuelle Informationen zu unterstützten Betriebssystemen und zum Supportlebenszyklus finden Sie unter PowerShell-Supportlebenszyklus.

Neue universelle Installationspakete für Linux-Distributionen

In der Vergangenheit wurden separate Installationspakete für die einzelnen unterstützten Versionen von CentOS, RHEL, Debian und Ubuntu erstellt. Im universellen Installationspaket sind acht verschiedene Pakete in einem Paket kombiniert, wodurch die Installation unter Linux vereinfacht wird. Mit dem Universalpaket werden die erforderlichen Abhängigkeiten für die Zieldistribution installiert und die plattformspezifischen Änderungen für die ordnungsgemäße Funktionsfähigkeit von PowerShell erstellt.

Microsoft Update-Unterstützung für Windows

Mit PowerShell 7.2 wird Unterstützung für Microsoft Update hinzugefügt. Wenn Sie dieses Feature aktivieren, erhalten Sie die aktuellen PowerShell 7-Updates in Ihrem üblichen Windows Update-Verwaltungsflow. Dies gilt sowohl für Windows Update for Business, WSUS und SCCM als auch für das interaktive Windows Update-Dialogfeld in den Einstellungen.

Das PowerShell 7.2 MSI-Paket enthält die folgenden Befehlszeilenoptionen:

  • USE_MU: Diese Eigenschaft verfügt über zwei mögliche Werte:
    • 1 (Standardeinstellung): aktiviert Updates über Microsoft Update oder WSUS
    • 0: automatische Updates über Microsoft Update oder WSUS werden nicht aktiviert
  • ENABLE_MU
    • 1 (Standardeinstellung): aktiviert die Verwendung von Microsoft Update, automatischen Updates oder Windows Update
    • 0: keine Aktivierung der Verwendung von Microsoft Update, automatischen Updates oder Windows Update

Experimentelle Features

Die folgenden experimentellen Features stellen in diesem Release nun Mainstreamfeatures dar:

Das folgende experimentelle Feature wurde in diesem Release hinzugefügt:

  • PSNativeCommandArgumentPassing: Wenn dieses experimentelle Feature aktiviert ist, verwendet PowerShell die ArgumentList-Eigenschaft des StartProcessInfo-Objekts anstelle unseres aktuellen Mechanismus zum Rekonstruieren einer Zeichenfolge beim Aufruf einer nativen ausführbaren Datei. Dieses Feature fügt eine neue automatische Variable $PSNativeCommandArgumentPassing hinzu, mit der Sie das Verhalten zur Laufzeit auswählen können.

  • PSAnsiRenderingFileInfo: ermöglicht die ANSI-Farbanpassung von Dateiinformationen.

  • PSLoadAssemblyFromNativeCode: macht eine API verfügbar, um das Laden von Assemblys aus nativem Code zuzulassen.

Weitere Informationen zu den experimentellen Features finden Sie unter Verwenden experimenteller Features.

Verbesserte Vervollständigung mit der TAB-TASTE

PowerShell 7.2 umfasst mehrere Verbesserungen bei der Vervollständigung mit der TAB-TASTE. Diese Änderungen umfassen Fehlerbehebungen und verbessern die Benutzerfreundlichkeit.

  • Problem bei der Vervollständigung mit der TAB-TASTE bei nicht lokalisierten About*-Themen behoben (#15265) (vielen Dank an @MartinGC94)
  • Problem, bei dem Splatting bei der Vervollständigung als Positionsparameter behandelt wurde, ist jetzt behoben (#14623) (vielen Dank an @MartinGC94)
  • Vervollständigungen für kommentarbasierte Hilfeschlüsselwörter hinzugefügt (#15337) (vielen Dank an @MartinGC94)
  • Vervollständigung für Requires-Anweisungen hinzugefügt (#14596) (vielen Dank an @MartinGC94)
  • Vervollständigung mit der TAB-TASTE für View-Parameter bei Cmdlets vom Typ „Format-*“ hinzugefügt (#14513) (vielen Dank an @iSazonov)

PSReadLine 2.1 Predictive IntelliSense

In PSReadLine 2.1 wurden CommandPrediction-APIs eingeführt, mit denen ein Framework zur Bereitstellung von Vorhersagen für die Befehlszeilenvervollständigung erstellt wird. Mit dieser API können Benutzer einen vollständigen Befehl für passende Vorhersagen aus dem Verlauf des Benutzers erkennen, bearbeiten und ausführen.

Predictive IntelliSense ist standardmäßig deaktiviert. Führen Sie den folgenden Befehl aus, um Vorhersagen zu aktivieren:

Set-PSReadLineOption -PredictionSource History

DSC wurde von PowerShell 7 getrennt, um zukünftige Verbesserungen zu ermöglichen

Das PSDesiredStateConfiguration-Modul wurde aus dem PowerShell 7.2-Paket entfernt und wird nun im PowerShell-Katalog veröffentlicht. Dadurch kann das PSDesiredStateConfiguration-Modul unabhängig von PowerShell entwickelt werden, und Benutzer können verschiedene Versionen von PowerShell und PSDesiredStateConfiguration für ihre Umgebung kombinieren. So installieren Sie PSDesiredStateConfiguration 2.0.5 über den PowerShell-Katalog:

Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99

Wichtig

Stellen Sie sicher, dass Sie den Parameter „MaximumVersion“ hinzufügen. Anderenfalls wird möglicherweise Version 3 (oder höher) von PSDesireStateConfiguration installiert, die sich erheblich von der gewünschten Version unterscheidet.

Engine-Updates

  • Die LoadAssemblyFromNativeMemory-Funktion wurde zum Laden von Assemblys im Arbeitsspeicher von einem PowerShell-Host von awakecoding hinzugefügt – Pull Request #14652

Breaking Changes und Verbesserungen

  • PSDesiredStateConfiguration wurde aus dem PowerShell 7.2-Paket entfernt
  • Debian- und RPM-Universalpakete für PowerShell Linux verfügbar (#15109)
  • Experimentelles Feature PSNativeCommandArgumentPassing: Verwenden von ArgumentList für den Aufruf nativer ausführbarer Dateien (#14692)
  • Sicherstellen, dass -PipelineVariable für alle Ausgaben von Skript-Cmdlets festgelegt ist (#12766)
  • Ausgeben einer Warnung, wenn ConvertTo-Json den „-Depth“-Wert überschreitet (#13692)
  • Alias D der „-Directory“-Option „CL-General“ entfernt #15171
  • Verbesserte Erkennung änderbarer Werttypen (#12495)
  • Einschränkung von New-Object im NoLanguage-Modus bei Sperrung (#14140)
  • Erzwingen der AppLocker-Konfiguration „Verweigern“, bevor die Umgehung der Ausführungsrichtlinie konfiguriert wird (#15035)
  • Ändern von FileSystemInfo.Target von einer CodeProperty zu einer AliasProperty, die auf FileSystemInfo.LinkTarget zeigt (#16165)