Freigeben über


Neuerungen in PowerShell 7.6

PowerShell 7.6-preview.5 enthält die folgenden Features, Updates und bahnbrechende Änderungen. PowerShell 7.6 basiert auf .NET 9.0.101 GA-Version.

Eine vollständige Liste der Änderungen finden Sie im CHANGELOG- im GitHub-Repository.

Aktualisierte Module

PowerShell 7.6-preview.5 enthält die folgenden aktualisierten Module:

  • Microsoft.PowerShell.PSResourceGet v1.1.0
  • PSReadLine v2.4.4-beta4
  • Microsoft.PowerShell.ThreadJob v2.2.0
  • ThreadJob v2.1.0

Der ThreadJob wurde in das Modul "Microsoft.PowerShell.ThreadJob " umbenannt. Es gibt keinen Unterschied in der Funktionalität des Moduls. Um die Abwärtskompatibilität für Skripts sicherzustellen, die den alten Namen verwenden, ist das ThreadJob v2.1.0-Modul ein Proxymodul, das auf microsoft.PowerShell.ThreadJob v2.2.0 verweist.

Aktuelle Änderungen

  • Korrigieren WildcardPattern.Escape, um einzelne Backticks richtig zu maskieren (#25211) (Danke @ArmaanMcleod!)
  • Parameter -ChildPath in string[] für das Cmdlet umwandeln (Join-Path) (Danke @ArmaanMcleod!))
  • Entfernen des nachfolgenden Leerzeichens aus dem Namen der Ereignisquelle (#24192) (Danke) @MartinGC94!)

Verbesserungen bei der TAB-Vervollständigung

  • Verwenden Sie den Parameter HelpMessage für Tooltip bei der Parametervervollständigung (#25108) (Danke @jborean93!))
  • Entfernen doppelter Module aus Abschlussergebnissen (#25538) (Danke @MartinGC94!)
  • Hinzufügen der Vervollständigung für Variablen, die in ArrayLiteralAst und ParenExpressionAst zugewiesen wurden (#25303) (Danke @MartinGC94!))
  • Beheben Sie die Tab-Vervollständigung für Umgebungs-/Funktionsvariablen (#25346) (Danke @jborean93!)
  • Aktualisieren Sie den Blocktyp "Benannt" und "Anweisungstyp", um "AssignmentStatements" und "Increment/Decrement"-Operatoren nicht als Teil des Ausgabeergebnisses (#21137) (Danke) zu berücksichtigen. @MartinGC94!)
  • Füge -PropertyType Argument-Vervollständiger für New-ItemProperty hinzu (#21117) (Danke @ArmaanMcleod!)
  • Hinzufügen der Unterstützung für einfache/doppelte Anführungszeichen für -Noun Parameter für Get-Command (#24977) (Danke an @ArmaanMcleod!))
  • Hinzufügen von Abschlussunterstützung für einfache/doppelte Anführungszeichen beim Parameter -PSEdition für Get-Module (#24971) (Danke @ArmaanMcleod!)).
  • Konvertieren von InvalidCommandNameCharacters in AnalysisCache zu SearchValues<char> für eine effizientere Zeichensuche (#24880) (Danke @ArmaanMcleod!))
  • Konvertieren Sie s_charactersRequiringQuotes in "Completion Completers" in SearchValues<char> für eine effizientere Zeichensuche (#24879) (Danke @ArmaanMcleod!))
  • Aktualisieren Sie IndexOfAny() Aufrufe mit ungültigem Pfad-/Dateinamen auf SearchValues<char> für eine effizientere Zeichensuche ([#24896][24896]) (Danke @ArmaanMcleod!))
  • Ersetze das char[]-Array in CompletionRequiresQuotes durch den zwischengespeicherten SearchValues<char> (#24907) (Danke @ArmaanMcleod!))
  • Hinzufügen der Anführungszeichenbehandlung in Verb, StrictModeVersion, Scope und PropertyType Argument Completers mit einer einzigen Hilfsmethode (#24839) (Danke @ArmaanMcleod!))
  • Behebung des Freigabeabschlusses mit Anbieter und Leerzeichen (#19440) (Danke @MartinGC94!)
  • Verbessern der Variablentyp-Ableitung (#19830) (Danke @MartinGC94!)
  • Hinzufügen von QuickInfos für Hashtable-Schlüsselvervollständigen (#17864) (Vielen Dank @MartinGC94!)
  • Verbessern der Typinferenz von Parametern in klassischen Funktionen (#25172) (Danke @MartinGC94!)
  • Verbesserung der Ableitung des Zuweisungstyps (#21143) (Danke @MartinGC94!)
  • Ausschließen von OutVariable-Zuordnungen innerhalb desselben CommandAst, wenn Variablen abgeleitet werden (#25224) (Dank an @MartinGC94!))
  • Korrektur der Parametervervollständigung bei Fehlschlagen von Skriptanforderungen (#17687) (Danke an @MartinGC94!)
  • Verbesserung der Vervollständigung für Attributargumente (#25129) (Danke @MartinGC94!).
  • Behebung der Fertigstellung, die auf Pseudobindung in Skriptblöcken (#25122, Danke) basiert @MartinGC94!)
  • Schließen Sie keine doppelten Befehlsnamen ab (#21113). Vielen Dank. @MartinGC94!)
  • Hinzufügen der Vervollständigung für Variablen, die durch Befehlsumleitung (#25104) zugewiesen wurden (Danke) @MartinGC94!)
  • Korrigieren Sie TypeName.GetReflectionType(), damit es funktioniert, wenn die TypeName-Instanz eine generische Typdefinition innerhalb eines GenericTypeName (#24985) darstellt.
  • Aktualisieren Sie die Vervollständigung der Variablen-/Eigenschaftszuweisung, sodass sie auf Typinferenz zurückgreifen kann ( #21134 ) (Danke). @MartinGC94!)
  • Umgang mit der Typinferenz für weitergeleitete Befehle (#21131) (Danke) @MartinGC94!)
  • Verwenden Sie Get-Help den Ansatz, um Dateien mit dem richtigen Gebietsschema für Fertigstellungen (about_*.help.txt) zu finden (Danke@MartinGC94!)
  • Beheben des Abschlusses von Variablen, die in Do-Schleifen zugewiesen sind (#25076) (Danke @MartinGC94!)
  • Korrigieren des Abschlusses von Anbieterpfaden, wenn ein Pfad sich selbst anstelle seiner untergeordneten Elemente ausgibt (#24755) (Danke @MartinGC94!))
  • Aktivieren der Fertigstellung von bereichsbezogenen Variablen ohne Angabe des Bereichs (#20340) (Danke @MartinGC94!)
  • Behebung eines Problems mit unvollständigen Ergebnissen beim Vervollständigen von Pfaden mit Wildcards in Nicht-Dateisystemanbietern (#24757) (Danke @MartinGC94!))

Cmdlet-Verbesserungen

  • Beheben Sie Out-GridView, indem Sie die Verwendung veralteter BinaryFormatter durch benutzerdefinierte Implementierung (#25497) (Danke) ersetzen. @mawosoft!)
  • Verbesserung des ausführlichen und Debug-Messaging auf der Protokollierungsebene in Web-Cmdlets (#25510) (@JustinGrote!) Danke)
  • Verbessern der Debugprotokollierung von Web-Cmdlet-Anforderung und -Antwort (#25479) (Danke @JustinGrote!)
  • Fügen Sie den Parameter Register-ArgumentCompleter -NativeFallback hinzu, um das Registrieren eines Cover-All-Completers für systemeigene Befehle (#25230) zu unterstützen.
  • Behandle -Target als Literal in New-Item (#25186) (Danke @GameMicrowave!))
  • Aktualisierung der PATH-Umgebungsvariable für ausführbare Paketmanager-Datei unter Windows (#25847)
  • Aktualisieren Get-Service, um häufige Fehler beim Abrufen nicht kritischer Eigenschaften für einen Dienst (#24245) zu ignorieren (Danke, @jborean93!))
  • Hinzufügen von Unterstützung für einfache und doppelte Anführungszeichen im Join-String Argument Completer (#25283) (Danke @ArmaanMcleod!)
  • Kontrollkästchen entfernen IsScreenReaderActive() aus ConsoleHost (#26118)
  • Verbesserung der $using-Ausdrucksunterstützung in Invoke-Command (#24025) (Vielen Dank an @jborean93!))
  • Ändern des Standardtimeouts des Feedbackanbieters von 300 ms auf 1000 ms (#25910)
  • Hinzufügen von Unterstützung für Tausendertrennzeichen in [bigint] Typumwandlungen (#25396) (Danke @AbishekPonmudi!))
  • Füge MethodInvocation Nachverfolgung für die Überlastungsprotokollierung hinzu (#21320) (Danke @jborean93!))
  • Fix ConvertFrom-Json zum Ignorieren von Kommentaren innerhalb von Array-Literalen (#14553) (#26050) (Dank an @MatejKafka!))
  • Fix -Debug , um die ShouldProcess Eingabeaufforderung nicht auszulösen (#26081)
  • Korrigieren Write-Host zu beachten OutputRendering = PlainText (#21188)
  • Debug-Ablaufverfolgungsfehler mit magischen Ausdehnungen beheben (#25726) (Danke @jborean93!))
  • Korrigieren der Anführungszeichen in der Vervollständigung, wenn der Pfad ein doppeltes Anführungszeichenzeichen (#25631) enthält (Danke @MartinGC94!))
  • Beheben des allgemeinen Parameters -ProgressAction für erweiterte Funktionen (#24591) (Danke) @cmkb3!)
  • Beheben Sie den NullReferenceException Fehler beim Schreiben von Statuseinträgen in die Konsole aus mehreren Threads (#25440) (Danke) @kborowinski!)
  • Verwenden Sie den absoluten Pfad in FileSystemProvider.CreateDirectory (#24615) (Danke) @Tadas!)
  • Machen Sie geerbte geschützte interne Instanzmitglieder im Umfang der PowerShell-Klasse zugänglich (#25245) (Danke) @mawosoft!)
  • Hinzufügen interner Methoden zum Überprüfen von Einstellungen (#25514) (Danke @iSazonov!)
  • Parameter hinzufügen -ExcludeModule zu Get-Command (#18955) (Danke @MartinGC94!)
  • Gibt die richtige FileName-Eigenschaft für Get-Item das Auflisten alternativer Datenströme (#18019) (Danke) zurück. @kilasuit!)
  • Behebung Get-ItemProperty des Fehlers zum Melden eines nicht beendeten Fehlers für die Umwandlungs exception (#21115) (Danke) @ArmaanMcleod!)
  • Behebung eines Fehlers in der Verarbeitung des XmlNode-Objekts (#24669) (Danke @brendandburns!))
  • Fehler beim New-Item -Force Übergeben eines ungültigen Verzeichnisnamens (#24936) (Danke) @kborowinski!)
  • Erlauben Sie Start-Transcript, $Transcript zu verwenden, das eine von PSObject umschlossene Zeichenfolge ist, um den Transkriptpfad (#24963) anzugeben (Danke @kborowinski!)).
  • Verbessern Sie die Start-Process -Wait Abfrageeffizienz (#24711) (Danke @jborean93!)
  • Hinzufügen: Abschluss von Modulen anhand ihres Kurznamens (#20330) (Danke @MartinGC94!)

Motorverbesserungen

  • Aktualisieren des PSDiagnostics-Moduls zum Verwalten des PowerShellCore-Anbieters in PowerShell 7 (#25590)
  • Das Abwählen des Named-Pipe-Listeners mithilfe der Umgebungsvariable POWERSHELL_DIAGNOSTICS_OPTOUT (#26086) zulassen
  • Stellen Sie sicher, dass Sockettimeouts nur während der Tokenüberprüfung festgelegt werden (#26066)
  • Beheben Sie die Ausgabe des Konsolenhosts, damit NO_COLOR berücksichtigt wird (#24391)
  • Aktualisierung des PSRP-Protokolls zur Außerbetriebnahme des Sitzungsschlüsselaustauschs zwischen neuerem Client und Server (#25774)
  • Beheben Sie die ssh PATH-Überprüfung in SSHConnectionInfo, wenn der Standard-Runspace nicht verfügbar ist (#25780) (Danke @jborean93!))
  • Hinzufügen des Hex-Formats für systemeigene Befehlsausgangscodes (#21067) (Danke) @sba923!)
  • Beheben des Endlosschleifenabsturzes in der Ableitung variabler Typen (#25696) (Danke @MartinGC94!)
  • Hinzufügen PSForEach und PSWhere als Aliase für die systeminternen PowerShell-Methoden Where und Foreach (#25511) (Danke) @powercode!)
  • Das AIShell-Modul wurde der Telemetrie-Sammlungsliste hinzugefügt (#24747)
  • Hilfsprogramm in EnumSingleTypeConverter zum Abrufen von Enum-Namen als Array hinzugefügt (#17785) (Danke @fflaten!))
  • Aktualisieren der DnsNameList für X509Certificate2 zur Verwendung der X509SubjectAlternativeNameExtension.EnumerateDnsNames() Methode (#24714) (Danke) @ArmaanMcleod!)
  • Stringify ErrorRecord mit leerer Ausnahmemeldung zur leeren Zeichenfolge (#24949) (Danke @MatejKafka!)
  • Add PipelineStopToken to Cmdlet, das signalisiert wird, wenn die Pipeline angehalten wird (#24620) (Danke @jborean93!)
  • Fallback auf AppLocker nach WldpCanExecuteFile (#24912)
  • Verschieben Sie die Protokollierung des .NET-Methodenaufrufs, sodass sie nach der notwendigen Typumwandlung für die Methodenargumente erfolgt (#25022).
  • Korrigiere Endlosschleife in der Typinferenz (#25206) (Danke @MartinGC94!))
  • Entfernen Sie den alten Fuzzyvorschlag, und beheben Sie den Vorschlag für den lokalen Skriptdateinamen (#25177)
  • Machen Sie SystemPolicy öffentliche APIs sichtbar, aber nicht operativ auf Unix-Plattformen, damit sie in PowerShellStandard.Library enthalten sein können (#25051).
  • Festlegen von Standardhandles explizit beim Starten eines Prozesses mit -NoNewWindow (#25061)
  • QuickInfo für Variablenerweiterung reparieren und Beschreibung einschließen (#25112) (Danke) @jborean93!)
  • Verwenden von Skriptdateipfaden beim Abschließen relativer Pfade für die Verwendung von Anweisungen (#20017) (Danke) @MartinGC94!)
  • DSC-Analyse über Übersetzungsebenen der Betriebssystemarchitektur zulassen (#24852) (Danke @bdeb1337!)

Experimentelle Features

Die folgenden experimentellen Features sind in PowerShell 7.6-preview.3 enthalten: