Udostępnij za pomocą


Co nowego w programie PowerShell 7.6

Program PowerShell 7.6-preview.5 zawiera następujące funkcje, aktualizacje i zmiany powodujące niezgodność. Program PowerShell 7.6 jest oparty na wersji ogólnodostępnej .NET 9.0.101.

Aby uzyskać pełną listę zmian, zobacz CHANGELOG w repozytorium GitHub.

Zaktualizowane moduły

Program PowerShell 7.6-preview.5 zawiera następujące zaktualizowane moduły:

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

Nazwa zadania ThreadJob została zmieniona na Moduł Microsoft.PowerShell.ThreadJob . Nie ma różnicy w funkcjonalności modułu. Aby zapewnić zgodność z poprzednimi wersjami skryptów używających starej nazwy, moduł ThreadJob w wersji 2.1.0 jest modułem proxy wskazującym program Microsoft.PowerShell.ThreadJob w wersji 2.2.0.

Zmiany powodujące niezgodność

  • Poprawka WildcardPattern.Escape w celu poprawnego ucieczki od samotnych backticks (#25211) (Dzięki @ArmaanMcleod!)
  • Przekonwertuj -ChildPath parametr na string[] dla Join-Path polecenia cmdlet (#24677) (dziękujemy) @ArmaanMcleod!)
  • Usuń spację końcową z nazwy źródła zdarzeń (#24192) (dziękujemy) @MartinGC94!)

Ulepszenia automatycznego uzupełniania zakładek

  • Użyj parametru HelpMessage dla podpowiedzi przy uzupełnianiu parametrów (#25108) (Dzięki @jborean93!))
  • Usuń zduplikowane moduły z wyników ukończenia (#25538) (Dziękujemy @MartinGC94!)
  • Dodaj uzupełnianie dla zmiennych przypisanych w ArrayLiteralAst i ParenExpressionAst (#25303) Dziękujemy @MartinGC94!)
  • Poprawiono uzupełnianie kart dla zmiennych env/function (#25346) (Dziękujemy @jborean93!)
  • Zaktualizuj wnioskowanie typu bloku *Named* i *Statement*, aby nie brać pod uwagę AssignmentStatements i operatorów inkrementacji/dekrementacji jako część wyniku ich działania (#21137) (Dzięki @MartinGC94!)
  • Dodaj -PropertyType uzupełnienie argumentu dla New-ItemProperty (#21117) (Dziękujemy @ArmaanMcleod!))
  • Dodano obsługę pojedynczych/podwójnych cudzysłowów dla uzupełniania dla parametru -Noun dla Get-Command (#24977) (Dzięki @ArmaanMcleod!))
  • Dodano obsługę pojedynczego/podwójnego cudzysłowu uzupełniania dla parametru -PSEditionGet-Module (#24971) (Dzięki @ArmaanMcleod!))
  • Konwertuj InvalidCommandNameCharacters w AnalysisCache na SearchValues<char> w celu uzyskania bardziej wydajnego wyszukiwania znaków (#24880) (Dzięki @ArmaanMcleod!))
  • Przekonwertuj s_charactersRequiringQuotes w uzupełnieniach Completers na SearchValues<char> dla bardziej wydajnego wyszukiwania znaków (#24879) (Dzięki @ArmaanMcleod!)
  • Zaktualizuj wywołania z nieprawidłową ścieżką lub nazwą pliku IndexOfAny() na SearchValues<char>, aby umożliwić bardziej efektywne wyszukiwanie znaków ([#24896][24896]) (Dzięki @ArmaanMcleod!))
  • Zastąp tablicę char[] w CompletionRequiresQuotes jej wersją z pamięci podręcznej SearchValues<char> (#24907) (dzięki @ArmaanMcleod!)
  • Dodanie obsługi cudzysłowów w elementach Argument Completers Verb, StrictModeVersion, Scope i PropertyType za pomocą pojedynczej metody pomocniczej (#24839) (Dzięki @ArmaanMcleod!))
  • Poprawiono zakończenie udostępniania przy użyciu dostawcy i spacji (#19440) (Dzięki @MartinGC94!))
  • Ulepszanie wnioskowania typu zmiennej (#19830) (Dzięki @MartinGC94!)
  • Dodawanie etykietek narzędzi na potrzeby uzupełniania klucza tabeli skrótów (#17864) (dzięki @MartinGC94!)
  • Poprawiono wnioskowanie typu parametrów w funkcjach klasycznych (#25172) (dzięki @MartinGC94!)
  • Ulepszanie wnioskowania typu przypisania (#21143) (Dzięki @MartinGC94!)
  • Wyklucz przypisania OutVariable w tym samym CommandAst przy wnioskowaniu zmiennych (#25224) (Dzięki @MartinGC94!)
  • Napraw uzupełnianie parametrów, gdy wymagania skryptu nie zostaną spełnione (#17687) (dzięki @MartinGC94!)
  • Ulepszenie uzupełniania argumentów atrybutów (#25129) (Dzięki @MartinGC94!)
  • Napraw kompletację, która opiera się na pseudobindingu w blokach skryptów (#25122) (Dzięki @MartinGC94!))
  • Nie wypełniaj zduplikowanych nazw poleceń (#21113) (dziękujemy) @MartinGC94!)
  • Dodaj uzupełnianie dla zmiennych przypisanych za pomocą przekierowania poleceń (#25104) (dzięki @MartinGC94!)
  • Napraw TypeName.GetReflectionType() tak, aby działał, gdy wystąpienie TypeName reprezentuje definicję typu ogólnego w kontekście GenericTypeName (#24985)
  • Aktualizowanie uzupełniania przypisania zmiennej/właściwości w celu powrotu do wnioskowania typu (#21134) (Dzięki @MartinGC94!)
  • Obsługa wnioskowania typu dla przekierowanych poleceń (#21131) (dzięki @MartinGC94!) za pomoc)
  • Użyj Get-Help podejścia do znajdowania about_*.help.txt plików z poprawnymi ustawieniami regionalnymi w celu ukończenia (#24194) (Dzięki @MartinGC94!)
  • Napraw uzupełnianie zmiennych przypisanych wewnątrz pętli Do (#25076) (Dzięki @MartinGC94!)
  • Napraw uzupełnianie ścieżek dostawcy, gdy ścieżka zwraca samą siebie zamiast elementów podrzędnych (#24755) (Dziękujemy @MartinGC94!)
  • Włącz uzupełnianie zmiennych o zakresie bez określania zakresu (#20340) (dzięki @MartinGC94!)
  • Rozwiązano problem z niekompletnymi wynikami podczas kończenia ścieżek za pomocą symboli wieloznacznych u dostawców systemów plików (#24757) (Dzięki @MartinGC94!)

Ulepszenia komend cmdlet

  • Napraw Out-GridView, zastępując użycie przestarzałego elementu BinaryFormatter implementacją niestandardową (#25497) (Dzięki @mawosoft!)
  • Poprawa komunikatów przy logowaniu szczegółowym i debugowaniu w poleceniach cmdlet sieci Web (#25510) (Dzięki @JustinGrote!)
  • Popraw rejestrowanie operacji debugowania dla żądań i odpowiedzi poleceń cmdlet Web (#25479) (Dziękujemy @JustinGrote!)
  • Dodaj parametr Register-ArgumentCompleter -NativeFallback do obsługi rejestrowania uniwersalnego mechanizmu uzupełniania dla poleceń natywnych (#25230)
  • Traktuj -Target jako literał w New-Item (#25186) (Dzięki @GameMicrowave!))
  • Aktualizowanie zmiennej środowiskowej PATH dla pliku wykonywalnego menedżera pakietów w systemie Windows (#25847)
  • Aktualizacja Get-Service w celu ignorowania typowych błędów podczas pobierania właściwości niekrytycznych dla usługi (#24245) (Dzięki @jborean93!)
  • Dodano wsparcie dla pojedynczego/podwójnego cudzysłowu w elemencie Argument Completer (#25283) (Dzięki @ArmaanMcleod!)
  • Usuń IsScreenReaderActive() sprawdzanie z ConsoleHost (#26118)
  • Ulepsz $using obsługę wyrażeń w Invoke-Command (#24025) (Dzięki @jborean93!)
  • Zmień domyślny limit czasu dostawcy opinii z 300 ms na 1000 ms (#25910)
  • Dodano obsługę tysięcy separatorów w [bigint] rzutach (#25396) (Dzięki @AbishekPonmudi!)
  • Dodaj MethodInvocation śledzenie dla przeciążeń (#21320) (Podziękowania dla @jborean93!))
  • Poprawka ConvertFrom-Json w celu ignorowania komentarzy wewnątrz literałów tablicy (#14553) (#26050) (dzięki @MatejKafka!)
  • Poprawka -Debug powodująca brak wyzwalania monitu ShouldProcess (#26081)
  • Poprawka Write-Host w celu poszanowania OutputRendering = PlainText (#21188)
  • Naprawianie błędu śledzenia debugowania przy użyciu zakresów magicznych (#25726) (dzięki @jborean93!)
  • Napraw cudzysłów w uzupełnianiu, jeśli ścieżka zawiera znak podwójnego cudzysłowu #25631 (Dzięki @MartinGC94!)
  • Napraw wspólny parametr -ProgressAction dla funkcji zaawansowanych (#24591) (Dzięki @cmkb3!)
  • Napraw problem podczas zapisywania rekordów postępu do konsoli z wielu wątków NullReferenceException (#25440) (Dzięki @kborowinski!)
  • Użyj ścieżki bezwzględnej w FileSystemProvider.CreateDirectory (#24615) (Dzięki @Tadas!)
  • Udostępnij dziedziczone składowe wystąpienia wewnętrznego chronionego w zakresie klas programu PowerShell (#25245) (dzięki @mawosoft!)
  • Dodaj metody wewnętrzne do sprawdzania preferencji (#25514) (Dzięki @iSazonov!)
  • Dodaj -ExcludeModule parametr do Get-Command (#18955) (Dziękujemy) @MartinGC94!)
  • Zwraca poprawną właściwość FileName dla Get-Item elementu podczas wyświetlania listy alternatywnych strumieni danych (#18019) (Dzięki @kilasuit!)
  • Poprawka Get-ItemProperty do zgłaszania błędu rzutowania jako niekończącego się błędu (#21115) (Dziękujemy @ArmaanMcleod!)
  • Naprawiono usterkę w sposobie obsługi obiektu XmlNode (#24669) (dziękujemy) @brendandburns!)
  • Błąd podczas New-Item -Force przekazywania nieprawidłowej nazwy katalogu (#24936) (Dzięki @kborowinski!)
  • Zezwól Start-Transcript na użycie $Transcript ciągu opakowanego PSObject w celu określenia ścieżki transkrypcji (#24963) (dzięki @kborowinski!)
  • Zwiększanie Start-Process -Wait wydajności sondowania (#24711) (Dziękujemy @jborean93!)
  • Dodaj uzupełnianie modułów według ich krótkiej nazwy (#20330) (Dzięki @MartinGC94!)

Ulepszenia silnika

  • Zaktualizuj moduł PSDiagnostics , aby zarządzać dostawcą programu PowerShellCore w programie PowerShell 7 (#25590)
  • Pozwól na wyłączenie odbiornika nazwanych potoków przy użyciu zmiennej środowiskowej POWERSHELL_DIAGNOSTICS_OPTOUT (#26086)
  • Upewnij się, że limity czasu gniazda są ustawione tylko podczas walidacji tokenu (#26066)
  • Naprawianie stderr danych wyjściowych hosta konsoli w celu poszanowania NO_COLOR (#24391)
  • Zaktualizuj protokół PSRP, aby wycofać wymianę kluczy sesji między nowszym klientem a serwerem (#25774)
  • Napraw funkcję ssh PATH w SSHConnectionInfo, gdy domyślny Runspace jest niedostępny (#25780) (Dzięki @jborean93!)
  • Dodawanie formatu szesnastkowego dla kodów zakończenia natywnych poleceń (#21067) (dzięki @sba923!))
  • Naprawa awarii nieskończonej pętli w wnioskowaniu typu zmiennej (#25696) (Dzięki @MartinGC94!)
  • Dodaj PSForEach i PSWhere jako aliasy dla wewnętrznych metod programu PowerShell Where i Foreach (#25511) (Dzięki @powercode!))
  • Dodano moduł AIShell do listy kolekcji danych telemetrycznych (#24747)
  • Dodano narzędzie pomocnicze w EnumSingleTypeConverter do uzyskania nazw wyliczenia jako tablicy (#17785) (dzięki @fflaten!)
  • Zaktualizuj dnsNameList dla X509Certificate2 , aby użyć X509SubjectAlternativeNameExtension.EnumerateDnsNames() metody (#24714) (Dzięki @ArmaanMcleod!)
  • Zamień ErrorRecord z pustym komunikatem wyjątku na pusty ciąg znaków (#24949) (Dziękujemy @MatejKafka!)
  • Dodaj PipelineStopToken do Cmdlet który będzie sygnalizowany przy zatrzymywaniu potoku (#24620) (Dzięki @jborean93!))
  • Powrót do funkcji AppLocker po (WldpCanExecuteFile#24912)
  • Przenieś rejestrowanie wywołań metody platformy .NET na adres po zakończeniu wymaganej konwersji typu dla argumentów metody (#25022)
  • Napraw nieskończoną pętlę w wnioskowaniu typu zmiennej (#25206) (Dzięki @MartinGC94!)
  • Usuń starą niewyraźną sugestię i napraw propozycję nazwy lokalnego pliku skryptu (#25177)
  • Uwidocznij SystemPolicy publiczne interfejsy API na platformach Unix, ale bez wykonywania operacji, aby można je było uwzględnić w PowerShellStandard.Library (#25051)
  • Ustaw standardowe dojścia jawnie przy uruchamianiu procesu za pomocą -NoNewWindow (#25061)
  • Poprawiono podpowiedź narzędzia dla rozwijania zmiennych i dołączono opis (#25112) (Dzięki @jborean93!))
  • Użyj ścieżki pliku skryptu podczas uzupełniania ścieżek względnych dla instrukcji użycia (#20017) (Dzięki @MartinGC94!)
  • Zezwól na parsowanie DSC za pośrednictwem warstw tłumaczenia architektury systemu operacyjnego (#24852) (dzięki @bdeb1337!).

Funkcje eksperymentalne

Następujące funkcje eksperymentalne są zawarte w programie PowerShell 7.6-preview.3: