Sdílet prostřednictvím


Co je nového v PowerShell Core 6.2

Verze PowerShell Core 6.2 se zaměřila na zlepšení výkonu, opravy chyb a menší cmdlet a jazyková vylepšení, která zlepšují kvalitu. Pro kompletní seznam vylepšení se podívejte na naše podrobné changelogy na GitHubu.

Experimentální funkce

Dříve jsme zapínali podporu pro Experimental Features. V verzi 6.2 máme čtyři experimentální funkce, které můžeme vyzkoušet. Prosíme, poskytněte zpětnou vazbu, abychom mohli provést vylepšení a rozhodnout, zda stojí za to tuto funkci propagovat do hlavního proudu.

Použijte Get-ExperimentalFeature pro získání seznamu dostupných experimentálních funkcí. Tyto funkce můžete povolit nebo vypnout pomocí Enable-ExperimentalFeature a Disable-ExperimentalFeature.

Příkazy nenalezeny

Tato funkce využívá fuzzy matching k nalezení návrhů na příkazy nebo cmdlety, které jste mohli špatně zadat.

Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion

Example

V tomto příkladu je chybně napsaný název cmdletu nejasný a odpovídá několika návrhům od nejpravděpodobnější po nejméně pravděpodobnou.

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í vzdálené dávkování

Při použití implicitního vzdáleného přístupu v pipeline PowerShell zpracovává každý příkaz v pipeline nezávisle. Objekty jsou opakovaně serializovány a de-serialized mezi klientem a vzdáleným systémem během provádění pipeline.

Díky této funkci PowerShell analyzuje pipeline, aby zjistil, zda je příkaz bezpečný ke spuštění a zda existuje na cílovém systému. Pokud je to pravda, PowerShell spustí celý pipeline vzdáleně a pouze serializuje de-serializes a výsledky zpět klientovi.

Enable-ExperimentalFeature -Name PSImplicitRemotingBatching

Reálný test Get-Process | Sort-Object over-localhost se zkrátí z 10-15 sekund na 20-30 milisekund. Funkce stačí zapnout pouze na klientovi. Na serveru nejsou potřeba žádné změny.

Dočasná jízda

Enable-ExperimentalFeature -Name PSTempDrive

Pokud používáte PowerShell Core na různých operačních systémech, zjistíte, že proměnná prostředí pro nalezení dočasného adresáře je na Windows, macOS a Linuxu jiná! S touto funkcí dostanete PSDrive volaný Temp: , který je automaticky přiřazen k dočasné složce operačního systému, který používáte.

Example

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

Mějte na paměti, že nativní příkazy k souborům (jako ls na Linuxu) nejsou o PSDrives informovány a tento Temp: disk neuvidí.

Rozšíření zkratek

PowerShell cmdlety by měly mít popisná podstatná jména. To vede k dlouhým názvům, která se obtížně píšou. Tato funkce vám umožní jednoduše napsat velká písmena v cmdletu a pomocí doplňování tabulatur najít shodu.

Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion

Example

PS> i-arsavsf

Pokud kliknete na tabulátor a máte nainstalovaný modul Azure PowerShell Az , automaticky se doplní:

PS> Import-AzRecoveryServicesAsrVaultSettingsFile

Poznámka:

Tato funkce je určena k interaktivnímu používání. Zkrácené formy cmdletu nelze realizovat. Tato funkce nenahrazuje aliasy.

Zásadní změny

  • Opravte -NoEnumerate chování tak Write-Output , aby bylo konzistentní s Windows PowerShell. (#9069)
  • Výsledek rovnat Join-String -InputObject 1,2,3 výsledku ( 1,2,3 | Join-String #8611) (Díky @sethvs!)
  • Přidat -Stable k Sort-Object souvisejícím testům (#7862) (Díky @KirkMunro!)
  • Vylepšit Start-Sleep cmdlet tak, aby přijímal zlomky sekund (#8537) (Díky @Prototyyppi!)
  • Změňte hashtable tak, aby používala OrdinalIgnoreCase tak, aby byla case-insensitive ve všech kulturách (#8566)
  • Opravte LiteralPath in pro Import-Csv přiřazení výstupu Get-ChildItem (#8277) (Díky @iSazonov!)
  • Už se nepřeskočí sloupec bez jména, pokud je použit oddělovač s dvojitou uvozovkou v Import-Csv (#7899) (Díky @Topping!)
  • Get-ExperimentalFeature už nemá -ListAvailable switch (#8318)
  • Parametr Debug je nyní nastaven $DebugPreference na Continue místo Inquire (#8195) (Díky @KirkMunro!)
  • Honor, -OutputFormat pokud je specifikován v neinteraktivním, přesměrovaném, kódovaném příkazu používaném s PWSH (#8115)
  • Načíst sestavu z cesty základny modulu před pokusem o načtení z GAC (#8073)
  • Odstraňte tilde z preview balíčků Linuxu (#8244)
  • Zpracování přesunu před -WorkingDirectory zpracováním profilů (#8079)
  • Nepřidávejte PATHEXT proměnnou prostředí do Unixu (#7697) (Díky @iSazonov!)

Známé problémy

  • Vzdálené připojení na Windows IOT ARM platformách má problém s načítáním modulů. Viz (#8053)

Obecné aktualizace a opravy

  • Povolit dokončování tabulek bez rozlišování písmen pro soubory a složky v souborovém systému citlivém na velká písmena (#8128)
  • Zveřejněte PSVersionInfo.PSVersion a PSVersionInfo.PSEdition (#8054) (Díky @KirkMunro!)
  • Přidat Type Inference pro $_ / $PSItem in catch{ } blocks (#8020) (Díky @vexx32!)
  • Oprava statického typu vyvolávání metody (#8018) (Díky @SeeminglyScience!)
  • Vytvořte odvozené typy pro Select-Object, Group-Object, PSObject a Hashtable (#7231) (Díky@powercode!)
  • Podpora metody volání s ByRef-like typovými parametry (#7721)
  • Řešit případ, kdy je cesta modulu Windows PowerShell již v PSModulePath prostředí (#7727)
  • Povolte SecureString cmdlety pro ne-Windows uložením prostého textu (#9199)
  • Zlepšení chybové zprávy na ne-Windows při importu clixml pomocí securestring (#7997)
  • Přidávání parametru RerespondTo Send-MailMessage (#8727) (Díky @replicaJunction!)
  • Přidat zastaralou zprávu na Send-MailMessage (#9178)
  • Oprava Restart-Computer , na kterou pracovat, localhost když WinRM není přítomen (#9160)
  • Vyvolejte Start-Job chybu ukončení hodu, když je hostován PowerShell (#9128)
  • Přidejte akcelerátory a přípony ve stylu C# pro literály ushort, uint, ulong a short (#7813) (Díky @vexx32!)
  • Přidány nové přípony pro číselné literály – viz about_Numeric_Literals (#7901) (Díky @vexx32!)
  • Správně Nahlásit úroveň dopadu, když SupportsShouldProcess není nastaven na 'true' (#8209) (Díky @vexx32!)
  • Oprava problémů s požadavky na znakové sady ve webových cmdletech (#8742) (Díky @markekraus!)
  • Opravit problém s očekáváním 100-continue webových cmdlets (#8679) (Díky @markekraus!)
  • Oprava problému s blokováním souborů pomocí webových cmdlets (#7676) (Díky @Claustn!)
  • Oprava problému s parsováním kódové stránky v Invoke-RestMethod (#8694) (Díky @markekraus!)
  • Refaktorování ConvertTo-Json pro zpřístupnění JsonObject.ConvertToJson jako veřejného API (#8682)
  • Přidejte nastavitelnou maximální hloubku pomocí ConvertFrom-Json -Depth (#8199) (Díky @louistio!)
  • Přidejte parametr EscapeHandling do ConvertTo-Json cmdlet (#7775) (Díky @iSazonov!)
  • Přidat -CustomPipeName do pwsh a Enter-PSHostProcess (#8889)
  • Povolte vytváření relativních symbolických odkazů ve Windows pomocí New-Item (#8783)
  • Umožnit uživatelům Windows v režimu vývojáře vytvářet symlinky bez zvýšení výšky (#8534)
  • Povolit Write-Information přijetí $null (#8774)
  • Oprava Get-Help pokročilých funkcí s obsahem nápovědy MAML (#8353)
  • Opravit Get-Help problém s PSTypeName pomocí -Parameter, když je deklarován pouze jeden parametr (#8754) (Díky @pougetat!)
  • Oprava výpočtu tokenů pro Get-Help provedení na ScriptBlock pro pomoc s komentářem. (#8238) (Díky @hubuk!)
  • Změňte Get-Help cmdlet -Parameter parametru, aby přijímal stringová pole (#8454) (Díky @sethvs!)
  • Vyřešit PAGER, pokud jeho cesta obsahuje mezery (#8571) (Díky @pougetat!)
  • Přidejte výzvu k použití ve less funkci 'help', která uživateli instruuje, jak ukončit (#7998)
  • Přidejte podpůrné enum a typy postav v Format-Hex cmdlet (#8191) (Díky @iSazonov!)
  • Odstraňte ShouldProcess z Format-Hex (#8178)
  • Přidejte nové parametry Offset a Count a Format-Hex refaktorujte cmdlet (#7877) (Díky @iSazonov!)
  • Povolit 'name' jako alias klíč pro 'label' v ConvertTo-Html, umožnit, aby záznam 'width' byl celé číslo (#8426) (Díky @mklement0!)
  • Znovu rozchodit výpočtové vlastnosti založené na skriptových blocích v ConvertTo-Html (#8427) (Díky @mklement0!)
  • Přidat cmdlet Join-String pro tvorbu textu z pipeline vstupu (#7660) (Díky @powercode!)
  • Opravit Join-String cmdlet FormatString parameter logic (#8449) (Díky @sethvs!)
  • Změňte Clear-Host zpět na používání $RAWUI a vyjasněte práci přes vzdálené (#8609)
  • Změna Clear-Host na jednoduše volané [console]::clear a odstranění clear alias z Unixu (#8603)
  • Opravte LiteralPath in pro Import-Csv přiřazení výstupu Get-ChildItem (#8277) (Díky @iSazonov!)
  • nápověda by neměla používat pager pro AliasHelpInfo (#8552)
  • Přidat -UseMinimalHeader k Start-Transcript minimalizaci přepisu (#8402) (Díky @lukexjeremy!)
  • Add Enable-ExperimentalFeature and Disable-ExperimentalFeature cmdlets (#8318)
  • Zobrazit všechny cmdlety od PSDiagnostiků , pokud je logman.exe dostupný (#8366)
  • Odstraňte parametr Persist z New-PSDrive platformy non-Windows (#8291) (Díky @lukexjeremy!)
  • Přidejte podporu pro cd + (#7206) (Díky @bergmeister!)
  • Povolit Set-Location -LiteralPath práci se složkami pojmenovanými - a + (#8089)
  • Test-Path vrátí při $false zadání prázdné $null nebo cestní hodnoty (#8080) (Díky @vexx32!)
  • Povolit návrat dynamického parametru i v případě, že cesta neodpovídá žádnému poskytovateli (#7957)
  • Podpora Get-PSHostProcessInfo a Enter-PSHostProcess na Unix platformách (#8232)
  • Snižte alokace v Get-Content cmdlet (#8103) (Díky @iSazonov!)
  • Povolit Add-Content sdílení čtení s dalšími nástroji při psaní obsahu (#8091)
  • Get/Add-Content vyhodí vylepšenou chybu při cílení kontejneru (#7823) (Díky @kvprasoon!)
  • Přidat -Name, -NoUserOverrides a -ListAvailable parametry do Get-Culture cmdlet (#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 kódových stránek v parametrech kódování (#7636) (Díky @iSazonov!)
  • Oprava Rename-Item -Path s wildcard postavou (#7398) (Díky @kwkam!)
  • Když používáte Start-Transcript soubor a existuje vyprázdnit soubor místo mazání (#8131) (Díky @paalbra!)
  • Vytvářejte Add-Type open source soubory pomocí FileAccess.Read a FileShare.Read explicitně (#7915) (Díky @IISResetMe!)
  • Oprava Enter-PSSession -ContainerId pro nejnovější Windows (#7883)
  • Zajistit, aby vlastnost NestedModules byla naplněna ( Test-ModuleManifest #7859)
  • Přidej %F obal k Get-Date -UFormat (#7630) (Díky @britishben!)
  • Oprava Set-Service -Status Stopped pro zastavení služeb s dependenciemi (#5525) (Díky @zhenggu!)