Dela via


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. Om du vill se en fullständig lista över förbättringar kan du läsa 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.

Kommandot hittade inte förslag

Den här funktionen använder fuzzy-matchning för att hitta förslag på kommandon eller cmdletar som du kanske har feltypat.

Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion

Exempel

I det här exemplet är det felstavade cmdletnamnet 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 från 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 inbyggda filkommandon (som ls i Linux) inte är medvetna om PSDrives 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 tab-completion 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 i Write-Output för att vara konsekvent med Windows PowerShell. (#9069)
  • Gör Join-String -InputObject 1,2,3 resultatet lika med 1,2,3 | Join-String resultatet (#8611) (Tack @sethvs!)
  • Lägg till -StableSort-Object i och relaterade tester (#7862) (tack @KirkMunro!)
  • Förbättra Start-Sleep cmdleten för att acceptera bråkdels sekunder (#8537) (tack @Prototyyppi!)
  • Ändra hashtable för att använda OrdinalIgnoreCase för att finnas case-insensitive i alla kulturer (#8566)
  • Åtgärda LiteralPath för Import-Csv att binda till Get-ChildItem utdata (#8277) (tack @iSazonov!)
  • Hoppar inte längre över en kolumn utan namn om avgränsare för 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 $DebugPreferencepå 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ättning från modulbassökvägen innan du försöker läsa in från GAC (#8073)
  • Ta bort tilde från förhandsversionspaket för Linux (#8244)
  • Flytta bearbetning av -WorkingDirectory före bearbetning av profiler (#8079)
  • Lägg inte till PATHEXT miljövariabel i 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 tabbar 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 i catch{ } block (#8020) (tack @vexx32!)
  • Åtgärda inferens för statisk metodanropstyp (#8018) (tack @SeeminglyScience!)
  • Skapa härledda typerna för Select-Object, Group-ObjectPSObject 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 till Send-MailMessage (#8727) (tack @replicaJunction!)
  • Lägg till föråldrat meddelande i Send-MailMessage (#9178)
  • Korrigering Restart-Computer att arbeta med localhost när WinRM inte finns (#9160)
  • Fel Start-Job vid utlösen när PowerShell körs (#9128)
  • Lägg till C#-stilacceleratorer 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 EscapeHandling-parameter i ConvertTo-Json cmdlet (#7775) (tack @iSazonov!)
  • Lägg till -CustomPipeName i pwsh och Enter-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 cmdlet –Parameterparameter 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 parametrar för offset och antal i Format-Hex och omstrukturera cmdleten (#7877) (tack @iSazonov!)
  • Tillåt "namn" som en aliasnyckel för "etikett" i ConvertTo-Html, tillåt att "bredd"-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!)
  • Clear-Host tillbaka till att använda $RAWUI och rensa för att arbeta över 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 till Get-ChildItem utdata (#8277) (tack @iSazonov!)
  • hjälpfunktionen bör inte använda pager för AliasHelpInfo (#8552)
  • Lägg till -UseMinimalHeaderStart-Transcript för att minimera avskriftshuvudet (#8402) (tack @lukexjeremy!)
  • Lägg till Enable-ExperimentalFeature och Disable-ExperimentalFeature cmdletar (#8318)
  • Exponera alla cmdletar från PSDiagnostics om logman.exe är tillgänglig (#8366)
  • Ta bort persist-parametern från New-PSDrive plattformen non-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 och Enter-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 -Nameparametrarna -NoUserOverrides och -ListAvailable i Get-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 i Get-Date -UFormat (#7630) (tack @britishben!)
  • Korrigering Set-Service -Status Stopped för att stoppa tjänster med beroenden (#5525) (tack @zhenggu!)