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 souboruWrite-Output
tak, aby bylo konzistentní s Windows PowerShell. (#9069) - Nastavit
Join-String -InputObject 1,2,3
výsledek jako1,2,3 | Join-String
výsledek (#8611) (Díky @sethvs!) - Přidat
-Stable
doSort-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 naGet-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
vcatch{ }
blocích (#8020) (Díky @vexx32!) - Oprava odvozování typu statické metody (#8018) (Díky @SeeminglyScience!)
- Create odvozené typy pro
Select-Object
, ,Group-Object
PSObject 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ácilocalhost
, 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 aEnter-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 naGet-ChildItem
výstup (#8277) (Díky @iSazonov!) - Funkce nápovědy by pro AliasHelpInfo neměla používat pager (#8552)
- Přidání
-UseMinimalHeader
doStart-Transcript
pro minimalizaci hlavičky přepisu (#8402) (Díky @lukexjeremy!) - Přidání
Enable-ExperimentalFeature
rutin aDisable-ExperimentalFeature
(#8318) - Zveřejnění všech rutin z PSDiagnostics , pokud je k dispozici logman.exe (#8366)
- Odebrání parametru Persist z na
New-PSDrive
non-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
aEnter-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í
-Name
parametrů ,-NoUserOverrides
a-ListAvailable
doGet-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 doGet-Date
formátu -UFormat (#7630) (Díky @britishben!) - Oprava
Set-Service -Status Stopped
zastavení služeb se závislostmi (#5525) (Díky @zhenggu!)