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ěkujeme @gregsdennis!) za další informace o schématech JSON, viz dokumentace ke schématu JSON.
  • 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)

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-ConnectionPř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 a Export-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 -SkipLastSelect-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 do Select-Object a Get-Unique rutin (#19683) (Děkujeme)@ArmaanMcleod!)
  • Restart-Computer a Stop-Computer měla by selhat s chybou, pokud neběží přes sudo v unixu (#19824)

Vylepšení motoru

Aktualizace do$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.
  • 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:

PowerShell 7.4 změnil následující experimentální funkce:

Další informace o experimentálních funkcích naleznete v tématu Použití experimentálních funkcí.