Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program PowerShell 7.4.13 zawiera następujące funkcje, aktualizacje i zmiany powodujące niekompatybilność. Program PowerShell 7.4.13 jest oparty na platformie .NET 8.0.415.
Aby uzyskać pełną listę zmian, zobacz CHANGELOG w repozytorium GitHub.
Łamiące zmiany
- Obrazy Docker Nano Server nie są dostępne w tej wersji
- Dodano parametr ProgressAction do parametru Common Parameters
- Zaktualizuj niektóre interfejsy API programu PowerShell, aby zgłaszać ArgumentException zamiast ArgumentNullException, gdy argument jest pustym ciągiem (#19215) (Dziękujemy @xtqqczze!))
- Usuń kod związany z
#Requires -PSSnapin(#19320) -
Test-Jsonteraz używa JsonSchema.NET zamiast Newtonsoft.Json.Schema.- Dzięki tej zmianie
Test-Jsonnie obsługuje już starszych schematów Wersji roboczej 4. (#18141) (Dziękujemy @gregsdennis!). Aby uzyskać więcej informacji na temat schematów JSON, zobacz dokumentację schematu JSON. Spowoduje to również przerwanieTest-Jsondla plików JSON i JSONC z komentarzami. -
ConvertFrom-Jsonobsługa nadal używa biblioteki Newtonsoft.Json.Schema, co pozwala na konwertowanie plików JSON z komentarzami.
- Dzięki tej zmianie
- Dane wyjściowe z
Test-Connectionzawierają teraz bardziej szczegółowe informacje o testach połączeń TCP - Platforma .NET wprowadziła zmiany, które wpłynęły na
Test-Connection. Polecenie cmdlet zwraca teraz błąd dotyczący konieczności używaniasudona platformach z systemem Linux podczas korzystania z niestandardowego rozmiaru buforu (#20369) - Funkcja eksperymentalna PSNativeCommandPreserveBytePipe jest teraz standardem. Program PowerShell zachowuje teraz dane strumienia bajtów podczas przekierowywania strumienia stdout polecenia natywnego do pliku lub podczas przesyłania strumieniowego danych do strumienia stdin polecenia natywnego.
- Zmień sposób obsługi ścieżek względnych podczas korzystania z parametru
Resolve-Pathw (#19755) (Dzięki @MartinGC94!)) - Usuń nieużywany kod PSv2 — usuwa funkcję TabExpansion (#18337)
Aktualizacje instalatora
Pakiet MSI systemu Windows udostępnia teraz opcję wyłączenia telemetrii programu PowerShell podczas instalacji. Aby uzyskać więcej informacji, zobacz Instalowanie pakietu msi z linii poleceń.
Zaktualizowane wersje PSResourceGet i PSReadLine
Program PowerShell 7.4 zawiera element Microsoft.PowerShell.PSResourceGet w wersji 1.1.1. Ten moduł jest instalowany równolegle z modułem PowerShellGet w wersji 2.2.5 i PackageManagement w wersji 1.4.8.1. Aby uzyskać więcej informacji, zobacz dokumentację Microsoft.PowerShell.PSResourceGet.
Program PowerShell 7.4 zawiera teraz program PSReadLine w wersji 2.3.6. Aby uzyskać więcej informacji, zobacz dokumentację PSReadLine.
Ulepszenia automatycznego uzupełniania zakładek
Bardzo dziękuję @MartinGC94 i innym osobom za ich pracę nad ulepszaniem uzupełniania tabulacji.
- Naprawiono problem podczas ukończenia pierwszego polecenia w skrypcie z pustym wyrażeniem tablicy (#18355)
- Naprawiono uzupełnianie argumentu pozycyjnego (#17796)
- Określanie priorytetów domyślnego zestawu parametrów podczas kończenia argumentów pozycyjnych (#18755)
- Ulepszanie powiązania pseudo dla parametrów dynamicznych (#18030)
- Ulepszanie wnioskowania typu kluczy tabeli skrótów (#17907)
- Naprawiono błąd wnioskowania typu dla pustych instrukcji zwracanych (#18351)
- Ulepszanie wnioskowania typów dla Get-Random (#18972)
- Poprawiono wnioskowanie typu dla wszystkich zmiennych zakresu (#18758)
- Ulepsz wyliczanie wywnioskowanych typów w potoku (#17799)
- Dodaj uzupełnianie wartości w porównaniach podczas porównywania Enumów (#17654)
- Dodanie uzupełnienia przypisania właściwości dla enumów (#19178)
- Naprawiono uzupełnianie właściwości zmiennej PSCustomObject (, #18682,)
- Poprawiono uzupełnianie składnika w argumencie atrybutu (#17902)
- Wyklucz nadmiarowe aliasy parametrów z wyników ukończenia (#19382)
- Usprawniono uzupełnianie członków klasy dla klas posiadających typy podstawowe (#19179)
- Dodaj uzupełnienie dla słowa kluczowego
using(#16514) - Napraw przeciek zmiennej TabExpansion2 podczas uzupełniania zmiennych (#18763)
- Włącz uzupełnianie zmiennych w zakresach ScriptBlock (#19819)
- Naprawiono uzupełnianie zmiennej instrukcji foreach (#19814)
- Poprawiono pierwszeństwo wnioskowania typu zmiennej (#18691)
- Naprawiono uzupełnianie składowych dla klasy enum programu PowerShell (#19740)
- Naprawiono analizowanie literałów tablicowych w wyrażeniach indeksu w wywołaniach metod (#19224)
- Ulepszanie ukończenia ścieżki (#19489)
- Naprawiono błąd indeksowania poza zakresem w CompleteInput dla pustego wejścia skryptu (#19501)
- Popraw wydajność uzupełniania zmiennych (#19595)
- Poprawa uzupełniania kluczy tabel skrótów dla przypisywania zmiennych z ograniczeniami typów, zagnieżdżonych tabel skrótów i nie tylko (#17660)
- Interpretacja danych wyjściowych aplikacji zewnętrznych jako ciągów (#19193)
- Aktualizowanie uzupełniania parametrów dla wyliczeń, aby wykluczyć wartości niedozwolone przez atrybuty
ValidateRange(#17750) (Dzięki @fflaten!). - Poprawiono uzupełnianie parametrów dynamicznych (#19510)
- Włącz uzupełnianie dla zmiennych przypisanych przez instrukcję
data(#19831) - Popraw rozszerzanie tyldy (
~) w systemach Windows do$HOME, aby zapobiec problemom z używaniem za pomocą rodzimych poleceń (#21529).
Ulepszenia poleceń cmdlet sieci Web
Serdeczne podziękowania @CarloToso i innym za pracę nad ulepszaniem cmdletów sieci Web.
- Napraw dekompresję w poleceniach cmdlet dotyczących sieci Web, aby dodać obsługę Brotli (#17955) (podziękowania dla @iSazonov!))
- Webcmdlets dodaje 308 do kodów przekierowania i drobnych poprawek (#18536)
- Ukończ renderowanie paska postępu w Invoke-WebRequest po zakończeniu lub anulowaniu pobierania (#18130)
- Polecenia cmdletów sieci Web pobierają interwał po z nagłówków odpowiedzi, jeśli kod stanu wynosi 429 (#18717)
- Polecenia cmdlet sieci Web ustawiają domyślne kodowanie zestawu znaków na wartość UTF8 (#18219)
- Zachowaj wartość WebSession.MaximumRedirection przed zmianami (#19190)
- Polecenie WebCmdlets analizuje deklarację XML, aby uzyskać wartość kodowania, jeśli jest ona obecna. (#18748)
- Naprawa przy użyciu xml -Body w poleceniach webcmdletów bez kodowania (#19281)
- Dostosuj zachowanie metody PUT na POST dla domyślnego typu zawartości w WebCmdlets (#19152)
- Weź pod uwagę atrybut ContentType z nagłówków w WebCmdlets (#19227)
- Zezwalaj na zachowanie oryginalnej metody HTTP przez dodanie -PreserveHttpMethodOnRedirect do poleceń cmdlet sieci Web (#18894)
- Polecenia Webcmdlets wyświetlają błąd przy przekierowaniu z https do http (#18595)
- Dodaj przełącznik AllowInsecureRedirect do poleceń cmdlet sieci Web (#18546)
- Popraw rozbudowany komunikat w poleceniach cmdletów sieci Web, gdy długość zawartości jest nieznana (#19252)
- Zbuduj względny identyfikator URI dla linków z odpowiedzi w
Invoke-WebRequest(#19092) - Napraw przekierowanie dla
-CustomMethod POSTw WebCmdlets (#19111) - Usuwanie poprzedniej odpowiedzi w usłudze Webcmdlets (#19117)
- Popraw format błędów XML i JSON
Invoke-WebRequest(#18837) - Dodaj ValidateNotNullOrEmpty do parametrów OutFile i InFile dla WebCmdlets (#19044)
- HttpKnownHeaderNames aktualizuje listę nagłówków (#18947)
-
Invoke-RestMethod -FollowRelLinknaprawić łącza zawierające przecinki (#18829) - Napraw usterkę dotyczącą zarządzania przekierowaniem i funkcją KeepAuthorization w cmdlet Web (#18902)
- Dodawanie StatusCode do HttpResponseException (#18842)
- Obsługa trwałych połączeń HTTP w poleceniach cmdlet w sieci Web (#19249) (dzięki @stevenebutler!))
- Małe czyszczenie
Invoke-RestMethod(#19490) - Popraw szczegółowy komunikat WebCmdlets, aby wyświetlić poprawną wersję protokołu HTTP (#19616)
- Dodawanie FileNameStar do MultipartFileContent w funkcji WebCmdlets (#19467)
- Napraw statusy HTTP z 409 na 429 dla WebCmdlets, aby uzyskać interwał ponawiania prób z nagłówka Retry-After. (#19622) (Dzięki @mkht!)
- Zmień
-TimeoutSecna-ConnectionTimeoutSecondsi dodaj-OperationTimeoutSecondsdo poleceń cmdlet sieci Web (#19558) (Dzięki @stevenebutler!) inne polecenia cmdlet) - Obsługa Ctrl+c podczas zawieszenia się połączenia przy odczytywaniu danych w poleceniach WebCmdlets (#19330) (Dzięki @stevenebutler!))
- Obsługa gniazda domeny systemu Unix w usłudze WebCmdlets (#19343)
Inne ulepszenia cmdletów
-
Test-Connectionteraz zwraca błąd dotyczący konieczności używaniasudona platformach z systemem Linux podczas korzystania z niestandardowego rozmiaru buforu (#20369) - Dodaj typy danych wyjściowych do poleceń formatowania (#18746) (Dzięki @MartinGC94!))
- Dodaj atrybuty typu wyjściowego dla
Get-WinEvent(#17948) (Dzięki @MartinGC94!)) - Dodawanie parametrów i LiteralPath do polecenia cmdlet
Test-Json(#19042) (Dzięki @ArmaanMcleod!)) - Dodawanie parametru NoHeader do poleceń cmdlet
ConvertTo-CsviExport-Csv(#19108) (Dzięki @ArmaanMcleod!) - Dodaj parametry Confirm i WhatIf do
Stop-Transcript(#18731) (Dzięki @JohnLBevan!) - Dodaj parametr FuzzyMinimumDistance do
Get-Command(#18261) -
Parametr kodowania umożliwia użycie kodowania
ANSIw programie PowerShell (#19298) (Dzięki @CarloToso!) - Dodaj postęp do
Copy-Item(#18735) -
Update-Helpteraz zgłasza błąd podczas korzystania z domyślnej kultury w systemach innych niż amerykańskie. (#17780) (Dzięki @dkaszews!) - Nie wymagaj aktywności podczas tworzenia ukończonego rekordu postępu (#18474) (Dziękuję @MartinGC94!)
- Nie zezwalaj na ujemne wartości dla parametrów polecenia cmdlet
Get-Content,-Headi-Tail(#19715) (Dzięki @CarloToso!)) - Upewnij się, że
Update-Helpzgłasza odpowiedni błąd, gdy bieżąca kultura nie jest skojarzona z językiem (#19765) (Podziękowania dla @josea!)) - Zezwól na łączenie parametrów
-Skipi-SkipLastw cmdletSelect-Object. (#18849) (Dzięki @ArmaanMcleod!) - Dodaj polecenie cmdlet
Get-SecureRandom(#19587) -
Set-Clipboard -AsOSC52do zdalnego użycia (#18222) (Dzięki @dkaszews!) - Przyspiesz rozpoznawanie ścieżek względnych
Resolve-Path(#19171) (Dzięki @MartinGC94!)) - Dodano parametr przełącznika
-CaseInsensitivedo poleceń cmdletSelect-ObjectiGet-Unique(#19683) (Dzięki @ArmaanMcleod!) -
Restart-ComputeriStop-Computerpowinny zgłosić błąd, gdy nie są uruchamiane bez użycia komendy sudo w systemie Unix (#19824)
Ulepszenia silnika
Aktualizacje $PSStyle
- Dodaje właściwości Dim i DimOff (#18653)
- Dodano metody statyczne do klasy PSStyle, które mapują wartości ConsoleColor dla pierwszego planu i tła na sekwencje znaków sterujących ANSI (#17938)
- Nagłówki tabeli dla pól obliczeniowych są domyślnie formatowane kursywą
- Dodano obsługę poszanowania
$PSStyle.OutputRenderingna hoście zdalnym (#19601) - Zaktualizowane dane telemetryczne w celu uwzględnienia użycia modułów
CrescendoBuilt(#20371)
Inne aktualizacje silnika
- Przenieś rejestrowanie wywołań metod .NET po zakończeniu wymaganej konwersji typu dla argumentów metody (#25568)
- Powrót do funkcji AppLocker po pliku WldpCanExecuteFile (#25229)
- Upewnij się, że klasa programu PowerShell nie jest powiązana z elementem Runspace podczas deklarowania atrybutu
NoRunspaceAffinity(#18138) - Dodaj atrybut
ValidateNotNullOrWhiteSpace(#17191) (Dzięki @wmentha!) - Dodaj
sqlcmddo listy w celu przekazywania dziedzicznych argumentów (#18559) - Dodać funkcję
cd~(#18308) (Dzięki @GigaScratch!)) - Popraw parsowanie typów tablic w typach ogólnych (#19205) (Dzięki @MartinGC94!))
- Naprawa mask wyrażeń w katalogu głównym ścieżek urządzenia (#19442) (Dzięki @MartinGC94!)
- Dodaj publiczny interfejs API do pobierania lokalizacji elementów PSModulePath (#19422)
- Naprawiono niepoprawną konwersję typu ciągu (#19560) (Dzięki @MartinGC94!))
- Naprawiono powolne działanie, gdy jest używanych wiele punktów przerwania (#14953) (Dzięki @nohwnd!))
- Usuń kod związany z
#Requires -PSSnapin(#19320)
Funkcje eksperymentalne
Program PowerShell 7.4 wprowadza następujące funkcje eksperymentalne:
-
PSFeedbackProvider — zastępuje ustaloną strukturę sugestii rozszerzalnym dostawcą opinii.
- Ta funkcja dodaje również właściwości FeedbackName, FeedbackTexti FeedbackAction do
$PSStyle.Formatting, które umożliwiają zmianę formatowania komunikatów opinii.
- Ta funkcja dodaje również właściwości FeedbackName, FeedbackTexti FeedbackAction do
- PSModuleAutoLoadSkipOfflineFiles — odnajdywanie modułów pomija teraz pliki oznaczone przez dostawców chmury jako nie w pełni na dysku.
- PSCommandWithArgs — dodaj wsparcie dla przekazywania argumentów do poleceń jako jeden ciąg znaków
Następujące funkcje eksperymentalne stały się głównym nurtem:
- PSConstrainedAuditLogging
- PSCustomTableHeaderLabelDecoration
- PSNativeCommandErrorActionPreference
- PSNativeCommandPreserveBytePipe
- PSWindowsNativeCommandArgPassing
Program PowerShell 7.4 zmienił następujące funkcje eksperymentalne:
- PSCommandNotFoundSuggestion — ta funkcja korzysta teraz z rozszerzalnego dostawcy informacji zwrotnej, a nie z góry określonych sugestii (#18726)
Aby uzyskać więcej informacji na temat funkcji eksperymentalnych, zobacz Using Experimental Features.