Vad är nytt i PowerShell Core 6.2

PowerShell Core 6.2-versionen fokuserade på prestandaförbättringar, buggfixar samt mindre cmdlet- och språkförbättringar som förbättrar kvaliteten. För att se en fullständig lista över förbättringar, kolla in våra detaljerade ändringsloggar på GitHub.

Experimentella funktioner

Tidigare aktiverade vi stöd för experimentella funktioner. I version 6.2 har vi fyra experimentella funktioner att testa. Vänligen ge feedback så att vi kan göra förbättringar och för att avgöra om funktionen är värd att marknadsföra till mainstream.

Använd Get-ExperimentalFeature för att få en lista över tillgängliga experimentella funktioner. Du kan aktivera eller inaktivera dessa funktioner med Enable-ExperimentalFeature och Disable-ExperimentalFeature.

Kommando ej hittade förslag

Denna funktion använder fuzzy matching för att hitta förslag på kommandon eller cmdlets som du kan ha skrivit fel.

Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion

Example

I detta exempel är det felstavade cmdlet-namnet otydligt matchat med flera förslag från mest sannolikt till minst sannolikt.

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 remonteringsbatchning

När implicit fjärrstyrning används i en pipeline behandlar PowerShell varje kommando i pipelinen oberoende. Objekten serialiseras upprepade gånger och de-serialized mellan klienten och fjärrsystemet under körningen av pipelinen.

Med denna funktion analyserar PowerShell pipelinen för att avgöra om kommandot är säkert att köra och om det finns på målsystemet. När det är sant kör PowerShell hela pipelinen på distans och serialiserar endast resultaten tillbaka de-serializes till klienten.

Enable-ExperimentalFeature -Name PSImplicitRemotingBatching

Ett verkligt test av Get-Process | Sort-Object över lokal värd minskar från 10–15 sekunder till 20–30 millisekunder. Funktionen behöver bara vara aktiverad i klienten. Inga ändringar krävs på servern.

Tillfällig drift

Enable-ExperimentalFeature -Name PSTempDrive

Om du använder PowerShell Core på olika operativsystem kommer du att upptäcka att miljövariabeln för att hitta den tillfälliga katalogen är annorlunda på Windows, macOS och Linux! Med denna funktion får du en PSDrive som Temp: kallas och som automatiskt mappas till den temporära mappen för operativsystemet du använder.

Example

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

Var medveten om att inbyggda filkommandon (som ls på Linux) inte är medvetna om PSDrives och inte ser denna Temp: enhet.

Förkortningsutvidgning

PowerShell-cmdlets förväntas ha beskrivande substantiv. Detta resulterar i långa namn som är svårare att skriva. Denna funktion låter dig bara skriva in versalerna i cmdleten och använda tab-completion för att hitta en träff.

Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion

Example

PS> i-arsavsf

Om du trycker på tab och har Azure PowerShell Az-modulen installerad, kommer den att autokomplettera till:

PS> Import-AzRecoveryServicesAsrVaultSettingsFile

Anmärkning

Denna funktion är avsedd att användas interaktivt. Förkortade former av cmdlets kan inte utföras. Denna funktion är inte en ersättning för alias.

Brytande förändringar

  • Fixa -NoEnumerate beteendet så Write-Output att det är konsekvent med Windows PowerShell. (#9069)
  • Gör Join-String -InputObject 1,2,3 resultat lika med 1,2,3 | Join-String resultat (#8611) (Tack @sethvs!)
  • Lägg till -Stable och Sort-Object relaterade tester (#7862) (Tack) @KirkMunro!)
  • Förbättra Start-Sleep cmdlet för att acceptera bråkdelar av sekunder (#8537) (Tack @Prototyyppi!)
  • Ändra hashtabellen för att använda OrdinalIgnoreCase så att den finns case-insensitive i alla kulturer (#8566)
  • Fixa LiteralPath för Import-Csv att binda till Get-ChildItem utdata (#8277) (Tack @iSazonov!)
  • Hoppar inte längre över en kolumn utan namn om dubbel citattecken används i Import-Csv (#7899) (Tack @Topping!)
  • Get-ExperimentalFeature Har -ListAvailable inte längre Switch (#8318)
  • Debug-parametern ställs $DebugPreference nu in till Fortsätt istället för Fråga (#8195) (Tack @KirkMunro!)
  • Honor -OutputFormat om det anges i icke-interaktiva, omdirigerade, kodade kommandon som används med pwsh (#8115)
  • Ladda sammansättningen från modulbasens väg innan du försöker ladda från GAC (#8073)
  • Ta bort tilde från Linux-förhandsgranskningspaket (#8244)
  • Flyttbehandling av -WorkingDirectory innan bearbetning av profiler (#8079)
  • Lägg inte till PATHEXT miljövariabel på Unix (#7697) (Tack) @iSazonov!)

Kända problem

  • Fjärrhantering på Windows IoT ARM-plattformar har problem med att ladda moduler. Se (#8053)

Allmänna uppdateringar och fixar

  • Aktivera fall-insensitiv tab-komplettering för filer och mappar i case-sensitivt filsystem (#8128)
  • Gör PSVersionInfo.PSVersion och PSVersionInfo.PSEdition offentliga (#8054) (Tack @KirkMunro!)
  • Lägg till typinferens för $_ / $PSItem in-block catch{ } (#8020) (Tack @vexx32!)
  • Fixa inferens av typen av statisk metodanrop (#8018) (Tack @SeeminglyScience!)
  • Skapa infererade typer för Select-Object, Group-Object, PSObject och Hashtable (#7231) (Tack @powercode!)
  • Stöd anropningsmetod med typparametrar ByRef-like (#7721)
  • Hantera fallet där Windows PowerShell-modulens path redan finns i miljöns PSModulePath (#7727)
  • Aktivera SecureString cmdlets för icke-Windows genom att lagra klartexten (#9199)
  • Förbättrat felmeddelande på icke-Windows vid import av clixml med securestring (#7997)
  • Lägger till parameter ReplyTo till Send-MailMessage (#8727) (Tack @replicaJunction!)
  • Lägg till meddelandet om föråldrad i Send-MailMessage (#9178)
  • Åtgärd Restart-Computer att arbeta på localhost när WinRM inte finns (#9160)
  • Gör Start-Job throw termineringsfel när PowerShell hostas (#9128)
  • Lägg till acceleratorer och suffix i C#-stil för ushort, uint, ulong och korta bokstavligheter (#7813) (Tack @vexx32!)
  • Nya suffix lades till för numeriska literaler – se about_Numeric_Literals (#7901) (Tack @vexx32!)
  • Korrekt rapportera påverkningsnivå när SupportsShouldProcess inte är satt till 'sann' (#8209) (Tack @vexx32!)
  • Problem med att fixa charsets i webb-cmdlets (#8742) (Tack) (Tack @markekraus!)
  • Fixa Expect-problemet 100-continue med Web Cmdlets (#8679) (Tack @markekraus!)
  • Fixade filblockeringsproblemet med webb-cmdlets (#7676) (Tack @Claustn!)
  • Fixade problem med kodsidparsing i Invoke-RestMethod (#8694) (Tack @markekraus!)
  • Refactor ConvertTo-Json för att exponera JsonObject.ConvertToJson som ett publikt API (#8682)
  • Lägg till konfigurerbar maximal djup med ConvertFrom-Json -Depth (#8199) (Tack @louistio!)
  • Lägg till EscapeHandling-parametern i ConvertTo-Json cmdlet (#7775) (Tack @iSazonov!)
  • Lägg till -CustomPipeName pwsh och Enter-PSHostProcess (#8889)
  • Aktivera att skapa relativa symboliska länkar på Windows med New-Item (#8783)
  • Tillåt Windows-användare i utvecklarläge att skapa symlänkar utan höjd (#8534)
  • Aktivera Write-Information för att acceptera $null (#8774)
  • Fix Get-Help för avancerade funktioner med MAMAL-hjälpinnehåll (#8353)
  • Fixa Get-Help PSTypeName-problemet med -Parameter när endast en parameter är deklarerad (#8754) (Tack @pougetat!)
  • Tokenberäkningsfix för Get-Help att köras på ScriptBlock för kommentarshjälp. (#8238) (Tack @hubuk!)
  • Ändra Get-Help cmdlet -Parameter parameter så att den accepterar strängarrayer (#8454) (Tack @sethvs!)
  • Lös PAGER om dess väg innehåller mellanrum (#8571) (Tack @pougetat!)
  • Lägg till prompt vid användningen av less funktionen 'hjälp' för att instruera användaren hur man avslutar (#7998)
  • Lägg till support-enum och char-typer i Format-Hex cmdlet (#8191) (Tack @iSazonov!)
  • Ta bort ShouldProcess från Format-Hex (#8178)
  • Lägg till nya Offset- och Count-parametrar och Format-Hex refaktorera cmdleten (#7877) (Tack @iSazonov!)
  • Tillåt 'name' som aliasnyckel för 'label' 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 pipeline-inmatning (#7660) (Tack @powercode!)
  • Fixa Join-String cmdlet-parameterlogiken FormatString (#8449) (Tack @sethvs!)
  • Byt Clear-Host tillbaka till att använda $RAWUI och klara att arbeta istället för fjärrstyrning (#8609)
  • Ändra Clear-Host till helt enkelt anropat [console]::clear och ta bort rensat alias från Unix (#8603)
  • Fixa 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 -UseMinimalHeader för Start-Transcript att minimera transkriptets header (#8402) (Tack) @lukexjeremy!)
  • Lägg till Enable-ExperimentalFeature och Disable-ExperimentalFeature cmdlets (#8318)
  • Exponera alla cmdlets från PSDiagnostics om logman.exe finns tillgängligt (#8366)
  • Ta bort parametern Persist 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 som heter - och + (#8089)
  • Test-Path returnerar $false när den ges ett tomt eller $null vägvärde (#8080) (Tack @vexx32!)
  • Tillåt att dynamisk parameter returneras även om sökvägen inte matchar någon leverantör (#7957)
  • Stöd Get-PSHostProcessInfo och Enter-PSHostProcess på Unix-plattformar (#8232)
  • Minska allokeringen i Get-Content cmdlet (#8103) (Tack @iSazonov!)
  • Aktivera Add-Content delning av läsåtkomst med andra verktyg när du skriver innehåll (#8091)
  • Get/Add-Content ger förbättrat fel när man riktar in sig på en container (#7823) (Tack @kvprasoon!)
  • Lägg till -Name, -NoUserOverrides och -ListAvailable parametrar till Get-Culture cmdlet (#7702) (Tack @iSazonov!)
  • Lägg till enhetligt attribut för komplettering av kodningsparametern . (#7732) (Tack @ThreeFive-O!)
  • Tillåt numeriska ID:n och namn på registrerade kodsidor i kodparametrar (#7636) (Tack @iSazonov!)
  • Fixa Rename-Item -Path med wildcard-karaktär (#7398) (Tack @kwkam!)
  • När en Start-Transcript fil finns, töm filen istället för att ta bort (#8131) (Tack @paalbra!)
  • Skapa Add-Type öppna källkodsfiler med FileAccess.Read och FileShare.Read explicit (#7915) (Tack) @IISResetMe!)
  • Lösning Enter-PSSession -ContainerId för senaste Windows (#7883)
  • Se till att egenskapen NestedModules fylls i av Test-ModuleManifest (#7859)
  • Lägg till %F fodral till Get-Date -UFormat (#7630) (Tack @britishben!)
  • Åtgärd Set-Service -Status Stopped för att stoppa tjänster med beroenden (#5525) (Tack @zhenggu!)