Neuerungen in PowerShell 7.2
PowerShell 7.2 ist die nächste Long Term Servicing (LTS)-Version, die auf .NET 6.0 basiert.
PowerShell 7.2 enthält die folgenden Features, Updates und kompatibilitätsbrechende Änderungen.
- Neue universelle Installer-Pakete für die meisten unterstützten Linux-Distributionen
- Microsoft Update-Support unter 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 Funktionen wurden in das Hauptprogramm übernommen und 1 entfernt
- Trennen von DSC von PowerShell 7, um zukünftige Verbesserungen zu ermöglichen
- Mehrere einschneidende Änderungen zur Verbesserung der Benutzerfreundlichkeit
Eine vollständige Liste der Änderungen finden Sie im Änderungsprotokoll- im GitHub-Repository.
Installationsupdates
Überprüfen Sie die Installationsanweisungen für Ihr bevorzugtes Betriebssystem:
Darüber hinaus unterstützt PowerShell 7.2 ARM64-Versionen von Windows und macOS sowie 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
Zuvor haben wir separate Installer-Pakete für jede unterstützte Version von CentOS, RHEL, Debian und Ubuntu erstellt. Das universelle Installer-Paket kombiniert acht verschiedene Pakete in einem Paket, wodurch die Installation auf Linux vereinfacht wird. Das universelle Paket installiert die erforderlichen Abhängigkeiten für die Zielverteilung und erstellt die plattformspezifischen Änderungen, um PowerShell zu funktionieren.
Microsoft Update-Unterstützung für Windows
PowerShell 7.2 fügen Unterstützung für Microsoft Update hinzu. Wenn Sie dieses Feature aktivieren, erhalten Sie die neuesten PowerShell 7-Updates in Ihrem herkömmlichen Windows Update (WU)-Verwaltungsablauf, unabhängig davon, ob es sich um Windows Update for Business, WSUS, SCCM oder das interaktive WU-Dialogfeld in den Einstellungen handelt.
Das PowerShell 7.2 MSI-Paket enthält die folgenden Befehlszeilenoptionen:
USE_MU
– Diese Eigenschaft hat zwei mögliche Werte:1
(Standard) – Aktiviert die Aktualisierung über Microsoft Update oder WSUS0
– Nicht über Microsoft Update oder WSUS aktualisieren
ENABLE_MU
-
1
(Standardeinstellung): aktiviert die Verwendung von Microsoft Update, automatischen Updates oder Windows Update 0
– Verwenden Sie nicht Microsoft Update für automatische Updates oder Windows Update.
-
Experimentelle Funktionen
Die folgenden experimentellen Features sind jetzt Mainstream-Features in dieser Version:
-
Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck
: siehe Import-PowerShellDataFile Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
-
PSAnsiRendering
: siehe about_ANSI_Terminals -
PSAnsiProgress
: siehe about_ANSI_Terminals PSCultureInvariantReplaceOperator
PSNotApplyErrorActionToStderr
PSUnixFileStat
Das folgende experimentelle Feature wurde in dieser Version 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 Aufrufen einer systemeigenen 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 – ANSI-Farbanpassung der Dateiinformationen zulassen.
PSLoadAssemblyFromNativeCode – Macht eine API verfügbar, um das Laden von Assemblys aus systemeigenem Code zu ermöglichen.
Weitere Informationen zu den experimentellen Features finden Sie unter Verwendung von experimentellen Funktionen.
Verbesserte Vervollständigung mit der TAB-TASTE
PowerShell 7.2 enthält mehrere Verbesserungen bei der Tab-Vervollständigung. Diese Änderungen umfassen Bugfixes und verbessern die Benutzerfreundlichkeit.
- Behebung der Tab-Vervollständigung für nicht lokalisierte About*-Themen (#15265) (Danke @MartinGC94))
- Problem, bei dem Splatting bei der Vervollständigung als Positionsparameter behandelt wurde, ist jetzt behoben (#14623) (vielen Dank an @MartinGC94)
- Hinzufügen von Vervollständigungen für kommentarbasierte Hilfsschlüsselwörter (#15337) (Danke @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
PSReadLine 2.1 hat CommandPrediction
-APIs eingeführt, die ein Framework für die Bereitstellung von Vorhersagen für die Befehlszeilenvervollständigung einrichten. Mit der API können Benutzer vollständige Befehle basierend auf übereinstimmenden Vorhersagen aus dem Verlauf des Benutzers ermitteln, bearbeiten und ausführen.
Predictive IntelliSense ist standardmäßig deaktiviert. Um Vorhersagen zu aktivieren, führen Sie den folgenden Befehl aus:
Set-PSReadLineOption -PredictionSource History
Trennen von DSC von PowerShell 7, um zukünftige Verbesserungen zu ermöglichen
Das PSDesiredStateConfiguration-Modul wurde aus dem PowerShell 7.2-Paket entfernt und jetzt im PowerShell-Katalog veröffentlicht. Auf diese Weise kann das PSDesiredStateConfiguration-Modul unabhängig von PowerShell entwickelt werden, und Benutzer können Versionen von PowerShell und PSDesiredStateConfiguration für ihre Umgebung kombinieren und abgleichen. So installieren Sie PSDesiredStateConfiguration 2.0.5 aus dem PowerShell-Katalog:
Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99
Wichtig
Achten Sie darauf, den Parameter MaximumVersion einzuschließen, oder Sie können Version 3 (oder höher) von PSDesireStateConfiguration installieren, die erhebliche Unterschiede enthält.
Motoraktualisierungen
- 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
- Die PSDesiredStateConfiguration wurde aus dem PowerShell 7.2-Paket entfernt.
- Erstellung universeller PowerShell-Linux-Deb- und RPM-Pakete (#15109)
- Experimentelles Feature
PSNativeCommandArgumentPassing
: Verwenden von ArgumentList für systemeigene ausführbare Aufrufe (#14692) - Stellen Sie sicher, dass
-PipelineVariable
für alle Ausgaben von Skript-Cmdlets festgelegt ist (#12766) - Warnung ausgeben, wenn
ConvertTo-Json
-Depth Wert überschreitet (#13692) - Entfernen des Alias D des -Directory Schalters CL-General #15171
- Verbessern der Erkennung von veränderbaren 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 sie
FileSystemInfo.Target
von einer CodeProperty- in eine AliasProperty-, die aufFileSystemInfo.LinkTarget
verweist (#16165)