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
doSort-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álPathu
Import-Csv
pro vytvoření vazby naGet-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
$_
/$PSItem
catch{ }
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-Object
PSObject 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ácelocalhost
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 aEnter-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 kGet-ChildItem
výstupu (#8277) (děkujeme @iSazonov!) - Funkce help by neměla používat pager pro AliasHelpInfo (#8552)
- Přidání
-UseMinimalHeader
kStart-Transcript
minimalizaci záhlaví přepisu (#8402) (díky @lukexjeremy!) - Přidání
Enable-ExperimentalFeature
aDisable-ExperimentalFeature
rutiny (#8318) - Zveřejnění všech rutin z PSDiagnostics , pokud je k dispozici logman.exe (#8366)
- Odebrání parametru Persist z
New-PSDrive
non-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
aEnter-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í
-Name
parametrů-NoUserOverrides
a-ListAvailable
parametrů doGet-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 doGet-Date
-UFormat (#7630) (díky @britishben!) - Oprava
Set-Service -Status Stopped
zastavení služeb se závislostmi (#5525) (děkujeme @zhenggu!)