Sdílet prostřednictvím


Novinky v PowerShellu 7.4

PowerShell 7.4.7 obsahuje následující funkce, aktualizace a zásadní změny. PowerShell 7.4.7 je založený na .NET 8.0.12.

Úplný seznam změn najdete v CHANGELOG v úložišti GitHub.

Zásadní změny

  • Obrazy Dockeru pro nano server nejsou pro tuto verzi dostupné.
  • Přidání parametru ProgressAction do společných parametrů
  • Aktualizujte některá rozhraní API PowerShellu tak, aby vyvolala ArgumentException místo ArgumentNullException, pokud je argument prázdný řetězec (#19215) (díky @xtqqczze!)
  • Odebrání kódu souvisejícího s #requires -pssnapin (#19320)
  • Test-Json teď místo Newtonsoft.Json.Schema používá JsonSchema.NET.
    • Díky této změně už Test-Json starší schémata Konceptu 4 nepodporuje. (#18141) (Díky @gregsdennis!). Další informace o schématech JSON najdete v dokumentaci ke schématu JSON. Tím se také přeruší funkčnost Test-Json pro soubory 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.
  • Výstup z Test-Connection teď obsahuje podrobnější informace o testech připojení TCP.
  • Platforma .NET zavedla změny, které ovlivnily Test-Connection. Příkaz cmdlet teď vrací chybu o nutnosti použití sudo na platformách Linux při použití vlastní velikosti bufferu (#20369)
  • Experimentální funkce PSNativeCommandPreserveBytePipe je nyní standardní funkcionalitou. PowerShell teď zachovává data bajtového streamu při přesměrování stdout streamu nativního příkazu do souboru nebo při propojení dat bajtového streamu do streamu stdin nativního příkazu.
  • Změna způsobu zpracování relativních cest v při použití parametru RelativeBasePath (#19755) (díky
  • 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 najdete 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 je nainstalovaný souběžně s PowerShellGet v2.2.5 a PackageManagement verze 1.4.8.1. Další informace naleznete v dokumentaci pro Microsoft.PowerShell.PSResourceGet.

PowerShell 7.4 teď obsahuje PSReadLine verze 2.3.4. Další informace naleznete v dokumentaci pro PSReadLine.

Vylepšení automatického doplňování příkazů pomocí klávesy Tab

Velké 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čení prvního příkazu ve skriptu s prázdným polem (#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šete pseudovazbu pro dynamické parametry (#18030)
  • Zlepšení odvození typů klíčů hashtable (#17907)
  • Oprava chyby odvozování typu pro prázdné návratové příkazy (#18351)
  • Zlepšit odvozování typů pro Get-Random (#18972)
  • Opravit odvození typu pro všechny proměnné oboru (#18758)
  • Zlepšit výčet odvozených typů v potrubí (#17799)
  • Přidání doplnění hodnot pro porovnání při srovnávání výčtů (#17654)
  • Přidání dokončování přiřazení vlastností pro výčty (#19178)
  • Oprava dokončování pro vlastnosti 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 se základními typy (#19179)
  • Přidání dokončení pro použití klíčových slov (#16514)
  • Oprava problému s únikem proměnné TabExpansion2 při dokončování proměnných (#18763)
  • Povolení dokončování proměnných napříč rámci 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 výčtovou třídu PowerShell (#19740)
  • Oprava parsování literálů pole v indexových výrazech při volání metod (#19224)
  • Zlepšení dokončování cest (#19489)
  • Oprava chyby indexování mimo hranice v CompleteInput pro prázdný skriptový vstup (#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é hashtable a další (#17660)
  • Odvození výstupu externí aplikace jako řetězců (#19193)
  • Aktualizujte doplňování parametrů pro výčty tak, aby vyloučily hodnoty, které nejsou povoleny atributy ValidateRange (#17750) (Díky @fflaten!).
  • Oprava dokončování dynamických parametrů (#19510)
  • Přidání dokončování proměnných přiřazených příkazem Data (#19831)
  • V systému Windows opravte rozbalení tilda (~) na $home, aby se předešlo narušení případů použití s nativními příkazy (#21529).

Vylepšení webových cmdletů

Velké díky @CarloToso a dalším za veškerou práci na vylepšování webových cmdletů.

  • Oprava dekomprese ve webových nástrojích tak, aby obsahovala Brotli (#17955) (díky @iSazonov!))
  • Webcmdlety přidávají 308 k přesměrovacím kódům a drobné vyčištění (#18536)
  • Dokončete vykreslování ukazatele průběhu v Invoke-WebRequest, když je stahování dokončeno nebo zrušeno (#18130)
  • Webové cmdlety získávají z hlaviček odpovědí interval Retry-After, pokud je stavový kód 429 (#18717).
  • Webové rutiny nastavují výchozí kódování znakové sady na UTF8 (#18219)
  • Zachovat WebSession.MaximumRedirection beze 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)
  • Upravte chování metody PUT na POST pro výchozí typ obsahu ve WebCmdlets (#19152)
  • Vezměte v úvahu ContentType ze záhlaví ve WebCmdlets (#19227)
  • Povolit zachování původní metody HTTP přidáním -PreserveHttpMethodOnRedirect do webových rutin (#18894)
  • Webcmdlets zobrazí chybu při přesměrování z https na http (#18595)
  • Přidat přepínač AllowInsecureRedirect k webovým rutinnám (#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 ve WebCmdlets (#19111)
  • Zahodit předchozí odpověď v rámci Webcmdlets (#19117)
  • Vylepšete formát chyb XML a JSON ( Invoke-WebRequest#18837)
  • Přidejte ValidateNotNullOrEmpty do parametrů WebCmdlets OutFile a InFile (#19044)
  • HttpKnownHeaderNames – aktualizace seznamu hlaviček (#18947)
  • Invoke-RestMethod -FollowRelLink opravit odkazy obsahující čárky (#18829)
  • Oprava chyby při správě přesměrování a funkce KeepAuthorization ve webových rutinách (#18902)
  • Přidejte StatusCode do HttpResponseException (#18842)
  • Podporovat trvalá připojení HTTP v rutinních příkazech webu (#19249) (děkujeme @stevenebutler!))
  • Malý úklid Invoke-RestMethod (#19490)
  • Zlepšit podrobnou zprávu WebCmdlets tak, aby zobrazovala správnou verzi HTTP (#19616)
  • Přidejte FileNameStar ke MultipartFileContent ve WebCmdlets (#19467)
  • Opravte stav HTTP z 409 na 429 pro WebCmdlets, abyste získali interval opakování z hlavičky Retry-After. (#19622) (Děkujeme @mkht!)
  • Změňte -TimeoutSec na -ConnectionTimeoutSeconds a přidejte -OperationTimeoutSeconds do webových rutin (#19558) (díky @stevenebutler!) další rutiny
  • Podpora pro stisk kláves Ctrl+c, když se připojení zasekne při čtení dat ve WebCmdlets (#19330) (díky @stevenebutler!))
  • Podpora soketu domény unixu v WebCmdlets (#19343)

Další vylepšení rutin cmdletů

  • Test-Connection nyní vrací chybu týkající se potřeby použití sudo na platformách Linux při použití vlastní velikosti vyrovnávací paměti (#20369)
  • Přidejte výstupní typy do příkazů formátů (#18746) (díky @MartinGC94!)
  • Přidání atributů výstupního typu pro Get-WinEvent (#17948) (díky @MartinGC94!)
  • Přidejte parametry Path a LiteralPath do cmdletu Test-Json (#19042) (díky @ArmaanMcleod!)
  • Přidejte parametr NoHeader do rutin ConvertTo-Csv a Export-Csv (#19108) (díky @ArmaanMcleod!))
  • Přidat parametry Confirm a WhatIf do Stop-Transcript(#18731) (díky @JohnLBevan!))
  • Přidání parametru FuzzyMinimumDistance do Get-Command (#18261)
  • Nastavení kódování parametru ANSI v PowerShellu (č. 19298) (díky @CarloToso!)
  • Přidání průběhu Copy-Item (#18735)
  • Update-Help nyní hlásí chybu při použití implicitní kultury v systémech mimo Spojené státy. (#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ů rutiny Get-Content-Head a -Tail (#19715) (díky @CarloToso!)
  • Zajistit, aby Update-Help vyvolal správnou chybu, pokud aktuální nastavení není přiřazeno k jazyku (#19765) (děkujeme @josea!)).
  • Umožnit kombinaci parametrů -Skip a -SkipLast v cmdletu Select-Object. (#18849) (Děkujeme @ArmaanMcleod!)
  • Přidejte rutinu Get-SecureRandom (#19587)
  • Set-Clipboard -AsOSC52 pro vzdálené využití (#18222) (díky @dkaszews!)
  • Zrychlit Resolve-Path rozlišení relativní cesty (#19171) (Díky @MartinGC94!)
  • Přidán parametr přepínače -CaseInsensitive do rutin Select-Object a Get-Unique (#19683) (děkujeme @ArmaanMcleod!)
  • Restart-Computer a Stop-Computer by měly selhat s chybou, pokud neběží přes sudo v unixu (#19824)

Vylepšení motoru

Aktualizace $PSStyle

  • Přidá vlastnosti Dim a DimOff (#18653)
  • Přidány statické metody do třídy PSStyle, které mapují hodnoty popředí a pozadí ConsoleColor na ANSI řídicí sekvence (#17938).
  • Záhlaví tabulky pro počítaná pole jsou ve výchozím nastavení formátovaná kurzívou.
  • Přidejte podporu dodržování $PSStyle.OutputRendering na vzdáleném hostiteli (#19601)
  • Aktualizovaná telemetrická data tak, aby zahrnovala použití modulů CrescendoBuilt (č. 20371)

Další aktualizace jádra

  • Zajistěte, aby se třída PowerShell nepřidružovala k Runspace při deklarování atributu NoRunspaceAffinity (#18138)
  • Přidejte atribut ValidateNotNullOrWhiteSpace (#17191) (díky @wmentha!)
  • Přidejte sqlcmd do seznamu pro předávání starších argumentů (#18559)
  • Přidejte funkci 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 převodu řetězce na typ (#19560) (Díky @MartinGC94!))
  • Oprava pomalého provádění při použití mnoha přerušovacích bodů (#14953) (Díky @nohwnd!))
  • Odebrání kódu souvisejícího s #requires -pssnapin (#19320)

Experimentální funkce

PowerShell 7.4 zavádí následující experimentální funkce:

  • PSFeedbackProvider – nahrazuje pevně zakódovanou architekturu návrhů rozšiřitelným poskytovatelem zpětné vazby.
    • Tato funkce také přidá vlastnosti FeedbackName, FeedbackTexta FeedbackAction k $PSStyle.Formatting, které umožňují změnit formátování zpráv zpětné vazby.
  • PSModuleAutoLoadSkipOfflineFiles – Objevování modulů nyní přeskočí soubory označené poskytovateli cloudových služeb, které nejsou zcela uloženy na disku.
  • PSCommandWithArgs – Přidání podpory pro předávání argumentů příkazům jako jeden řetězec

Následující experimentální funkce se staly běžnými:

  • PS Omezený Audit Logging
  • PSCustomTableHeaderLabelDecoration
  • PSNativeCommandErrorActionPreference
  • PSNativeCommandPreserveBytePipe
  • PSWindowsNativeCommandArgPassing

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í.