Novinky v PowerShellu Core 6.2

Verze PowerShellu Core 6.2 se zaměřuje na vylepšení výkonu, opravy chyb a menší vylepšení rutin a jazyka, 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. Poskytněte nám zpětnou vazbu, abychom mohli vylepšit a rozhodnout se, jestli je tato funkce vhodné podporovat hlavní stav.

Umožňuje Get-ExperimentalFeature získat 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 je název chybně napsané rutiny shodný s několika návrhy z nejpravděpodobnější až 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

Když v kanálu používáte implicitní vzdálené komunikace , PowerShell zachází s každým příkazem v kanálu nezávisle. Objekty jsou opakovaně serializovány a de-serialized mezi klientem a vzdáleným systémem při provádění kanálu.

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

Enable-ExperimentalFeature -Name PSImplicitRemotingBatching

Real-world test Get-Process | Sort-Object over localhost se snižuje z 10-15 sekund na 20-30 milisekund. Funkce musí být povolena pouze v 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 liší ve Windows, macOS a Linuxu. Díky této funkci získáte název Temp:PSDrive, který se automaticky mapuje do dočasné složky 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 službě PSDrives neví a tato jednotka se nezobrazí Temp: .

Rozšíření zkratky

Očekává se, že rutiny PowerShellu mají popisné jmenné jméno. Výsledkem je dlouhé názvy, které jsou obtížnější psát. Tato funkce umožňuje jednoduše zadat velké znaky 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 Az Azure PowerShell, automaticky se dokončí na:

PS> Import-AzRecoveryServicesAsrVaultSettingsFile

Poznámka

Tato funkce je určená k interaktivnímu použití. Zkrácené formy rutin nelze spustit. Tato funkce není náhradou aliasů.

Zásadní změny

  • Opravte -NoEnumerate chováníWrite-Output, aby bylo konzistentní s Windows PowerShell. (#9069)
  • Výsledek Join-String -InputObject 1,2,3 se rovná 1,2,3 | Join-String výsledku (#8611) (Děkujeme @sethvs!)
  • Přidání -Stable do Sort-Object a souvisejících testů (#7862) (Díky @KirkMunro!)
  • Vylepšení Start-Sleep rutiny pro přijetí zlomku sekund (#8537) (Díky @Prototyyppi!)
  • Změna hashovatelné tabulky tak, aby používala OrdinalIgnoreCase, aby byla case-insensitive ve všech jazykových verzích (#8566)
  • Oprava literálPathuImport-Csv pro vytvoření vazby na Get-ChildItem výstup (#8277) (Děkujeme @iSazonov!)
  • Pokud se oddělovač dvojitých uvozovek používá v Import-Csv aplikaci (#7899) (Děkujeme) už sloupec bez názvu přeskočí. @Topping!)
  • Get-ExperimentalFeature už nemá -ListAvailable přepínač (#8318)
  • Parametr ladění se teď nastaví $DebugPreference na Continue místo inquire (#8195) (Díky @KirkMunro!)
  • Čest, -OutputFormat pokud je zadaný v neinteraktivním, přesměrovaném, kódovaném příkazu použitém s pwsh (#8115)
  • Načtení sestavení ze základní cesty modulu před pokusem o načtení z GAC (#8073)
  • Odebrání tildy z balíčků Preview linuxu (#8244)
  • Přesunutí zpracování -WorkingDirectory před zpracováním profilů (#8079)
  • Nepřidávejte PATHEXT proměnnou prostředí v systému Unix (#7697) (Děkujeme @iSazonov!)

Známé problémy

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

Obecné Aktualizace a opravy

  • Povolení dokončování tabulátoru nerozlišující velká a velká písmena pro soubory a složky v systému souborů citlivých na velká písmena (#8128)
  • Vytvořit PSVersionInfo.PSVersion a PSVersionInfo.PSEdition veřejné (#8054) (Díky @KirkMunro!)
  • Přidání odvozování typů pro $_ / $PSItemcatch{ } bloky (#8020) (Díky @vexx32!)
  • Oprava odvozování typu vyvolání statické metody (#8018) (Díky @SeeminglyScience!)
  • Vytváření odvozených typů pro Select-Object, , Group-ObjectPSObject a Hashtable (#7231) (Díky@powercode!)
  • Podpora volání metody s ByRef-like parametry typu (#7721)
  • Zpracování případu, kdy cesta k modulu Windows PowerShell je již v souboru PSModulePath prostředí (#7727)
  • Povolení SecureString rutin pro jiné systémy než Windows uložením prostého textu (#9199)
  • Zlepšení chybové zprávy v jiných systémech než Windows při importu clixml pomocí zabezpečeného řetězce (#7997)
  • Přidání parametru ReplyTo do Send-MailMessage (#8727) (Děkujeme @replicaJunction!)
  • Přidání zastaralé zprávy do Send-MailMessage aplikace (#9178)
  • Oprava Restart-Computer práce localhost s chybou WinRM (#9160)
  • Vyvolání Start-Job chyby ukončení při hostování PowerShellu (#9128)
  • Přidání akcelerátorů a přípon stylů 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ě nahlásit úroveň dopadu, pokud podporaShouldProcess není nastavena na true (#8209) (Děkujeme) @vexx32!)
  • Oprava problémů s znakem charset požadavků ve webových rutinách (#8742) (Díky @markekraus!)
  • Oprava problému s očekáváním 100-continue webových rutin (#8679) (děkujeme) @markekraus!)
  • Oprava problému blokování souborů s webovými rutinami (#7676) (Díky @Claustn!)
  • Oprava problému s analýzou kódových stránek v Invoke-RestMethod aplikaci (#8694) (Díky @markekraus!)
  • Refaktoring zveřejnění ConvertTo-Json JsonObject.ConvertToJson jako veřejného rozhraní API (#8682)
  • Přidání konfigurovatelné maximální hloubky ConvertFrom-Json pomocí -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 s New-Item aplikací (#8783)
  • Povolit uživatelům Windows v režimu vývojáře vytvářet symlinky 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, když je deklarován pouze jeden parametr (#8754) (Díky @pougetat!)
  • Oprava výpočtu tokenu pro Get-Help spuštění v ScriptBlocku pro nápovědu k komentáři (#8238) (Děkujeme @hubuk!)
  • Změna Get-Help parametru -Parameter tak, aby přijímala pole řetězců (#8454) (Díky @sethvs!)
  • Vyřešit PAGER, pokud cesta obsahuje mezery (#8571) (Děkujeme @pougetat!)
  • Přidání výzvy less k použití funkce "nápověda" k pokynu uživateli, jak ukončit (#7998)
  • Přidání výčtu a typů znaků v Format-Hex rutině (#8191) (Díky @iSazonov!)
  • Odebrání funkce ShouldProcess z Format-Hex (#8178)
  • Přidání nových parametrů posunu a počtu do Format-Hex rutiny a refaktoring rutiny (#7877) (Děkujeme @iSazonov!)
  • Povolit "name" jako klíč aliasu pro popisek v ConvertTo-Html, povolit "width" entry být celé číslo (#8426) (Díky @mklement0!)
  • Opětovné fungování počítaných vlastností založených na skriptech ( 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 parametrů FormatString rutiny (#8449) (Díky @sethvs!)
  • Změna Clear-Host zpět na používání $RAWUI a vymazání práce přes vzdálené komunikace (#8609)
  • Změna Clear-Host na jednoduše volaný [console]::clear a odebrání jasného aliasu ze systému Unix (#8603)
  • Oprava literalPath pro Import-Csv vytvoření vazby k Get-ChildItem výstupu (#8277) (děkujeme @iSazonov!)
  • Funkce help by neměla používat pager pro AliasHelpInfo (#8552)
  • Přidání -UseMinimalHeader k Start-Transcript minimalizaci záhlaví přepisu (#8402) (díky @lukexjeremy!)
  • Přidání Enable-ExperimentalFeature a Disable-ExperimentalFeature rutiny (#8318)
  • Zveřejnění všech rutin z PSDiagnostics , pokud je k dispozici logman.exe (#8366)
  • Odebrání parametru Persist z New-PSDrivenon-Windows platformy (#8291) (děkujeme @lukexjeremy!)
  • Přidání podpory pro cd + (#7206) (děkujeme @bergmeister!)
  • Povolení Set-Location -LiteralPath práce se složkami s názvem - a + (#8089)
  • Test-Path vrátí $false hodnotu prázdné nebo $null cesty (#8080) (Díky @vexx32!)
  • Povolit vrácení dynamického parametru, i když cesta neodpovídá žádnému poskytovateli (#7957)
  • Podpora Get-PSHostProcessInfo a Enter-PSHostProcess na platformách Unix (#8232)
  • Snížení přidělení v Get-Content rutině (#8103) (děkujeme @iSazonov!)
  • Povolení Add-Content sdílení přístupu pro čtení s jinými nástroji při psaní obsahu (#8091)
  • Get/Add-Content vyvolá vylepšenou chybu při cílení na kontejner (#7823) (díky @kvprasoon!)
  • Přidání -Nameparametrů -NoUserOverrides a -ListAvailable parametrů do Get-Culture rutiny (#7702) (děkujeme @iSazonov!)
  • Přidání sjednoceného atributu pro dokončení parametru Encoding (#7732) (Děkujeme @ThreeFive-O!)
  • Povolit číselné ID a název registrovaných stránek kódu v parametrech kódování (#7636) (Děkujeme @iSazonov!)
  • Oprava Rename-Item -Path s zástupným znakem (#7398) (díky @kwkam!)
  • Pokud používáte a soubor používáte Start-Transcript , prázdný soubor místo odstranění (#8131) (Děkujeme @paalbra!)
  • Explicitně open source Add-Type souborů fileAccess.Read a FileShare.Read (#7915) (díky@IISResetMe!)
  • Oprava Enter-PSSession -ContainerId nejnovější verze Windows (#7883)
  • Ujistěte se, že se vlastnost NestedModules naplní Test-ModuleManifest (#7859)
  • Přidání %F případu do Get-Date -UFormat (#7630) (díky @britishben!)
  • Oprava Set-Service -Status Stopped zastavení služeb se závislostmi (#5525) (děkujeme @zhenggu!)