Co je nového v PowerShellu Core 6,2What's New in PowerShell Core 6.2

Vydání PowerShellu Core 6,2 se zaměřuje na zvýšení výkonu, opravy chyb a menší rutiny a jazykové vylepšení, které zlepšují kvalitu.The PowerShell Core 6.2 release focused on performance improvements, bug fixes, and smaller cmdlet and language enhancements that improve the quality. Pokud chcete zobrazit úplný seznam vylepšení, Projděte si naše podrobné protokol změn na GitHubu.To see a full list of improvements, check out our detailed changelogs on GitHub.

Experimentální funkceExperimental Features

Dříve jsme povolili podporu pro experimentální funkce.Previously, we enabled support for Experimental Features. Ve verzi 6,2 máme k vyzkoušení čtyři experimentální funkce. Poskytněte prosím zpětnou vazbu, abychom mohli dělat vylepšení a rozhodnout se, jestli je tato funkce v rámci zvýšení úrovně na běžný stav.In the 6.2 release, we have four experimental features to try out. Please provide feedback so we can make improvements and to decide whether the feature is worth promoting to mainstream status.

Použijte Get-ExperimentalFeature k získání seznamu dostupných experimentálních funkcí.Use Get-ExperimentalFeature to get a list of available experimental features. Tyto funkce můžete povolit nebo zakázat pomocí Enable-ExperimentalFeature a. Disable-ExperimentalFeatureYou can enable or disable these features with Enable-ExperimentalFeature and Disable-ExperimentalFeature.

Návrhy nenalezených příkazůCommand Not Found Suggestions

Tato funkce používá přibližné porovnání k vyhledání návrhů na příkazy nebo rutiny, které jste pravděpodobně nezadali.This feature uses fuzzy matching to find suggestions for commands or cmdlets you may have mistyped.

Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion

PříkladExample

V tomto příkladu je chybně napsaný název rutiny přibližný vůči několika návrhům z nejpravděpodobnějšího nejnižší pravděpodobně.In this example, the misspelled cmdlet name is fuzzy matched to several suggestions from most likely to least likely.

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é zpracování vzdálené komunikaceImplicit Remoting Batching

Při použití implicitní vzdálené komunikace v kanálu zpracuje PowerShell jednotlivé příkazy v kanálu nezávisle.When using implicit remoting in a pipeline, PowerShell treats each command in the pipeline independently. Objekty jsou opakovaně serializovány de-serialized a mezi klientem a vzdáleným systémem přes spuštění kanálu.Objects are repeatedly serialized and de-serialized between the client and remote system over the execution of the pipeline.

Pomocí této funkce PowerShell analyzuje kanál, aby zjistil, jestli se dá příkaz bezpečně spustit a jestli existuje v cílovém systému.With this feature, PowerShell analyzes the pipeline to determine if the command is safe to run and it exists on the target system. V případě hodnoty true provede PowerShell vzdálené spuštění celého kanálu a pouze serializace de-serializes a výsledky zpět do klienta.When true, PowerShell executes the entire pipeline remotely and only serializes and de-serializes the results back to the client.

Enable-ExperimentalFeature -Name PSImplicitRemotingBatching

Reálné testování Get-Process | Sort-Object přes localhost se zkrátí od 10-15 sekund na 20-30 milisekund.A real-world test of Get-Process | Sort-Object over localhost decreases from 10-15 seconds to 20-30 milliseconds. Tuto funkci je třeba povolit jenom na klientovi.The feature only needs to be enabled on the client. Na serveru se nevyžadují žádné změny.No changes are required on the server.

Dočasná jednotkaTemp Drive

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 je odlišná na Windows, macOS a Linux.If you're using PowerShell Core on different operating systems, you'll discover that the environment variable for finding the temporary directory is different on Windows, macOS, and Linux! Pomocí této funkce získáte psdrive s názvem Temp: , který se automaticky namapuje na dočasnou složku pro operační systém, který používáte.With this feature, you get a PSDrive called Temp: that is automatically mapped to the temporary folder for the operating system you are using.

PříkladExample

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

Uvědomte si, že nativní příkazy souborů ls (jako na Linux) nevědí o PSDrives a tuto Temp: jednotku uvidí.Be aware that native file commands (like ls on Linux) are not aware of PSDrives and won't see this Temp: drive.

Rozšíření zkratkyAbbreviation Expansion

U rutin PowerShellu se očekává, že mají popisné podstatné jméno.PowerShell cmdlets are expected to have descriptive nouns. Výsledkem je dlouhé názvy, které jsou obtížnější pro typ.This results in long names that are more difficult to type. Tato funkce umožňuje zadat pouze velká písmena rutiny a použít doplňování tabulátoru k vyhledání shody.This feature allows you to just type the uppercase characters of the cmdlet and use tab-completion to find a match.

Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion

PříkladExample

PS> i-arsavsf

Pokud jste narazili na kartu a máte nainstalovanou Azure PowerShell AZ Module, provede automatické dokončování:If you hit tab, and have the Azure PowerShell Az module installed, it will autocomplete to:

PS> Import-AzRecoveryServicesAsrVaultSettingsFile

Poznámka

Tato funkce je určena k interaktivnímu použití.This feature is intended to be used interactively. Zkrácené formy rutin se nedají spustit.Abbreviated forms of cmdlets can't be executed. Tato funkce není náhradou za aliasy.This feature is not a replacement for aliases.

Zásadní změnyBreaking Changes

  • Opravte -NoEnumerate chování Write-Output v systému tak, aby bylo konzistentní s Windows PowerShellem.Fix -NoEnumerate behavior in Write-Output to be consistent with Windows PowerShell. (#9069)(#9069)
  • Join-String -InputObject 1,2,3 Výsledek se rovná 1,2,3 | Join-String výsledku (#8611) (děkuji @sethvs!)Make Join-String -InputObject 1,2,3 result equal to 1,2,3 | Join-String result (#8611) (Thanks @sethvs!)
  • Přidat -Stable k Sort-Object testům a související testy (#7862) @KirkMunro(děkuji!)Add -Stable to Sort-Object and related tests (#7862) (Thanks @KirkMunro!)
  • Vylepšete Start-Sleep rutinu, která bude akceptovat zlomky sekund ( @Prototyyppi#8537) (děkuji!)Improve Start-Sleep cmdlet to accept fractional seconds (#8537) (Thanks @Prototyyppi!)
  • Změnit zatřiďovací tabulku na použití OrdinalIgnoreCase pro case-insensitive všechny jazykové verze (#8566)Change hashtable to use OrdinalIgnoreCase to be case-insensitive in all Cultures (#8566)
  • Oprava LiteralPath Import-Csv pro vytvoření vazby na Get-ChildItem výstup (#8277) (děkuji @iSazonov!)Fix LiteralPath in Import-Csv to bind to Get-ChildItem output (#8277) (Thanks @iSazonov!)
  • Pokud se používá oddělovač dvojité uvozovky v (#7899) (děkuji Import-Csv @Topping!), už neskočí sloupec bez názvu.No longer skips a column without name if double quote delimiter is used in Import-Csv (#7899) (Thanks @Topping!)
  • Get-ExperimentalFeaturejiž nemá -ListAvailable přepínač (#8318)Get-ExperimentalFeature no longer has -ListAvailable switch (#8318)
  • Parametr ladění se teď $DebugPreference nastaví na pokračovat místo dotazování (#8195) (děkuji @KirkMunro!).Debug parameter now sets $DebugPreference to Continue instead of Inquire (#8195) (Thanks @KirkMunro!)
  • Dodržovat -OutputFormat , pokud je zadaný v neinteraktivním, přesměrovaném příkazu, který se používá s pwsh (#8115)Honor -OutputFormat if specified in non-interactive, redirected, encoded command used with pwsh (#8115)
  • Načíst sestavení ze základní cesty modulu před pokusem o načtení z mezipaměti GAC (#8073)Load assembly from module base path before trying to load from the GAC (#8073)
  • Odebrat tildu z balíčků verze Linux Preview (#8244)Remove tilde from Linux preview packages (#8244)
  • Přesunout zpracování -WorkingDirectory před zpracováním profilů (#8079)Move processing of -WorkingDirectory before processing of profiles (#8079)
  • Nepřidávat PATHEXT proměnnou prostředí v systému Unix (#7697) (děkuji @iSazonov!)Do not add PATHEXT environment variable on Unix (#7697) (Thanks @iSazonov!)

Známé problémyKnown Issues

  • Vzdálená komunikace na platformách Windows IOT ARM má potíže při načítání modulů.Remoting on Windows IOT ARM platforms has an issue loading modules. Viz (#8053)See (#8053)

Obecné aktualizace a opravyGeneral Updates and Fixes

  • Povolit dokončování karet bez rozlišení velkých a malých písmen pro soubory a složky v systému souborů a malých a velkých písmen (#8128)Enable case-insensitive tab completion for files and folders on case-sensitive filesystem (#8128)
  • Nastavte PSVersionInfo. PSVersion a PSVersionInfo. PSEdition Public (#8054) (děkuji @KirkMunro!).Make PSVersionInfo.PSVersion and PSVersionInfo.PSEdition public (#8054) (Thanks @KirkMunro!)
  • Přidat odvození typu pro $_ / $PSItem v catch{ } blocích (#8020) (děkuji @vexx32!)Add Type Inference for $_ / $PSItem in catch{ } blocks (#8020) (Thanks @vexx32!)
  • Oprava odvození typu volání statických metod (#8018) (děkuji @SeeminglyScience!)Fix static method invocation type inference (#8018) (Thanks @SeeminglyScience!)
  • Vytváření Select-Objectodvozených typů pro, Group-Object, PSObject a zatřiďovací tabulky (#7231) (děkuji @powercode!)Create inferred types for Select-Object, Group-Object, PSObject and Hashtable (#7231) (Thanks @powercode!)
  • Podpora volání metody s ByRef-like parametry typu (#7721)Support calling method with ByRef-like type parameters (#7721)
  • Pořídí případ, kde už je v PSModulePath prostředí cesta k modulu Windows PowerShell (#7727).Handle the case where the Windows PowerShell module path is already in the environment's PSModulePath (#7727)
  • Povolit SecureString rutiny pro jiný systém než Windows uložením prostého textu (#9199)Enable SecureString cmdlets for non-Windows by storing the plain text (#9199)
  • Při importu CLIXML s SecureString (#7997) zlepšit chybovou zprávu v jiných oknech než WindowsImprove error message on non-Windows when importing clixml with securestring (#7997)
  • Přidání parametru ReplyTo do Send-MailMessage (#8727) (děkuji @replicaJunction!)Adding parameter ReplyTo to Send-MailMessage (#8727) (Thanks @replicaJunction!)
  • Přidat zastaralou Send-MailMessage zprávu do (#9178)Add Obsolete message to Send-MailMessage (#9178)
  • Oprava Restart-Computer pro práci, localhost Pokud není služba WinRM k dispozici (#9160)Fix Restart-Computer to work on localhost when WinRM is not present (#9160)
  • Při Start-Job hostování PowerShellu vyvolat ukončující chybu (#9128)Make Start-Job throw terminating error when PowerShell is being hosted (#9128)
  • Přidat akcelerátory a přípony typů C# pro UShort, uint, ULong a krátké literály (#7813) (děkuji @vexx32!)Add C# style type accelerators and suffixes for ushort, uint, ulong, and short literals (#7813) (Thanks @vexx32!)
  • Přidané nové přípony pro číselné literály – viz about_Numeric_Literals (#7901) (děkuji @vexx32!)Added new suffixes for numeric literals - see about_Numeric_Literals (#7901) (Thanks @vexx32!)
  • Správná úroveň dopadu sestavy, pokud SupportsShouldProcess není nastavená na true (#8209) (děkuji @vexx32!)Correctly Report impact level when SupportsShouldProcess is not set to 'true' (#8209) (Thanks @vexx32!)
  • Oprava potíží se znakovou sadou v případě webových rutin (#8742) ( @markekrausděkuji!)Fix Request Charset Issues in Web Cmdlets (#8742) (Thanks @markekraus!)
  • Oprava očekávat 100-continue problémy s webovými rutinami (#8679) ( @markekrausděkuji!)Fix Expect 100-continue issue with Web Cmdlets (#8679) (Thanks @markekraus!)
  • Opravte problém blokujícího souboru pomocí webových rutin (#7676) ( @Claustnděkuji!)Fix file blocking issue with web cmdlets (#7676) (Thanks @Claustn!)
  • Oprava potíží s analýzou znakové Invoke-RestMethod stránky v (#8694) @markekraus(děkuji!)Fix code page parsing issue in Invoke-RestMethod (#8694) (Thanks @markekraus!)
  • Refaktoring ConvertTo-Json pro vystavení JsonObject. ConvertToJson jako veřejného rozhraní API (#8682)Refactor ConvertTo-Json to expose JsonObject.ConvertToJson as a public API (#8682)
  • Přidat konfigurovatelné maximální hloubku ConvertFrom-Json s hloubkou (#8199) (děkuji @louistio!)Add configurable maximum depth in ConvertFrom-Json with -Depth (#8199) (Thanks @louistio!)
  • Přidání parametru EscapeHandling v ConvertTo-Json rutině (#7775) ( @iSazonovděkuji!)Add EscapeHandling parameter in ConvertTo-Json cmdlet (#7775) (Thanks @iSazonov!)
  • Přidat -CustomPipeName do pwsh a Enter-PSHostProcess (#8889)Add -CustomPipeName to pwsh and Enter-PSHostProcess (#8889)
  • Povolit vytváření relativních symbolických odkazů ve New-Item Windows s (#8783)Enable creating relative symbolic links on Windows with New-Item (#8783)
  • Umožnit uživatelům systému Windows v režimu vývojářů vytvářet symbolických odkazů bez zvýšení oprávnění (#8534)Allow Windows users in developer mode to create symlinks without elevation (#8534)
  • Povolit Write-Information přijetí $null (#8774)Enable Write-Information to accept $null (#8774)
  • Oprava Get-Help pro pokročilé funkce s obsahem MAML help (#8353)Fix Get-Help for advanced functions with MAML help content (#8353)
  • Oprava Get-Help problému s PSTypeName s parametrem-Parameter, pokud je deklarovaný jenom jeden parametr ( @pougetat#8754) (děkuji!)Fix Get-Help PSTypeName issue with -Parameter when only one parameter is declared (#8754) (Thanks @pougetat!)
  • Oprava výpočtu tokenu Get-Help pro spuštění v ScriptBlock pro nápovědu k komentářůmToken calculation fix for Get-Help executed on ScriptBlock for comment help. (#8238) (Děkuji @hubuk!)(#8238) (Thanks @hubuk!)
  • Změnit Get-Help parametr parametru rutiny tak, aby přijímal pole řetězců (#8454) ( @sethvsděkuji!)Change Get-Help cmdlet -Parameter parameter so it accepts string arrays (#8454) (Thanks @sethvs!)
  • Pokud cesta obsahuje mezery (#8571) (děkuji @pougetat!), vyřešte pager.Resolve PAGER if its path contains spaces (#8571) (Thanks @pougetat!)
  • Přidáním výzvy k použití funkce less v nápovědě k pokynu uživateli, jak ukončit (#7998)Add prompt to the use of less in the function 'help' to instruct user how to quit (#7998)
  • Přidání podpory výčtového typu a typů Format-Hex znaků v rutině (#8191 @iSazonov) (děkuji!)Add support enum and char types in Format-Hex cmdlet (#8191) (Thanks @iSazonov!)
  • Odebrat ShouldProcess z Format-Hex (#8178)Remove ShouldProcess from Format-Hex (#8178)
  • Přidejte nové parametry posunu a počtu Format-Hex do a refaktorujte rutinu (#7877) ( @iSazonovděkuji!).Add new Offset and Count parameters to Format-Hex and refactor the cmdlet (#7877) (Thanks @iSazonov!)
  • Povolí název jako klíč aliasu pro jmenovku v ConvertTo-Html, aby položka Width byla celé číslo (#8426) (děkuji @mklement0!).Allow 'name' as an alias key for 'label' in ConvertTo-Html, allow the 'width' entry to be an integer (#8426) (Thanks @mklement0!)
  • Vypočítané vlastnosti založené na ScriptBlock znovu Pracujte ConvertTo-Html v (#8427) ( @mklement0děkuji!).Make scriptblock based calculated properties work again in ConvertTo-Html (#8427) (Thanks @mklement0!)
  • Přidat rutinu Join-String pro vytvoření textu ze vstupu kanálu (#7660) ( @powercodeděkuji!)Add cmdlet Join-String for creating text from pipeline input (#7660) (Thanks @powercode!)
  • Oprava Join-String rutiny parametru formatString pro rutinu (#8449 @sethvs) (děkuji!)Fix Join-String cmdlet FormatString parameter logic (#8449) (Thanks @sethvs!)
  • Změna Clear-Host na používání $RAWUI a zrušení pro práci prostřednictvím vzdálené komunikace (#8609)Change Clear-Host back to using $RAWUI and clear to work over remoting (#8609)
  • Změna Clear-Host na jednoduchý název [console]::clear a odebrání aliasu Clear z Unixu (#8603)Change Clear-Host to simply called [console]::clear and remove clear alias from Unix (#8603)
  • Oprava LiteralPath Import-Csv pro vytvoření vazby na Get-ChildItem výstup (#8277) (děkuji @iSazonov!)Fix LiteralPath in Import-Csv to bind to Get-ChildItem output (#8277) (Thanks @iSazonov!)
  • funkce help by neměla použít pager pro AliasHelpInfo (#8552)help function shouldn't use pager for AliasHelpInfo (#8552)
  • Přidat -UseMinimalHeader do Start-Transcript pro minimalizaci hlavičky přepisu (#8402) @lukexjeremy(děkuji!)Add -UseMinimalHeader to Start-Transcript to minimize transcript header (#8402) (Thanks @lukexjeremy!)
  • Přidat Enable-ExperimentalFeature rutiny a Disable-ExperimentalFeature (#8318)Add Enable-ExperimentalFeature and Disable-ExperimentalFeature cmdlets (#8318)
  • Zpřístupnit všechny rutiny z PSDiagnostics , pokud je k dispozici soubor Logman. exe (#8366)Expose all cmdlets from PSDiagnostics if logman.exe is available (#8366)
  • Odebrat trvalý parametr z New-PSDrive platformy non-Windows na platformě (#8291) ( @lukexjeremyděkuji!)Remove Persist parameter from New-PSDrive on non-Windows platform (#8291) (Thanks @lukexjeremy!)
  • Přidat podporu pro cd + (#7206) (děkuji @bergmeister!)Add support for cd + (#7206) (Thanks @bergmeister!)
  • Povolit Set-Location -LiteralPath pro práci se složkami s názvem-a + (#8089)Enable Set-Location -LiteralPath to work with folders named - and + (#8089)
  • Test-PathVrátí $false hodnotu, pokud je zadaná $null prázdná hodnota nebo hodnota cesty (#8080 @vexx32) (děkuji!).Test-Path returns $false when given an empty or $null path value (#8080) (Thanks @vexx32!)
  • Umožňuje vrátit dynamický parametr i v případě, že cesta neodpovídá žádnému poskytovateli (#7957).Allow dynamic parameter to be returned even if path does not match any provider (#7957)
  • Podpora Get-PSHostProcessInfo a Enter-PSHostProcess na platformách UNIX (#8232)Support Get-PSHostProcessInfo and Enter-PSHostProcess on Unix platforms (#8232)
  • Snížení přidělení v Get-Content rutině (#8103) ( @iSazonovděkuji!)Reduce allocations in Get-Content cmdlet (#8103) (Thanks @iSazonov!)
  • Povolit Add-Content sdílení přístupu pro čtení k ostatním nástrojům při psaní obsahu (#8091)Enable Add-Content to share read access with other tools while writing content (#8091)
  • Get/Add-Contentvyvolá vylepšenou chybu, když cílíte na kontejner (#7823 @kvprasoon) (děkuji!).Get/Add-Content throws improved error when targeting a container (#7823) (Thanks @kvprasoon!)
  • -NoUserOverrides Přidání -Name -ListAvailable parametrů do Get-Culture rutiny (#7702) (děkuji @iSazonov!)Add -Name, -NoUserOverrides and -ListAvailable parameters to Get-Culture cmdlet (#7702) (Thanks @iSazonov!)
  • Přidejte sjednocený atribut pro dokončení parametru kódování .Add unified attribute for completion for Encoding parameter. (#7732) (Děkuji @ThreeFive-O!)(#7732) (Thanks @ThreeFive-O!)
  • Povoluje číselné identifikátory a názvy registrovaných znakových stránek v parametrech kódování (#7636) @iSazonov(děkuji!).Allow numeric Ids and name of registered code pages in Encoding parameters (#7636) (Thanks @iSazonov!)
  • Oprava Rename-Item -Path pomocí zástupného znaku (#7398) (děkuji @kwkam!)Fix Rename-Item -Path with wildcard char (#7398) (Thanks @kwkam!)
  • Při použití Start-Transcript souboru a existuje prázdný soubor místo odstranění (#8131) (děkuji @paalbra!).When using Start-Transcript and file exists, empty file rather than deleting (#8131) (Thanks @paalbra!)
  • Zpřístupněte Add-Type otevřené zdrojové soubory pomocí FileAccess. Read a souboru Shared. přečtěte si explicitně (#7915 @IISResetMe) (děkuji!).Make Add-Type open source files with FileAccess.Read and FileShare.Read explicitly (#7915) (Thanks @IISResetMe!)
  • Oprava Enter-PSSession -ContainerId pro nejnovější Windows (#7883)Fix Enter-PSSession -ContainerId for the latest Windows (#7883)
  • Zajistěte, Test-ModuleManifest aby vlastnost NestedModules byla naplněna (#7859)Ensure NestedModules property gets populated by Test-ModuleManifest (#7859)
  • Přidat %F případ do Get-Date -UFormat (#7630) (děkuji @britishben!)Add %F case to Get-Date -UFormat (#7630) (Thanks @britishben!)
  • Oprava Set-Service -Status Stopped pro zastavení služeb se závislostmi (#5525) ( @zhengguděkuji!)Fix Set-Service -Status Stopped to stop services with dependencies (#5525) (Thanks @zhenggu!)