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řidání clean bloku do bloku skriptu jako partnerského vztahu beginprocessa end umožnění snadného vyčištění prostředků (#15177)
  • Změna výchozího nastavení pro $PSStyle.OutputRenderinghostitele
  • Nastavení Out-String a Out-File zachování vstupu řetězce beze změny (#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í dokončování tabulátoru

  • 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!)
  • Přidání dokončování tabulátoru pro popisky smyčky za break/continue (#16438) (Děkujeme@MartinGC94!)
  • Vylepšení dokončování hashtable ve více scénářích (#16498) (Díky@MartinGC94!)
    • Splatting parametru
    • Argumenty parametru pro Invoke-CimMethod
    • Parametr FilterHashtable pro Get-WinEvent
    • Parametr vlastnosti pro rutiny CIM
    • Odebere duplicity ze scénářů dokončení členů.
  • Podpora lomítek v dokončení cesty UNC (network share) (#17111) (Díky@sba923!)
  • Vylepšení automatického dokončování členů (#16504) (Díky@MartinGC94!)
  • Stanovení priority dokončení 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!)
  • Vylepšení 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í identifikátor 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 odebrání složených závorek při dokončování proměnných (#17751) (Díky@MartinGC94!)
  • Přidání dokončování výrazů indexu pro slovníky (#17619) (Děkujeme)@MartinGC94!)
  • Oprava dokončování typů pro tokeny atributů (#17484) (Děkujeme@MartinGC94!)
  • Vylepšení dokončování dynamického parametru (#17661) (Díky@MartinGC94!)
  • Vyhněte se pozičním parametrům vazby 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)
  • Oprava chyby přetypování při použití $PSNativeCommandUseErrorActionPreference (#15993)
  • Volitelné zpracování ErrorActionPreference chyb nativního příkazu (#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řidání -ConfigurationFile parametru pro pwsh povolení spuštění nového procesu s konfigurací relace definovanou .pssc v souboru (#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řidání podpory k webovým rutinám pro otevřené vstupní značky (#16193) (Děkujeme@farmerau!)
  • Oprava ConvertTo-Json -Depth povolení maximálního počtu 100 (#16197) (díky@KevRitchie!)@rkeithhill!)
  • 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 pro Invoke-Command povolení zadávání striktního režimu při místním vyvolání příkazu (#16545) (Děkujeme@Thomas-Yu!)
  • Přidání clean bloku do bloku skriptu jako partnerského vztahu beginprocessa end umožnění snadného vyčištění prostředků (#15177)
  • Přidání -Amended přepínače do Get-CimClass rutiny (#17477) (Děkujeme@iSazonov)
  • Změna ConvertFrom-Json -AsHashtable na použití uspořádané hashovatelné tabulky (#17405)
  • Odebrání řídicích sekvencí 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í metody (#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!)
  • Vykreslení desetinných čísel v tabulce pomocí aktuální jazykové verze (#17650)
  • Přidání akcelerátoru typů seřazených pro OrderedDictionary (#17804) (Děkujeme@fflaten!)
  • Přidání find.exe do starší verze chování vazby argumentů pro Windows (#17715)
  • Přidání -noprofileloadtime přepínače 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 začaly být hlavní fáze následujících experimentálních funkcí:

  • 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 jako partnerský vztah beginprocessa end umožňuje snadné vyčiště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:

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