Sdílet prostřednictvím


Novinky v PowerShellu 7.3

PowerShell 7.3 je příští stabilní verze založená na .NET 7.0.

PowerShell 7.3 obsahuje následující funkce, aktualizace a zásadní změny.

Zásadní změny a vylepšení

  • V této verzi byla rozhraní API systému Windows aktualizována nebo odebrána kvůli dodržování předpisů, což znamená, že PowerShell 7.3 ve Windows 7 neběží. Systém Windows 7 se už nepodporuje, ale předchozí buildy by mohly běžet ve Windows 7.
  • PowerShell Direct pro Hyper-V se podporuje jenom ve Windows 10 verze 1809 a novějších.
  • Test-Connection je přerušena kvůli úmyslné změně způsobující chybu v .NET 7. Sleduje ho #17018
  • Přidejte clean blok do bloku skriptu jako rovný s begin, process a end, aby bylo možné snadné vyčištění prostředků (#15177)
  • Změnit výchozí hodnotu pro $PSStyle.OutputRenderingHost
  • Nastavte Out-String a Out-File tak, aby vstup řetězce zůstal nezměněn (#17455)
  • Přesuňte definici dat typu System.Security.AccessControl.ObjectSecurity do modulu Microsoft.PowerShell.Security (#16355) (děkujeme@iSazonov!)
    • Před touto změnou nemusí uživatel explicitně importovat modul Microsoft.PowerShell.Security , aby používal vlastnosti kódu definované pro instanci System.Security.AccessControl.ObjectSecurity.
    • Po této změně musí uživatel explicitně importovat modul Microsoft.PowerShell.Security , aby mohl tyto vlastnosti kódu a metody kódu použít.

Vylepšení automatického dokončování při použití klávesy Tab

  • PowerShell 7.3 obsahuje PSReadLine 2.2.6, který ve výchozím nastavení umožňuje prediktivní IntelliSense. Další informace najdete v tématu about_PSReadLine.
  • Oprava dokončování tabulátoru v rámci bloku skriptu určeného pro ValidateScriptAttribute. (#14550) (Děkujeme@MartinGC94!)
  • Bylo přidáno dokončování tabulátoru pro popisky smyčky po break/continue (#16438) (Děkujeme @MartinGC94!)
  • Vylepšete dokončování hash tabulky ve více scénářích (#16498) (Díky @MartinGC94!)
    • Rozložení parametrů
    • Argumenty k parametru Invoke-CimMethod
    • Parametr FilterHashtable pro Get-WinEvent
    • Vlastnostní parametr pro rutiny CIM
    • Odstraňuje duplicity ze scénářů dokončování pro členy.
  • Podpora lomítek v dokončení cesty UNC (network share) (#17111) (Díky@sba923!)
  • Vylepšit automatické doplňování členů (#16504) (Díky @MartinGC94!))
  • Upřednostnit dokončení z ValidateSet před výčty pro parametry (#15257) (Díky@MartinGC94!)
  • Přidání podpory odvozování typů pro obecné metody s parametry typu (#16951) (Děkujeme@MartinGC94!)
  • Zlepšit odvozování a dokončování typu (#16963) (Díky @MartinGC94!))
    • Umožňuje zobrazení metod ve výsledcích dokončení pro ForEach-Object -MemberName
    • Zabraňuje dokončení u výrazů, které vrací typ void, jako je ([void](""))
    • Umožňuje, aby se konstruktory třídy, které nejsou výchozí, zobrazovaly při dokončování třídy založené na AST.
  • Zlepšení odvozování typů pro $_ (#17716) (Díky@MartinGC94!)
  • Oprava odvozování typu pro ICollection (#17752) (Díky @MartinGC94!)
  • Zabránit odstranění složených závorek při dokončování proměnných (#17751) (Díky @MartinGC94!))
  • Přidejte doplňování indexových výrazů pro slovníky (#17619) (Děkujeme@MartinGC94!))
  • Oprava dokončování typů pro tokeny atributů (#17484) (Děkujeme @MartinGC94!))
  • Vylepšit dokončování dynamických parametrů (#17661) (Díky@MartinGC94!)
  • Vyhněte se použití pozičních parametrů při dokončování parametru před hodnotou (#17693) (Díky @MartinGC94!))

Vylepšené zpracování chyb

  • Správně nastaveno $? pro příkazový výraz s přesměrováním (#16046)
  • Opravit chybu přetypování při použití $PSNativeCommandUseErrorActionPreference (#15993)
  • Volitelné zpracování chyb nativního příkazu by mělo respektovat ErrorActionPreference (#15897)
  • Zadejte cestu spustitelného souboru jako TargetObject pro nenulový ukončovací kód ErrorRecord (#16108) (Díky@rkeithhill!)

Vylepšení relací a vzdálené komunikace

  • Přidejte -Options na příkazy PSRP přes SSH, které umožňují přímé předávání možností OpenSSH (#12802) (díky@BrannenGH!)
  • Přidejte -ConfigurationFile parametr do pwsh pro umožnění spuštění nového procesu s konfigurací relace definovanou v souboru .pssc (#17447)
  • Přidání podpory pro použití New-PSSessionConfigurationFile na platformách jiných než Windows (#17447)

Aktualizované rutiny

  • Přidání -HttpVersion parametru do webových rutin (#15853) (Děkujeme@hayhay27!)
  • Přidejte podporu pro webové rutiny pro otevřené vstupní značky (#16193) Děkujeme
  • Oprava ConvertTo-Json -Depth pro povolení maximálně 100 (#16197) (díky @KevRitchie!))
  • Vylepšení zpracování proměnných při volání Invoke-Command pomocí výrazu $Using: (#16113) (Díky@dwtaber!)
  • Přidání -StrictMode k Invoke-Command pro určení striktního režimu při místním spuštění příkazu (#16545) (Děkujeme @Thomas-Yu!)
  • Přidejte clean blok do bloku skriptu jako rovnocenného partnera k begin, process a end pro snadné vyčištění prostředků (#15177)
  • Přidání -Amended přepínače do Get-CimClass cmdletu (#17477) (Děkujeme @iSazonov)
  • Změna ConvertFrom-Json -AsHashtable na použití uspořádané hashovatelné tabulky (#17405)
  • Odstraněny řídicí sekvence ANSI v řetězcích před odesláním do Out-GridView (#17664)
  • Přidání parametru Milisekund do New-TimeSpan (#17621) (Díky @NoMoreFood!)
  • Zobrazit volitelné parametry při zobrazení definic a přetížení metod (#13799) (Díky @eugenesmlv!))
  • Povolit spuštění příkazů i v případě, že aktuální pracovní adresář již neexistuje (#17579)
  • Přidání podpory pro HTTPS s Set-AuthenticodeSignature -TimeStampServer (#16134). Děkujeme@Ryan-Hutchison-USAF!)
  • Vykreslit desetinná čísla v tabulce pomocí aktuální kultury (#17650)
  • Přidání akcelerátoru typů seřazených pro OrderedDictionary (#17804) (Děkujeme@fflaten!)
  • Přidejte find.exe ke staršímu chování vazby argumentů pro Windows (#17715)
  • Přidat -NoProfileLoadTime přepínač do pwsh (#17535) (Díky @rkeithhill!)

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

Experimentální funkce

V PowerShellu 7.3 se následující experimentální funkce staly běžně používanými.

  • PSAnsiRenderingFileInfo – Tato funkce přidá člena $PSStyle.FileInfo a umožňuje obarvení konkrétních typů souborů.

  • PSCleanBlock - Přidá clean blok do bloku skriptu souběžně s begin, process a end pro snadné uvolnění prostředků.

  • PSAMSIMethodInvocationLogging - Rozšíří data odeslaná do AMSI pro kontrolu tak, aby zahrnovala všechna vyvolání členů metody .NET.

  • PSNativeCommandArgumentPassing - PowerShell nyní používá ArgumentListVlastnost StartProcessInfo objektu místo starého mechanismu rekonstruování řetězce při vyvolání nativního spustitelného souboru.

    PowerShell 7.3.1 přidá sqlcmd.exe do seznamu nativních příkazů ve Windows, které používají Legacy styl předávání argumentů.

  • PSExec – Přidá novou Switch-Process rutinu (alias exec) pro zajištění exec kompatibility pro systémy mimo Windows.

    PowerShell 7.3.1 změnil exec alias na funkci, která zabalí Switch-Process. Funkce umožňuje předat parametry nativnímu příkazu, který by mohl být chybně vázán na Parametr WithCommand .

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

  • PSNativeCommandErrorActionPreference – přidá proměnnou $PSNativeCommandUseErrorActionPreference, která umožňuje, aby chyby generované nativními příkazy byly považovány za chyby PowerShellu.

PowerShell 7.3 odebral následující experimentální funkce:

  • PSNativePSPathResolution experimentální funkce se už nepodporuje.
  • PSStrictModeAssignment experimentální funkce se už nepodporuje.

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