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 WSUS0
: automatische Updates über Microsoft Update oder WSUS werden nicht aktiviert
ENABLE_MU
1
(Standardeinstellung): aktiviert die Verwendung von Microsoft Update, automatischen Updates oder Windows Update0
: 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:
Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck
: siehe Import-PowerShellDataFileMicrosoft.PowerShell.Utility.PSManageBreakpointsInRunspace
PSAnsiRendering
: siehe about_ANSI_TerminalsPSAnsiProgress
: siehe about_ANSI_TerminalsPSCultureInvariantReplaceOperator
PSNotApplyErrorActionToStderr
PSUnixFileStat
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 aufFileSystemInfo.LinkTarget
zeigt (#16165)