Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
PowerShell 7.3 ist das nächste Vorschaurelease, das auf .NET 7.0 basiert.
PowerShell 7.3 umfasst die folgenden Features, Updates und Breaking Changes.
Breaking Changes und Verbesserungen
- In diesem Release wurden Windows-APIs aus Gründen der Konformität aktualisiert oder entfernt, was bedeutet, dass PowerShell 7.3 nicht unter Windows 7 ausgeführt wird. Windows 7 wird nicht mehr unterstützt, jedoch konnten vorherige Builds unter Windows 7 ausgeführt werden.
- PowerShell Direct für Hyper-V wird nur auf Windows 10 Version 1809 und höher unterstützt.
Test-Connectionist aufgrund eines absichtlichen Breaking Change in .NET 7 fehlerhaft. Der Fehler wird in #17018 nachverfolgt.- Hinzufügen eines
clean-Blocks zum Skriptblock als Peer fürbegin,processundend, um eine einfache Ressourcenbereinigung zu ermöglichen (#15177) - Ändern der Standardeinstellung für
$PSStyle.OutputRenderingin Host Out-StringundOut-Filesollen die Zeichenfolgeneingaben unverändert beibehalten (#17455)- Typdatendefinition von System.Security.AccessControl.ObjectSecurity in das Modul Microsoft.PowerShell.Security verschoben (#16355) (vielen Dank an @iSazonov!)
- Vor dieser Änderung musste ein Benutzer das Modul Microsoft.PowerShell.Security nicht explizit importieren, um die für eine Instanz von System.Security.AccessControl.ObjectSecurity definierten Eigenschaften des Codes zu verwenden.
- Nach dieser Änderung muss ein Benutzer das Modul Microsoft.PowerShell.Security explizit importieren, um diese Codeeigenschaften und -methoden verwenden zu können.
Verbesserungen bei der TAB-Vervollständigung
- PowerShell 7.3 enthält PSReadline 2.2.6, wodurch Predictive IntelliSense standardmäßig aktiviert wird. Weitere Informationen finden Sie unter about_PSReadLine.
- Korrigieren der Tabstopp-Vervollständigung innerhalb des für das
ValidateScriptAttributeangegebenen Skriptblocks (#14550) (vielen Dank an @MartinGC94!) - TAB-Vervollständigung für Schleifenbezeichnungen nach
break/continuehinzugefügt (#16438) (vielen Dank an @MartinGC94!) - Hashtable-Vervollständigung in mehreren Szenarien verbessert (#16498) (vielen Dank an @MartinGC94!)
- Parametersplatting
- Arguments-Parameter für
Invoke-CimMethod - FilterHashtable-Parameter für
Get-WinEvent - Property-Parameter für CIM-Cmdlets
- Entfernt Duplikate aus Szenarien mit Membervervollständigung
- Schrägstriche bei Vervollständigung der Netzwerkfreigabe (UNC-Pfad) unterstützt (#17111) (vielen Dank an @sba923!)
- Automatische Vervollständigung von Membern verbessert (#16504) (vielen Dank an @MartinGC94!)
- Priorisieren von ValidateSet-Vervollständigungen gegenüber Parameter-Enumerationen (#15257) (vielen Dank an @MartinGC94!))
- Typrückschlussunterstützung für generische Methoden mit Typparametern hinzugefügt (#16951) (vielen Dank an @MartinGC94!)
- Typrückschluss und Vervollständigungen verbessert (#16963) (vielen Dank an @MartinGC94!)
- Ermöglicht die Darstellung von Methoden in Abschlussergebnissen für
ForEach-Object -MemberName - Verhindert die Fertigstellung von Ausdrücken, die leere Ausdrücke wie z. B.
([void](""))zurückgeben - Ermöglicht die Anzeige nicht standardmäßiger Klassenkonstruktoren bei AST-basiertem Klassenabschluss
- Ermöglicht die Darstellung von Methoden in Abschlussergebnissen für
- Typrückschluss für
$_verbessert (#17716) (vielen Dank an @MartinGC94!) - Typrückschluss für ICollection korrigiert (#17752) (vielen Dank an @MartinGC94!)
- Verhindern, dass geschweifte Klammern beim Vervollständigen von Variablen entfernt werden (#17751) (vielen Dank an @MartinGC94!)
- Vervollständigung von Indexausdrücken für Wörterbücher hinzugefügt (#17619) (vielen Dank an @MartinGC94!)
- Typvervollständigung für Attributtoken korrigiert (#17484) (vielen Dank an @MartinGC94!)
- Dynamische Vervollständigung der Parameterregisterkarte verbessert (#17661) (vielen Dank an @MartinGC94!)
- Binden von Positionsparametern verhindern, wenn Parameter vor dem Wert vervollständigt werden (#17693) (vielen Dank an @MartinGC94!)
Fehlerbehandlung verbessert
- Korrektes Festlegen von
$?für Befehlsausdruck mit Umleitungen (#16046) - Beheben eines Umwandlungsfehlers bei Verwendung von
$PSNativeCommandUseErrorActionPreference(#15993) - Ermöglichen einer optionalen Berücksichtigung von
ErrorActionPreferencebei der nativen Fehlerbehandlung für Befehle (#15897) - Ausführbaren Pfad angeben als
TargetObjectfür ErrorRecord mit einem Exitcode ungleich null (#16108) (vielen Dank an @rkeithhill!)
Verbesserungen bei Sitzung und Remoting
- Zu den PSRP-over-SSH-Befehlen „
-Options“ hinzufügen, um die direkte Übergabe von OpenSSH-Optionen zu ermöglichen (#12802) (vielen Dank an @BrannenGH!) - Hinzufügung von Parameter „
-ConfigurationFile“ zu „pwsh“, um den Start eines neuen Prozesses mit der in einer.pssc-Datei definierten Sitzungskonfiguration zu ermöglichen (#17447) - Hinzufügen von Unterstützung für die Verwendung von
New-PSSessionConfigurationFileauf anderen Plattformen als Windows (#17447)
Aktualisierte Cmdlets
- Parameter „
-HttpVersion“ zu Web-Cmdlets hinzugefügt (#15853) (vielen Dank an @hayhay27!) - Unterstützung für Eingabetags mit offenem Ende zu Web-Cmdlets hinzugefügt (#16193) (vielen Dank an @farmerau!)
ConvertTo-Json -Depthkorrigiert, um maximal 100 zuzulassen (#16197) (vielen Dank an @KevRitchie!)- Variablenverarbeitung beim Aufruf von
Invoke-Commandmit dem Ausdruck$using:verbessert (#16113) (vielen Dank an @dwtaber!) - „
-StrictMode“ zu „Invoke-Command“ hinzugefügt, um die Angabe des strict-Modus beim lokalen Aufruf des Befehls zu ermöglichen (#16545) (vielen Dank an @Thomas-Yu!) - Hinzufügen eines
clean-Blocks zum Skriptblock als Peer fürbegin,processundend, um eine einfache Ressourcenbereinigung zu ermöglichen (#15177) - Der Schalter
-Amendedwurde dem CmdletGet-CimClasshinzugefügt (#17477) (vielen Dank an @iSazonov) ConvertFrom-Json -AsHashtablefür die Verwendung der sortierten Hashtabelle geändert (#17405)- ANSI-Escapesequenzen in Zeichenfolgen vor dem Senden an
Out-GridViewentfernt (#17664) - Parameter Milliseconds zu
New-TimeSpanhinzugefügt (#17621) (vielen Dank an @NoMoreFood!) - Optionale Parameter zeigen, wenn Methodendefinitionen und Überladungen angezeigt werden (#13799) (vielen Dank an @eugenesmlv!)
- Ausführung von Befehlen zulassen, auch wenn das aktuelle Arbeitsverzeichnis nicht mehr vorhanden ist (#17579)
- Unterstützung für HTTPS mit
Set-AuthenticodeSignature -TimeStampServerhinzugefügt (#16134) (vielen Dank an @Ryan-Hutchison-USAF!) - Dezimalzahlen in einer Tabelle unter Verwendung der aktuellen Kultur rendern (#17650)
- Typbeschleuniger hinzugefügt, die für OrderedDictionary sortiert sind (#17804) (vielen Dank an @fflaten!)
find.exezum Legacybindungsverhalten für Argumente für Windows hinzugefügt (#17715)- Schalter
-noprofileloadtimezu pwsh hinzugefügt (#17535) (vielen Dank an @rkeithhill!)
Eine umfassende Liste der Änderungen finden Sie im Änderungsprotokoll im GitHub-Repository.
Experimentelle Features
In PowerShell 7.3. haben sich folgende experimentelle Features dauerhaft durchgesetzt:
PSAnsiRenderingFileInfo: Dieses Feature fügt das$PSStyle.FileInfo-Member hinzu und ermöglicht die Färbung bestimmter Dateitypen.PSCleanBlock: Fügt einenclean-Block zum Skriptblock als Peer fürbegin,processundendhinzu, um eine einfache Ressourcenbereinigung zu ermöglichenPSAMSIMethodInvocationLogging: erweitert die zur Überprüfung an AMSI gesendeten Daten um alle Aufrufe von Membern von .NET-Methoden.PSNativeCommandArgumentPassing: PowerShell verwendet nun die ArgumentList-Eigenschaft des StartProcessInfo-Objekts anstelle des alten Mechanismus zum Rekonstruieren einer Zeichenfolge beim Aufruf einer nativen ausführbaren Datei.
PowerShell 7.3.1 fügt
sqlcmd.exeder Liste der nativen Befehle in Windows hinzu, die denLegacy-Stil der Argumentübergabe verwenden.PSExecFügt das neue CmdletSwitch-Process(aliasexec) hinzu, umexec-Kompatibilität für Systeme bereitzustellen, die auf anderen Systemen als Windows basieren.In PowerShell 7.3.1 wurde das
exec-Alias in eine Funktion geändert, dieSwitch-Processumschließt. Mit der Funktion können Sie Parameter an den nativen Befehl übergeben, die möglicherweise fälschlicherweise an den WithCommand-Parameter gebunden wurden.
In PowerShell 7.3 werden die folgenden experimentellen Features eingeführt:
- PSNativeCommandErrorActionPreference: Fügt die
$PSNativeCommandUseErrorActionPreference-Variable hinzu, um von nativen Befehlen ausgelöste Fehler als PowerShell-Fehler zu aktivieren
In PowerShell 7.3 werden die folgenden experimentellen Features entfernt:
- Das experimentelle Feature
PSNativePSPathResolutionwird nicht länger unterstützt. - Das experimentelle Feature
PSStrictModeAssignmentwird nicht länger unterstützt.
Weitere Informationen zu den experimentellen Features finden Sie unter Verwenden experimenteller Features.