Novinky v PowerShellu 7.4
PowerShell 7.4 obsahuje následující funkce, aktualizace a zásadní změny. PowerShell 7.4 je založený na .NET 8.0.0.
Úplný seznam změn najdete v protokolu CHANGELOG v úložišti GitHub.
Změny způsobující chyby
- Image Dockeru Nano Serveru nejsou pro tuto verzi dostupné.
- Přidání parametru ProgressAction do společných parametrů
- Aktualizujte některá rozhraní API PowerShellu tak, aby místo argumentu ArgumentNullException vyvolaly výjimku ArgumentNullException, pokud je argument prázdný řetězec (#19215) (Díky @xtqqczze!)
- Odebrání kódu souvisejícího
#requires -pssnapin
s (#19320) Test-Json
nyní používá JsonSchema.NET místo Newtonsoft.Json.Schema.- Díky této změně
Test-Json
už starší schémata Konceptu 4 nepodporuje. (#18141) (Díky @gregsdennis!). Další informace o schématech JSON najdete v dokumentaci ke schématu JSON. To se také přerušíTest-Json
u souborů JSON a JSONC s komentáři. ConvertFrom-Json
Podpora stále používá Newtonsoft.Json.Schema, aby mohl převést soubory JSON s komentáři.
- Díky této změně
- Výstup od
Test-Connection
této chvíle obsahuje podrobnější informace o testech připojení TCP. - .NET zavedl změny, které ovlivnily
Test-Connection
. Rutina teď vrací chybu týkající se potřeby použitísudo
na linuxových platformách při použití vlastní velikosti vyrovnávací paměti (#20369). - Experimentální funkce PSNativeCommandPreserveBytePipe je nyní hlavní fáze. PowerShell teď zachovává data bajtového streamu při přesměrování streamu stdout nativního příkazu do souboru nebo při propojení dat bajtového streamu do datového proudu stdin nativního příkazu.
- Změna způsobu zpracování relativních cest
Resolve-Path
při použití parametru RelativeBasePath (#19755) (Díky@MartinGC94!) - Odebrání nepoužívaného kódu PSv2 – odebere funkci TabExpansion (#18337)
Aktualizace instalačního programu
Balíček MSI systému Windows teď nabízí možnost zakázat telemetrii PowerShellu během instalace. Další informace naleznete v tématu Instalace balíčku MSI z příkazového řádku.
Aktualizace verzí PSResourceGet a PSReadLine
PowerShell 7.4 obsahuje Microsoft.PowerShell.PSResourceGet v1.0.1. Tento modul se instaluje vedle PowerShellGetu verze 2.2.5 a PackageManagement verze 1.4.8.1. Další informace najdete v dokumentaci pro Microsoft.PowerShell.PSResourceGet.
PowerShell 7.4 teď obsahuje PSReadLine verze 2.3.4. Další informace najdete v dokumentaci k PSReadLine.
Vylepšení dokončování tabulátoru
Mnoho díky @MartinGC94 a ostatním za veškerou práci na zlepšení dokončování tabulátoru.
- Oprava problému při dokončování prvního příkazu ve skriptu s prázdným výrazem pole (#18355)
- Oprava dokončování pozičních argumentů (#17796)
- Určení priority výchozí sady parametrů při dokončování pozičních argumentů (#18755)
- Vylepšení pseudovazbu pro dynamické parametry (#18030)
- Zlepšení odvozování typů klíčů hashtable (#17907)
- Oprava chyby odvozování typu pro prázdné návratové příkazy (#18351)
- Zlepšení odvozování typů pro Get-Random (#18972)
- Oprava odvození typu pro všechny proměnné oboru (#18758)
- Vylepšení výčtu odvozených typů v kanálu (#17799)
- Při porovnávání výčtů (#17654) přidejte doplňování hodnot v porovnání.
- Přidání dokončování přiřazení vlastností pro výčty (#19178)
- Oprava dokončování vlastností proměnné PSCustomObject (#18682)
- Oprava dokončování členů v argumentu atributu (#17902)
- Vyloučení nadbytečných aliasů parametrů z výsledků dokončení (#19382)
- Oprava dokončování členů třídy pro třídy pomocí základních typů (#19179)
- Přidání dokončování pro použití klíčových slov (#16514)
- Oprava úniku proměnné TabExpansion2 při dokončování proměnných (#18763)
- Povolení dokončování proměnných napříč obory ScriptBlock (#19819)
- Oprava dokončování proměnné příkazu foreach (#19814)
- Oprava priority odvození typu proměnné (#18691)
- Oprava dokončování členů pro třídu výčtu PowerShellu (#19740)
- Oprava analýzy literálů pole ve výrazech indexu ve voláních metod (#19224)
- Zlepšení dokončování cesty (#19489)
- Oprava indexování vázané chyby v completeInput pro vstup prázdného skriptu (#19501)
- Zlepšení výkonu dokončování proměnných (#19595)
- Vylepšení dokončování klíče hashtable pro přiřazení proměnných s omezenými typy, vnořené hashovací tabulky a další (#17660)
- Odvození výstupu externí aplikace jako řetězců (#19193)
- Aktualizace dokončování parametrů pro výčty tak, aby vyloučily hodnoty nepovolené
ValidateRange
atributy (#17750) (Díky @fflaten!). - Oprava dokončování dynamických parametrů (#19510)
- Přidání dokončování pro proměnné přiřazené příkazem Data (#19831)
- Oprava rozšíření tilda (
~
) v systémech Windows, aby$home
se zabránilo porušení případů použití nativními příkazy (#21529)
Vylepšení webových rutin
Mnoho díky @CarloToso a dalším za veškerou práci na vylepšování webových rutin.
- Oprava dekomprese ve webových rutinách tak, aby zahrnovala Brotli (#17955) (díky@iSazonov!)
- Webcmdlety přidávají kódy 308 pro přesměrování a malé vyčištění (#18536)
- Dokončení vykreslování indikátoru průběhu v invoke-WebRequest po dokončení stahování nebo zrušení (#18130)
- Pokud je stavový kód 429 (#18717), rutiny webu z hlavičky odpovědi získají interval Opakování po dokončení.
- Webové rutiny nastaví výchozí kódování znakové sady na UTF8 (#18219)
- Zachovat WebSession.MaximumRedirection ze změn (#19190)
- WebCmdlets parsuje deklaraci XML za účelem získání hodnoty kódování, pokud je k dispozici. (#18748)
- Oprava použití xml -Body ve webcmdlets bez kódování (#19281)
- Úprava chování metody PUT na POST 1 pro výchozí typ obsahu v WebCmdlets (#19152)
- Vezměte v úvahu contentType ze záhlaví v WebCmdlets (#19227)
- Povolit zachování původní metody HTTP přidáním -PreserveHttpMethodOnRedirect do webových rutin (#18894)
- Webcmdlety zobrazují chybu na https na http redirect (#18595)
- Přidání přepínače AllowInsecureRedirect do webových rutin (#18546)
- Vylepšení podrobné zprávy ve webových rutinách v případech, kdy je neznámá délka obsahu (#19252)
- Sestavení relativního identifikátoru URI pro odkazy z odpovědi v
Invoke-WebRequest
(#19092) - Oprava přesměrování pro
-CustomMethod POST
webCmdlets (#19111) - Dispose previous response in Webcmdlets (#19117)
- Vylepšení
Invoke-WebRequest
formátu chyb XML a JSON (#18837) - Přidání parametrů ValidateNotNullOrEmpty do OutFile a InFile webCmdlets (#19044)
- Seznam záhlaví aktualizace HttpKnownHeaderNames (#18947)
Invoke-RestMethod -FollowRelLink
oprava odkazů obsahujících čárky (#18829)- Oprava chyby při správě přesměrování a funkce KeepAuthorization ve webových rutinách (#18902)
- Přidání statusového kódu do httpResponseException (#18842)
- Podpora trvalých připojení HTTP ve webových rutinách (#19249) (díky@stevenebutler!)
- Malé čištění
Invoke-RestMethod
(#19490) - Vylepšení podrobné zprávy WebCmdlets tak, aby zobrazovala správnou verzi HTTP (#19616)
- Přidání FileNameStar do MultipartFileContent ve webCmdlets (#19467)
- Oprava stavu HTTP z 409 na 429 pro WebCmdlets získat interval opakování z retry-After hlavičky. (#19622) (Děkujeme@mkht!)
- Změna
-TimeoutSec
a přidání-OperationTimeoutSeconds
do-ConnectionTimeoutSeconds
webových rutin (#19558) (Díky @stevenebutler!) jiným rutinám - Podpora Ctrl+c při zablokování připojení při čtení dat ve webCmdlets (#19330) (Díky@stevenebutler!)
- Podpora soketu domény unixu ve webCmdlets (#19343)
Další vylepšení rutin
Test-Connection
Při použití vlastní velikosti vyrovnávací paměti (#20369) teď vrátí chybu týkající se potřeby použitísudo
na linuxových platformách.- Přidání výstupních typů do příkazů formátu (#18746) (Díky@MartinGC94!)
- Přidání atributů výstupního typu pro
Get-WinEvent
(#17948) (Děkujeme@MartinGC94!) - Přidání parametrů Path a LiteralPath do
Test-Json
rutiny (#19042) (Díky@ArmaanMcleod!) - Přidání parametru NoHeader do
ConvertTo-Csv
rutin aExport-Csv
rutin (#19108) (Díky@ArmaanMcleod!) - Přidání parametrů Confirm and WhatIf do
Stop-Transcript
(#18731) (Díky@JohnLBevan!) - Přidání parametru FuzzyMinimumDistance do
Get-Command
(#18261) - Nastavit, aby parametr kódování mohl převzít
ANSI
kódování v PowerShellu (#19298) (Díky@CarloToso!) - Přidání průběhu do
Copy-Item
(#18735) Update-Help
nyní hlásí chybu při použití implicitní jazykové verze v systémech mimo USA. (#17780) (Děkujeme@dkaszews!)- Nevyžaduje aktivitu při vytváření dokončeného záznamu průběhu (#18474) (Díky@MartinGC94!)
- Zakázat záporné hodnoty parametrů
Get-Content
-Head
rutiny a-Tail
(#19715) (Děkujeme)@CarloToso!) - Vyvolání
Update-Help
správné chyby v případě, že aktuální jazyková verze není přidružená k jazyku (#19765) (Děkujeme@josea!) - Povolte kombinování
-Skip
parametrů v-SkipLast
Select-Object
rutině. (#18849) (Děkujeme@ArmaanMcleod!) - Přidání
Get-SecureRandom
rutiny (#19587) Set-Clipboard -AsOSC52
pro vzdálené využití (#18222) (děkujeme @dkaszews!)Resolve-Path
Zrychlení řešení relativní cesty (#19171) (Díky@MartinGC94!)- Přidání parametru
-CaseInsensitive
switch doSelect-Object
aGet-Unique
rutin (#19683) (Děkujeme)@ArmaanMcleod!) Restart-Computer
aStop-Computer
měla by selhat s chybou, pokud neběží přes sudo v unixu (#19824)
Vylepšení motoru
Aktualizace na $PSStyle
- Přidá vlastnosti Dim a DimOff (#18653)
- Přidání statických metod do třídy PSStyle, která mapuje hodnoty ConsoleColor na popředí a pozadí na řídicí sekvence ANSI (#17938)
- Záhlaví tabulky pro počítaná pole jsou ve výchozím nastavení formátovaná kurzívou.
- Přidání podpory dodržování zásad
$PSStyle.OutputRendering
vzdáleného hostitele (#19601) - Aktualizovaná telemetrická data tak, aby zahrnovala
CrescendoBuilt
použití modulů (#20371)
Další aktualizace modulu
- Nastavení třídy PowerShellu, která není přidružená k Runspace při deklarování atributu
NoRunspaceAffinity
(#18138) - Přidání atributu
ValidateNotNullOrWhiteSpace
(#17191) (Děkujeme@wmentha!) - Přidání
sqlcmd
do seznamu pro předávání starších argumentů (#18559) - Přidání funkce
cd~
(#18308) (Díky@GigaScratch!) - Oprava analýzy typů pole v obecných typech (#19205) (Díky@MartinGC94!)
- Oprava zástupných znaků v kořenovém adresáři cest zařízení (#19442) (Díky@MartinGC94!)
- Přidání veřejného rozhraní API pro získání umístění elementů PSModulePath (#19422)
- Oprava nesprávného řetězce na převod typu (#19560) (Díky@MartinGC94!)
- Oprava pomalého provádění při použití mnoha zarážek (#14953) (Díky@nohwnd!)
- Odebrání kódu souvisejícího
#requires -pssnapin
s (#19320)
Experimentální funkce
PowerShell 7.4 zavádí následující experimentální funkce:
- PSFeedbackProvider – Nahrazuje pevně zakódovanou architekturu návrhů zprostředkovatelem rozšiřitelné zpětné vazby.
- Tato funkce také přidá vlastnosti
$PSStyle.Formatting
FeedbackName, FeedbackText a FeedbackAction, které umožňují změnit formátování zpráv zpětné vazby.
- Tato funkce také přidá vlastnosti
- PSModuleAutoLoadSkipOfflineFiles – Zjišťování modulů teď přeskočí soubory označené poskytovateli cloudu, které nejsou plně na disku.
- PSCommandWithArgs – Přidání podpory pro předávání argumentů příkazům jako jeden řetězec
Hlavní fáze se stala následující experimentálními funkcemi:
- PSConstrainedAuditLogging
- PSCustomTableHeaderLabelDecoration
- PSNativeCommandErrorActionPreference
- PSNativeCommandPreserveBytePipe
- PSWindowsNativeCommandArgPassing
PowerShell 7.4 změnil následující experimentální funkce:
- PSCommandNotFoundSuggestion – tato funkce teď používá místo pevně zakódovaných návrhů rozšiřitelného poskytovatele zpětné vazby (#18726).
Další informace o experimentálních funkcích naleznete v tématu Použití experimentálních funkcí.