Sdílet prostřednictvím


Novinky v PowerShellu Core 6.2

Verze PowerShell Core 6.2 se zaměřila na vylepšení výkonu, opravy chyb a menší vylepšení rutin a jazyků, která zlepšují kvalitu. Úplný seznam vylepšení najdete v podrobných protokolech změn na GitHubu.

Experimentální funkce

Dříve jsme povolili podporu experimentálních funkcí. Ve verzi 6.2 máme k vyzkoušení čtyři experimentální funkce. Pošlete nám prosím zpětnou vazbu, abychom mohli provést vylepšení a rozhodnout se, jestli tato funkce stojí za to povyšovat na hlavní fázi.

Pomocí Get-ExperimentalFeature získáte seznam dostupných experimentálních funkcí. Tyto funkce můžete povolit nebo zakázat pomocí Enable-ExperimentalFeature a Disable-ExperimentalFeature.

Příkaz nenalezl návrhy

Tato funkce používá přibližné shody k vyhledání návrhů pro příkazy nebo rutiny, které jste mohli chybně zadat.

Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion

Příklad

V tomto příkladu má chybně napsaný název rutiny přibližnou shodu s několika návrhy od nejpravděpodobnějšího po nejméně pravděpodobné.

Get-Commnd
Get-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ Get-Commnd
+ ~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException


Suggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module,
Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.

Implicitní dávkování vzdálené komunikace

Při použití implicitní vzdálené komunikace v kanálu PowerShell zpracovává každý příkaz v kanálu nezávisle. Objekty jsou opakovaně serializovány a de-serialized mezi klientem a vzdáleným systémem po spuštění kanálu.

Pomocí této funkce PowerShell analyzuje kanál, aby zjistil, jestli je spuštění příkazu bezpečné a jestli existuje v cílovém systému. Pokud je hodnota true, PowerShell spustí celý kanál vzdáleně a pouze serializuje a de-serializes výsledky zpět do klienta.

Enable-ExperimentalFeature -Name PSImplicitRemotingBatching

Skutečný test Get-Process | Sort-Object místního hostitele se sníží z 10–15 sekund na 20 až 30 milisekund. Tato funkce musí být povolená jenom na klientovi. Na serveru nejsou vyžadovány žádné změny.

Dočasná jednotka

Enable-ExperimentalFeature -Name PSTempDrive

Pokud používáte PowerShell Core v různých operačních systémech, zjistíte, že proměnná prostředí pro vyhledání dočasného adresáře se ve Windows, macOS a Linuxu liší. S touto funkcí získáte PSDrive s názvem Temp: , který je automaticky namapován na dočasnou složku pro operační systém, který používáte.

Příklad

PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!

Mějte na paměti, že nativní příkazy souborů (například ls v Linuxu) o psdrivech nevědí a tuto Temp: jednotku neuvidí.

Rozšíření zkratky

Očekává se, že rutiny PowerShellu budou obsahovat popisná podstatná jména. Výsledkem jsou dlouhé názvy, které se obtížně zapisují. Tato funkce umožňuje jednoduše zadat velká písmena rutiny a pomocí dokončování tabulátoru najít shodu.

Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion

Příklad

PS> i-arsavsf

Pokud se dostanete na kartu a máte nainstalovaný modul Azure PowerShell Az, automaticky se dokončí na:

PS> Import-AzRecoveryServicesAsrVaultSettingsFile

Poznámka

Tato funkce je určená k interaktivnímu použití. Zkrácené formy rutin nelze spouštět. Tato funkce nenahrazuje aliasy.

Zásadní změny

  • Opravte -NoEnumerate chování v souboru Write-Output tak, aby bylo konzistentní s Windows PowerShell. (#9069)
  • Nastavit Join-String -InputObject 1,2,3 výsledek jako 1,2,3 | Join-String výsledek (#8611) (Díky @sethvs!)
  • Přidat -Stable do Sort-Object a související testy (#7862) (Díky @KirkMunro!)
  • Vylepšení Start-Sleep rutiny tak, aby přijímala desetinné sekundy (#8537) (Díky @Prototyyppi!)
  • Změna zatřiďovací tabulky tak, aby používala ordinalIgnoreCase, aby byla case-insensitive ve všech jazykových verzích (#8566)
  • Oprava literalPath v Import-Csv pro vazbu na Get-ChildItem výstup (#8277) (Díky @iSazonov!)
  • Pokud se v Import-Csv souboru (#7899) použije oddělovač dvojitých uvozovek, už nepřeskočí sloupec bez názvu(#7899) (Díky @Topping!)
  • Get-ExperimentalFeature už nemá -ListAvailable přepínač (#8318)
  • Parametr ladění se teď nastavuje $DebugPreference na Pokračovat místo inquire (#8195) (Díky @KirkMunro!)
  • Respektujte -OutputFormat , jestli je zadaný v neinteraktivním, přesměrovaném, zakódovaném příkazu použitém s pwsh (#8115)
  • Před pokusem o načtení z GAC načtěte sestavení ze základní cesty modulu (#8073)
  • Odebrání tildy z balíčků Linuxu Preview (#8244)
  • Přesunutí zpracování -WorkingDirectory před zpracováním profilů (#8079)
  • Nepřidávejte PATHEXT proměnnou prostředí v Unixu (#7697) (Díky @iSazonov!)

Známé problémy

  • U vzdálené komunikace na platformách Windows IOT ARM dochází k problému s načítáním modulů. Viz (#8053)

Obecné Aktualizace a opravy

  • Povolení dokončování pomocí tabulátoru nerozlišující malá a velká písmena pro soubory a složky v systému souborů s rozlišováním velkých a malých písmen (#8128)
  • Nastavení PSVersionInfo.PSVersion a PSVersionInfo.PSEdition jako veřejné (#8054) (Díky @KirkMunro!)
  • Přidání odvozování typu pro $_ / $PSItem v catch{ } blocích (#8020) (Díky @vexx32!)
  • Oprava odvozování typu statické metody (#8018) (Díky @SeeminglyScience!)
  • Create odvozené typy pro Select-Object, , Group-ObjectPSObject a Hashtable (#7231) (Díky@powercode!)
  • Podpora metody volání s ByRef-like parametry typu (#7721)
  • Řešení případu, kdy se cesta k modulu Windows PowerShell již nachází v cestě PSModulePath prostředí (#7727)
  • Povolení SecureString rutin pro jiné systémy než Windows uložením prostého textu (#9199)
  • Vylepšení chybové zprávy v jiných systémech než Windows při importu clixml se zabezpečeným řetězcem (#7997)
  • Přidání parametru ReplyTo to Send-MailMessage (#8727) (Díky @replicaJunction!)
  • Přidání zastaralé zprávy do Send-MailMessage (#9178)
  • Oprava Restart-Computer pro práci localhost , když není k dispozici WinRM (#9160)
  • Při hostování PowerShellu udělejte Start-Job chybu vyvolanou ukončením (#9128)
  • Přidání akcelerátorů a přípon typů stylu jazyka C# pro ushort, uint, ulong a krátké literály (#7813) (Díky @vexx32!)
  • Přidání nových přípon pro číselné literály – viz about_Numeric_Literals (#7901) (Díky @vexx32!)
  • Správná sestava úrovně dopadu, když supportsShouldProcess není nastavená na hodnotu true (#8209) (Díky @vexx32!)
  • Oprava problémů se znaky požadavků ve webových rutinách (#8742) (Díky @markekraus!)
  • Oprava potíží s funkcí Expect 100-continue u webových rutin (#8679) (Díky @markekraus!)
  • Oprava problému s blokováním souborů u webových rutin (#7676) (Díky @Claustn!)
  • Oprava problému s analýzou znakové stránky v Invoke-RestMethod (#8694) (Díky @markekraus!)
  • Refaktoring ConvertTo-Json pro zveřejnění JsonObject.ConvertToJson jako veřejného rozhraní API (#8682)
  • Přidat konfigurovatelnou maximální hloubku pomocí ConvertFrom-Json příkazu -Depth (#8199) (Díky @louistio!)
  • Přidání parametru EscapeHandling v ConvertTo-Json rutině (#7775) (Díky @iSazonov!)
  • Přidat -CustomPipeName do pwsh a Enter-PSHostProcess (#8889)
  • Povolení vytváření relativních symbolických odkazů ve Windows pomocí New-Item (#8783)
  • Povolit uživatelům Windows v režimu vývojáře vytvářet odkazy bez zvýšení oprávnění (#8534)
  • Povolit Write-Information přijetí $null (#8774)
  • Oprava Get-Help pokročilých funkcí s obsahem nápovědy MAML (#8353)
  • Oprava Get-Help problému PSTypeName s parametrem -Parameter, když je deklarován jenom jeden parametr (#8754) (Díky @pougetat!)
  • Oprava výpočtu tokenu pro Get-Help spuštění v ScriptBlocku pro nápovědu ke komentáři. (#8238) (Díky @hubuk!)
  • Změňte Get-Help rutinu -Parameter parametr tak, aby přijímala pole řetězců (#8454) (Díky @sethvs!)
  • Vyřešit pager, pokud jeho cesta obsahuje mezery (#8571) (Díky @pougetat!)
  • Přidání výzvy k použití less ve funkci help, která uživatele instruuje, jak se má ukončit (#7998)
  • Přidání typů znaků a výčtů podpory v Format-Hex rutině (#8191) (Díky @iSazonov!)
  • Odebrání funkce ShouldProcess z Format-Hex (#8178)
  • Přidání nových parametrů Offset a Count do Format-Hex rutiny a refaktoring (#7877) (Díky @iSazonov!)
  • Povolit "name" jako klíč aliasu pro "label" v ConvertTo-Html, povolit, aby položka "width" byla celé číslo (#8426) (Díky @mklement0!)
  • Zajistěte, aby počítané vlastnosti založené na scriptblocku znovu fungovaly v ConvertTo-Html (#8427) (Díky @mklement0!)
  • Přidání rutiny Join-String pro vytváření textu ze vstupu kanálu (#7660) (Díky @powercode!)
  • Oprava Join-String logiky parametru FormatString rutiny (#8449) (Díky @sethvs!)
  • Pokud chcete pracovat přes vzdálené komunikace, přejděte Clear-Host zpět na možnost using $RAWUI a clear (#8609)
  • Změna Clear-Host na prosté zavolání [console]::clear a odebrání nezaškrtnutého aliasu ze systému Unix (#8603)
  • Oprava literalPath v Import-Csv pro vazbu na Get-ChildItem výstup (#8277) (Díky @iSazonov!)
  • Funkce nápovědy by pro AliasHelpInfo neměla používat pager (#8552)
  • Přidání -UseMinimalHeader do Start-Transcript pro minimalizaci hlavičky přepisu (#8402) (Díky @lukexjeremy!)
  • Přidání Enable-ExperimentalFeature rutin a Disable-ExperimentalFeature (#8318)
  • Zveřejnění všech rutin z PSDiagnostics , pokud je k dispozici logman.exe (#8366)
  • Odebrání parametru Persist z na New-PSDrivenon-Windows platformě (#8291) (Díky @lukexjeremy!)
  • Přidání podpory pro cd + (#7206) (Díky @bergmeister!)
  • Povolit Set-Location -LiteralPath práci se složkami s názvy - a + (#8089)
  • Test-Path vrátí hodnotu $false prázdné nebo $null cesty (#8080) (Díky @vexx32!)
  • Povolit vrácení dynamického parametru, i když cesta neodpovídá žádnému zprostředkovateli (#7957)
  • Podpora Get-PSHostProcessInfo a Enter-PSHostProcess na platformách Unix (#8232)
  • Omezení přidělení v Get-Content rutině (#8103) (Díky @iSazonov!)
  • Povolení Add-Content sdílení přístupu pro čtení s jinými nástroji při psaní obsahu (#8091)
  • Get/Add-Content při cílení na kontejner vyvolá vylepšenou chybu (#7823) (Díky @kvprasoon!)
  • Přidání -Nameparametrů , -NoUserOverrides a -ListAvailable do Get-Culture rutiny (#7702) (Díky @iSazonov!)
  • Přidejte sjednocený atribut pro dokončení pro parametr kódování . (#7732) (Díky @ThreeFive-O!)
  • Povolit číselná ID a názvy registrovaných znakových stránek v parametrech kódování (#7636) (Díky @iSazonov!)
  • Oprava Rename-Item -Path se zástupným znakem (#7398) (Díky @kwkam!)
  • Pokud používáte Start-Transcript a soubor existuje, místo odstranění prázdného souboru (#8131) (Díky @paalbra!)
  • Vytváření Add-Type open source souborů explicitně pomocí FileAccess.Read a FileShare.Read (#7915) (Díky@IISResetMe!)
  • Oprava Enter-PSSession -ContainerId pro nejnovější Windows (#7883)
  • Zajištění naplnění vlastnosti NestedModules ( Test-ModuleManifest #7859)
  • Přidání %F případu do Get-Date formátu -UFormat (#7630) (Díky @britishben!)
  • Oprava Set-Service -Status Stopped zastavení služeb se závislostmi (#5525) (Díky @zhenggu!)