Nyheter i PowerShell Core 6.2
PowerShell Core 6.2-versionen fokuserade på prestandaförbättringar, felkorrigeringar och mindre cmdletar och språkförbättringar som förbättrar kvaliteten. En fullständig lista över förbättringar finns i våra detaljerade ändringsloggar på GitHub.
Experimentella funktioner
Tidigare har vi aktiverat stöd för experimentella funktioner. I 6.2-versionen har vi fyra experimentella funktioner att testa. Ge feedback så att vi kan göra förbättringar och avgöra om funktionen är värd att främja till mainstream-status.
Använd Get-ExperimentalFeature
för att hämta en lista över tillgängliga experimentella funktioner. Du kan aktivera eller inaktivera dessa funktioner med Enable-ExperimentalFeature
och Disable-ExperimentalFeature
.
Det gick inte att hitta kommandots förslag
Den här funktionen använder fuzzy-matchning för att hitta förslag på kommandon eller cmdletar som du kan ha feltypat.
Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion
Exempel
I det här exemplet är det felstavade cmdlet-namnet fuzzy matchat med flera förslag från mest sannolikt till minst troligt.
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.
Implicit fjärrkommunikation batchbearbetning
När du använder implicit fjärrkommunikation i en pipeline behandlar PowerShell varje kommando i pipelinen oberoende av varandra. Objekt serialiseras upprepade gånger och de-serialized
mellan klienten och fjärrsystemet över körningen av pipelinen.
Med den här funktionen analyserar PowerShell pipelinen för att avgöra om kommandot är säkert att köra och om det finns i målsystemet. När det är sant kör PowerShell hela pipelinen via fjärranslutning och serialiserar bara och de-serializes
resultaten tillbaka till klienten.
Enable-ExperimentalFeature -Name PSImplicitRemotingBatching
Ett verkligt test av Get-Process | Sort-Object
över localhost minskar från 10–15 sekunder till 20–30 millisekunder. Funktionen behöver bara aktiveras på klienten. Inga ändringar krävs på servern.
Temporär enhet
Enable-ExperimentalFeature -Name PSTempDrive
Om du använder PowerShell Core på olika operativsystem upptäcker du att miljövariabeln för att hitta den tillfälliga katalogen skiljer sig åt i Windows, macOS och Linux! Med den här funktionen får du ett PSDrive-namnTemp:
som automatiskt mappas till den tillfälliga mappen för det operativsystem som du använder.
Exempel
PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!
Tänk på att interna filkommandon (t.ex ls
. i Linux) inte känner till PSDrive och inte ser den här Temp:
enheten.
Förkortningsexpansion
PowerShell-cmdletar förväntas ha beskrivande substantiv. Detta resulterar i långa namn som är svårare att skriva. Med den här funktionen kan du bara skriva versaler i cmdleten och använda tabbifyllning för att hitta en matchning.
Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion
Exempel
PS> i-arsavsf
Om du trycker på fliken och har Azure PowerShell Az-modulen installerad, kompletteras den automatiskt till:
PS> Import-AzRecoveryServicesAsrVaultSettingsFile
Anteckning
Den här funktionen är avsedd att användas interaktivt. Förkortade former av cmdletar kan inte köras. Den här funktionen ersätter inte alias.
Icke-bakåtkompatibla ändringar
- Åtgärda
-NoEnumerate
beteendet iWrite-Output
för att vara konsekvent med Windows PowerShell. (#9069) - Gör
Join-String -InputObject 1,2,3
resultatet lika med1,2,3 | Join-String
resultatet (#8611) (Tack @sethvs!) - Lägg till
-Stable
Sort-Object
i och relaterade tester (#7862) (tack @KirkMunro!) - Förbättra
Start-Sleep
cmdleten för att acceptera bråksekunder (#8537) (tack @Prototyyppi!) - Ändra hashtabellen så att OrdinalIgnoreCase används
case-insensitive
i alla kulturer (#8566) - Åtgärda LiteralPath i
Import-Csv
för att binda tillGet-ChildItem
utdata (#8277) (tack @iSazonov!) - Hoppar inte längre över en kolumn utan namn om avgränsare med dubbla citattecken används i
Import-Csv
(#7899) (tack @Topping!) Get-ExperimentalFeature
har-ListAvailable
inte längre växel (#8318)- Felsökningsparametern ställer nu in
$DebugPreference
på Fortsätt i stället för Fråga (#8195) (Tack @KirkMunro!) - Respektera
-OutputFormat
om det anges i ett icke-interaktivt, omdirigerat, kodat kommando som används med pwsh (#8115) - Läs in sammansättningen från modulbassökvägen innan du försöker läsa in från GAC (#8073)
- Ta bort tilde från Linux-förhandsgranskningspaket (#8244)
- Flytta bearbetning av
-WorkingDirectory
före bearbetning av profiler (#8079) - Lägg inte till
PATHEXT
miljövariabel på Unix (#7697) (tack @iSazonov!)
Kända problem
- Fjärrkommunikation på Windows IOT ARM-plattformar har problem med att läsa in moduler. Se (#8053)
Allmänna Uppdateringar och korrigeringar
- Aktivera skiftlägesokänslig tabbifyllning för filer och mappar i skiftlägeskänsligt filsystem (#8128)
- Gör PSVersionInfo.PSVersion och PSVersionInfo.PSEdition offentliga (#8054) (tack @KirkMunro!)
- Lägg till typinferens för
$_
/$PSItem
icatch{ }
block (#8020) (tack @vexx32!) - Åtgärda slutsatsdragning av anropstyp för statisk metod (#8018) (tack @SeeminglyScience!)
- Skapa härledda typer för
Select-Object
,Group-Object
, PSObject och Hashtable (#7231) (tack @powercode!) - Stöd för anropsmetod med
ByRef-like
typparametrar (#7721) - Hantera det fall där Windows PowerShell modulsökvägen redan finns i miljöns PSModulePath (#7727)
- Aktivera
SecureString
cmdletar för icke-Windows genom att lagra oformaterad text (#9199) - Förbättra felmeddelandet i icke-Windows när du importerar clixml med securestring (#7997)
- Lägga till parametern ReplyTo i
Send-MailMessage
(#8727) (tack @replicaJunction!) - Lägg till föråldrat meddelande i
Send-MailMessage
(#9178) - Korrigering
Restart-Computer
att arbeta medlocalhost
när WinRM inte finns (#9160) - Generera
Start-Job
ett avslutande fel när PowerShell körs (#9128) - Lägg till C#-formattypacceleratorer och suffix för ushort-, uint-, ulong- och korta literaler (#7813) (Tack @vexx32!)
- Nya suffix har lagts till för numeriska literaler – se about_Numeric_Literals (#7901) (Tack @vexx32!)
- Rapportera effektnivån korrekt när SupportsShouldProcess inte är inställt på "true" (#8209) (tack @vexx32!)
- Åtgärda problem med begärandekoduppsättningar i webb-cmdletar (#8742) (tack @markekraus!)
- Åtgärda expect-problem
100-continue
med webb-cmdletar (#8679) (tack @markekraus!) - Åtgärda filblockeringsproblem med webb-cmdletar (#7676) (tack @Claustn!)
- Åtgärda problem med parsning av kodsidor i
Invoke-RestMethod
(#8694) (tack @markekraus!) ConvertTo-Json
Omstrukturera för att exponera JsonObject.ConvertToJson som ett offentligt API (#8682)- Lägg till konfigurerbart maximalt djup i
ConvertFrom-Json
med -Depth (#8199) (Tack @louistio!) - Lägg till parametern EscapeHandling i
ConvertTo-Json
cmdleten (#7775) (tack @iSazonov!) - Lägg till
-CustomPipeName
i pwsh ochEnter-PSHostProcess
(#8889) - Aktivera skapandet av relativa symboliska länkar i Windows med
New-Item
(#8783) - Tillåt Windows-användare i utvecklarläge att skapa symlinks utan utökade privilegier (#8534)
- Aktivera
Write-Information
för att acceptera$null
(#8774) - Korrigering
Get-Help
för avancerade funktioner med MAML-hjälpinnehåll (#8353) - Åtgärda
Get-Help
PSTypeName-problem med -Parameter när endast en parameter deklareras (#8754) (tack @pougetat!) - Tokenberäkningskorrigering för
Get-Help
körs på ScriptBlock för kommentarshjälp. (#8238) (Tack @hubuk!) - Ändra
Get-Help
cmdleten -Parameterparametern så att den accepterar strängmatriser (#8454) (tack @sethvs!) - Lös PAGER om sökvägen innehåller blanksteg (#8571) (tack @pougetat!)
- Lägg till en uppmaning om att använda
less
i funktionen "hjälp" för att instruera användaren att avsluta (#7998) - Lägg till stöduppräknings- och teckentyper i
Format-Hex
cmdlet (#8191) (tack @iSazonov!) - Ta bort ShouldProcess från
Format-Hex
(#8178) - Lägg till nya förskjutnings- och antalsparametrar till
Format-Hex
och omstrukturera cmdleten (#7877) (tack @iSazonov!) - Tillåt "namn" som aliasnyckel för "etikett" i
ConvertTo-Html
, tillåt att "width"-posten är ett heltal (#8426) (tack @mklement0!) - Få skriptblocksbaserade beräknade egenskaper att fungera igen i
ConvertTo-Html
(#8427) (Tack @mklement0!) - Lägg till cmdlet
Join-String
för att skapa text från pipelineindata (#7660) (tack @powercode!) - Åtgärda
Join-String
parameterlogik för cmdleten FormatString (#8449) (tack @sethvs!) - Gå
Clear-Host
tillbaka till att använda$RAWUI
och rensa för att arbeta via fjärrkommunikation (#8609) - Ändra
Clear-Host
till att helt enkelt anropa[console]::clear
och ta bort ett tydligt alias från Unix (#8603) - Åtgärda LiteralPath för
Import-Csv
att binda tillGet-ChildItem
utdata (#8277) (tack @iSazonov!) - hjälpfunktionen bör inte använda pager för AliasHelpInfo (#8552)
- Lägg till
-UseMinimalHeader
Start-Transcript
för att minimera avskriftshuvudet (#8402) (tack @lukexjeremy!) - Lägg till
Enable-ExperimentalFeature
ochDisable-ExperimentalFeature
cmdletar (#8318) - Exponera alla cmdletar från PSDiagnostics om logman.exe är tillgänglig (#8366)
- Ta bort persist-parametern från
New-PSDrive
plattformennon-Windows
(#8291) (tack @lukexjeremy!) - Lägg till stöd för
cd +
(#7206) (Tack @bergmeister!) - Aktivera
Set-Location -LiteralPath
för att arbeta med mappar med namnet - och + (#8089) Test-Path
returnerar$false
när du får ett tomt värde eller$null
sökvägsvärde (#8080) (tack @vexx32!)- Tillåt att dynamisk parameter returneras även om sökvägen inte matchar någon provider (#7957)
- Stöd
Get-PSHostProcessInfo
ochEnter-PSHostProcess
på Unix-plattformar (#8232) - Minska allokeringar i
Get-Content
cmdlet (#8103) (tack @iSazonov!) - Aktivera
Add-Content
för att dela läsåtkomst med andra verktyg när du skriver innehåll (#8091) Get/Add-Content
genererar ett förbättrat fel när du riktar in dig på en container (#7823) (tack @kvprasoon!)- Lägg till
-Name
parametrarna-NoUserOverrides
och-ListAvailable
iGet-Culture
cmdleten (#7702) (tack @iSazonov!) - Lägg till enhetligt attribut för slutförande för kodningsparametern . (#7732) (Tack @ThreeFive-O!)
- Tillåt numeriska ID:n och namnet på registrerade kodsidor i kodningsparametrar (#7636) (tack@iSazonov!)
- Korrigering
Rename-Item -Path
med jokertecken (#7398) (tack @kwkam!) - När du använder
Start-Transcript
och filen finns, tom fil i stället för att ta bort (#8131) (Tack @paalbra!) - Gör
Add-Type
öppen källkod filer med FileAccess.Read och FileShare.Read explicit (#7915) (tack@IISResetMe!) - Korrigering
Enter-PSSession -ContainerId
för senaste Windows (#7883) - Kontrollera att egenskapen NestedModules fylls i av
Test-ModuleManifest
(#7859) - Lägg till
%F
ärende iGet-Date
-UFormat (#7630) (tack @britishben!) - Korrigering
Set-Service -Status Stopped
för att stoppa tjänster med beroenden (#5525) (tack @zhenggu!)