Wat is er nieuw in PowerShell 7.0?
PowerShell 7.0 is een opensource-, platformoverschrijdende editie (Windows, macOS en Linux) van PowerShell, gebouwd om heterogene omgevingen en hybride cloud te beheren.
In deze release introduceren we een aantal nieuwe functies, waaronder:
- Parallellisatie van pijplijnen met
ForEach-Object -Parallel - Nieuwe operators:
- Ternaire operator:
a ? b : c - Operators voor pijplijnketens:
||en&& - Null-voorwaardelijke operators:
??en??=
- Ternaire operator:
- Een vereenvoudigde en dynamische foutweergave en
Get-Errorcmdlet voor eenvoudiger onderzoek van fouten - Een compatibiliteitslaag waarmee gebruikers modules kunnen importeren in een impliciete Windows PowerShell-sessie
- Automatische meldingen over nieuwe versies
- De mogelijkheid om DSC-resources rechtstreeks vanuit PowerShell 7 (experimenteel) aan te roepen
Zie de wijzigingenlogboeken voor een volledige lijst met functies en oplossingen.
Waar kan ik PowerShell installeren?
PowerShell 7 ondersteunt momenteel de volgende besturingssystemen op x64, waaronder:
- Windows 8.1 en 10
- Windows Server 2012, 2012 R2, 2016 en 2019
- macOS 10.13+
- Red Hat Enterprise Linux (RHEL) / CentOS 7
- Fedora 30+
- Debian 9
- Ubuntu LTS 16.04+
- Alpine Linux 3.8+
Daarnaast ondersteunt PowerShell 7.0 ARM32- en ARM64-varianten van Debian, Ubuntu en ARM64 Alpine Linux.
Controleer de installatie-instructies voor uw voorkeursbesturingssysteem Windows, macOS of Linux.
Hoewel de community niet officieel wordt ondersteund, biedt de community ook pakketten voor Arch en Kali Linux.
Notitie
Debian 10 en CentOS 8 bieden momenteel geen ondersteuning voor externe communicatie van WinRM. Zie Externe communicatie via SSH voor meer informatie over het instellen van externe communicatie op basis van SSH.
Zie de levenscyclus van PowerShell-ondersteuning voor meer actuele informatie over ondersteunde besturingssystemen en ondersteuningslevenscyclus.
PowerShell 7 uitvoeren
PowerShell 7 wordt afzonderlijk van Windows PowerShell in een map geïnstalleerd. Hiermee kunt u PowerShell 7 naast Windows PowerShell 5.1 uitvoeren. Voor PowerShell 6.x is PowerShell 7 een in-place upgrade waarmee PowerShell 6.x wordt verwijderd.
- PowerShell 7 is geïnstalleerd op
%programfiles%\PowerShell\7 - De
%programfiles%\PowerShell\7map wordt toegevoegd aan$env:PATH
Het installatiepakket van PowerShell 7 werkt eerdere versies van PowerShell 6.x bij:
- PowerShell 6.x in Windows:
%programfiles%\PowerShell\6wordt vervangen door%programfiles%\PowerShell\7 - Linux:
/opt/microsoft/powershell/6wordt vervangen door/opt/microsoft/powershell/7 - macOS:
/usr/local/microsoft/powershell/6wordt vervangen door/usr/local/microsoft/powershell/7
Notitie
In Windows PowerShell heet powershell.exehet uitvoerbare bestand om PowerShell te starten. In versie 6 en hoger wordt de naam van het uitvoerbare bestand gewijzigd om de uitvoering naast elkaar te ondersteunen. De nieuwe uitvoerbare naam voor het starten van PowerShell 7 is pwsh.exe. Preview-builds blijven in-place, zoals pwsh-preview in plaats van pwsh onder de map 7 preview.
Verbeterde compatibiliteit met eerdere versies met Windows PowerShell
PowerShell 7.0 markeert een verplaatsing naar .NET Core 3.1, waardoor de compatibiliteit met bestaande Windows PowerShell-modules aanzienlijk lager wordt. Dit omvat veel modules in Windows waarvoor GUI-functionaliteit is vereist, zoals Out-GridView en Show-Command, evenals veel rolbeheermodules die als onderdeel van Windows worden verzonden.
Voor Windows wordt een nieuwe switchparameter UseWindowsPowerShell toegevoegd aan Import-Module. Met deze switch maakt u een proxymodule in PowerShell 7 die gebruikmaakt van een lokaal Windows PowerShell proces om impliciet cmdlets uit te voeren die in die module zijn opgenomen. Voor meer informatie over Import-Module.
Zie de modulecompatibiliteitstabel voor meer informatie over welke Microsoft-modules werken met PowerShell 7.0.
Parallelle uitvoering toegevoegd aan ForEach-Object
De ForEach-Object cmdlet, die items in een verzameling doorloopt, heeft nu ingebouwde parallelle uitvoering met de nieuwe parameter Parallel .
Parallelle scriptblokken maken standaard gebruik van de huidige werkmap van de aanroeper die de parallelle taken heeft gestart.
In dit voorbeeld worden 50.000 logboekvermeldingen opgehaald uit 5 systeemlogboeken op een lokale Windows-computer:
$logNames = 'Security','Application','System','Windows PowerShell','Microsoft-Windows-Store/Operational'
$logEntries = $logNames | ForEach-Object -Parallel {
Get-WinEvent -LogName $_ -MaxEvents 10000
} -ThrottleLimit 5
$logEntries.Count
50000
De parameter Parallel geeft het scriptblok op dat parallel wordt uitgevoerd voor elke naam van het invoerlogboek.
De nieuwe parameter ThrottleLimit beperkt het aantal scriptblokken dat parallel op een gegeven moment wordt uitgevoerd. De standaardwaarde is 5.
Gebruik de $_ variabele om het huidige invoerobject in het scriptblok weer te geven. Gebruik het $using: bereik om variabele verwijzingen door te geven naar het actieve scriptblok.
Voor meer informatie over ForEach-Object.
Ternaire operator
PowerShell 7.0 introduceert een ternaire operator die zich gedraagt als een vereenvoudigde if-else instructie.
De ternaire operator van PowerShell is nauw gemodelleerd op de syntaxis van de C#-ternaire operator:
<condition> ? <if-true> : <if-false>
De voorwaarde-expressie wordt altijd geëvalueerd en het resultaat ervan wordt geconverteerd naar een Booleaanse waarde om te bepalen welke vertakking vervolgens wordt geëvalueerd:
- De
<if-true>expressie wordt uitgevoerd als de<condition>expressie waar is - De
<if-false>expressie wordt uitgevoerd als de<condition>expressie onwaar is
Bijvoorbeeld:
$message = (Test-Path $path) ? "Path exists" : "Path not found"
In dit voorbeeld wordt pad weergegeven als het pad bestaat . Als het pad niet bestaat, wordt Pad niet gevonden weergegeven.
Voor meer informatie over If.
Operators voor pijplijnketens
PowerShell 7 implementeert de && en || operators om pijplijnen voorwaardelijk te koppelen. Deze operators zijn bekend in PowerShell als 'operatoren voor pijplijnketens' en zijn vergelijkbaar met EN- en OR-lijsten in shells zoals Bash en Zsh, evenals symbolen voor voorwaardelijke verwerking in de Windows Command Shell (cmd.exe).
De && operator voert de rechterpijplijn uit als de linkerpijplijn is geslaagd. Omgekeerd voert de || operator de rechterpijplijn uit als de linkerpijplijn is mislukt.
Notitie
Deze operators gebruiken de $? en $LASTEXITCODE variabelen om te bepalen of een pijplijn is mislukt. Hierdoor kunt u ze gebruiken met systeemeigen opdrachten en niet alleen met cmdlets of functies.
Hier slaagt de eerste opdracht en wordt de tweede opdracht uitgevoerd:
Write-Output 'First' && Write-Output 'Second'
First
Second
Hier mislukt de eerste opdracht, de tweede wordt niet uitgevoerd:
Write-Error 'Bad' && Write-Output 'Second'
Write-Error: Bad
Hier slaagt de eerste opdracht, de tweede opdracht wordt niet uitgevoerd:
Write-Output 'First' || Write-Output 'Second'
First
Hier mislukt de eerste opdracht, dus de tweede opdracht wordt uitgevoerd:
Write-Error 'Bad' || Write-Output 'Second'
Write-Error 'Bad'
Second
Voor meer informatie over pijplijnketenoperators.
Null-coalescing, toewijzing en voorwaardelijke operators
PowerShell 7 bevat de operator ??Null-samensning, de voorwaardelijke toewijzing ??=null en de operatoren ?. voor voorwaardelijke toegang tot null-leden en ?[].
Operator null-coalescing ??
De operator ?? null-coalescing retourneert de waarde van de linkeroperand als deze niet null is.
Anders wordt de rechteroperand geëvalueerd en wordt het resultaat geretourneerd. De ?? operator evalueert de rechteroperand niet als de operand aan de linkerkant resulteert in niet-null.
$x = $null
$x ?? 100
100
In het volgende voorbeeld wordt de rechteroperand niet geëvalueerd:
[string] $todaysDate = '1/10/2020'
$todaysDate ?? (Get-Date).ToShortDateString()
1/10/2020
Operator voor voorwaardelijke toewijzing null?? =
De operator ??= voor voorwaardelijke toewijzing null wijst de waarde van de rechteroperand alleen toe aan de operand links als de operand aan de linkerkant resulteert in null. De ??= operator evalueert de rechteroperand niet als de operand aan de linkerkant resulteert in niet-null.
$x = $null
$x ??= 100
$x
100
In het volgende voorbeeld wordt de rechteroperand niet geëvalueerd:
[string] $todaysDate = '1/10/2020'
$todaysDate ??= (Get-Date).ToShortDateString()
1/10/2020
Operatoren voor voorwaardelijke toegang tot null-leden?. en? [] (Experimenteel)
Notitie
Dit is een experimentele functie met de naam PSNullConditionalOperators. Zie Experimentele functies gebruiken voor meer informatie.
Met een voorwaardelijke operator null is alleen toegang tot leden, ?.of elementtoegang, ?[]toe aan de operand als die operand resulteert in niet-null; anders wordt null geretourneerd.
Notitie
Omdat PowerShell deel mag ? uitmaken van de variabelenaam, is formele specificatie van de naam van de variabele vereist voor het gebruik van deze operators. Het is dus vereist om de namen van variabelen te gebruiken {} , zoals ${a} of wanneer ? deel uitmaakt van de naam van de variabele ${a?}.
In het volgende voorbeeld wordt de waarde van de eigenschapsstatus van het lid geretourneerd:
$Service = Get-Service -Name 'bits'
${Service}?.status
Stopped
In het volgende voorbeeld wordt null geretourneerd zonder toegang te krijgen tot de status van de lidnaam:
$service = $Null
${Service}?.status
Op dezelfde manier wordt ?[]de waarde van het element geretourneerd:
$a = 1..10
${a}?[0]
1
En wanneer de operand null is, wordt het element niet geopend en wordt null geretourneerd:
$a = $null
${a}?[0]
Voor meer informatie About_Operators.
Nieuwe weergave ConciseView en cmdlet Get-Error
PowerShell 7.0 verbetert de weergave van foutberichten om de leesbaarheid van interactieve en scriptfouten te verbeteren met een nieuwe standaardweergave Beknopte weergave. De weergaven kunnen door de gebruiker worden geselecteerd via de voorkeursvariabele $ErrorView.
Als een fout niet afkomstig is van een script of parserfout, is het een foutbericht met één regel:
Get-Childitem -Path c:\NotReal
Get-ChildItem: Cannot find path 'C:\NotReal' because it does not exist
Als de fout optreedt tijdens het uitvoeren van scripts of een parseringsfout is, retourneert PowerShell een foutbericht met meerdere regels dat de fout bevat, een aanwijzer en een foutbericht waarin wordt weergegeven waar de fout zich op die regel bevindt. Als de terminal geen ONDERSTEUNING biedt voor ANSI-kleuren escapereeksen (VT100), worden kleuren niet weergegeven.

De standaardweergave in PowerShell 7 is ConciseView. De vorige standaardweergave was NormalView en u kunt deze selecteren door de voorkeursvariabele $ErrorViewin te stellen.
$ErrorView = 'NormalView' # Sets the error view to NormalView
$ErrorView = 'ConciseView' # Sets the error view to ConciseView
Notitie
Er wordt een nieuwe eigenschap ErrorAccentColor toegevoegd ter $Host.PrivateData ondersteuning van het wijzigen van de accentkleur van het foutbericht.
Een nieuwe cmdlet Get-Error biedt een volledige gedetailleerde weergave van de volledig gekwalificeerde fout, indien gewenst. Standaard geeft de cmdlet de volledige details weer, inclusief binnenuitzonderingen, van de laatste fout die is opgetreden.

De Get-Error cmdlet ondersteunt invoer uit de pijplijn met behulp van de ingebouwde variabele $Error.
Get-Error geeft alle doorgesluisde fouten weer.
$Error | Get-Error
De Get-Error cmdlet ondersteunt de nieuwste parameter, zodat u kunt opgeven hoeveel fouten uit de huidige sessie u wilt weergeven.
Get-Error -Newest 3 # Displays the lst three errors that occurred in the session
Voor meer informatie over Get-Error.
Melding van nieuwe versie
PowerShell 7 gebruikt updatemeldingen om gebruikers te waarschuwen over het bestaan van updates voor PowerShell. Eenmaal per dag voert PowerShell een query uit op een onlineservice om te bepalen of er een nieuwere versie beschikbaar is.
Notitie
De updatecontrole vindt plaats tijdens de eerste sessie in een bepaalde periode van 24 uur. Om prestatieredenen start de updatecontrole 3 seconden nadat de sessie is gestart. De melding wordt alleen weergegeven aan het begin van de volgende sessies.
PowerShell abonneert zich standaard op een van de twee verschillende meldingskanalen, afhankelijk van de versie/vertakking. Ondersteunde, algemeen beschikbare (GA)-versies van PowerShell retourneren alleen meldingen voor bijgewerkte GA-releases. Preview- en Release Candidate-releases (RC) melden updates voor preview-, RC- en GA-releases.
Het gedrag van de updatemelding kan worden gewijzigd met behulp van de $Env:POWERSHELL_UPDATECHECK omgevingsvariabele. De volgende waarden worden ondersteund:
- De standaardwaarde is hetzelfde als het niet definiëren
$Env:POWERSHELL_UPDATECHECK- GA-releases melden updates voor ALGEMENE beschikbaarheidsreleases
- Preview-/RC-releases melden updates voor ALGEMENE beschikbaarheid en preview-releases
- Hiermee schakelt u de functie Voor updatemeldingen uit
- LTS meldt alleen updates voor langlopende service (LTS) GA-releases
Notitie
De omgevingsvariabele $Env:POWERSHELL_UPDATECHECK bestaat pas als deze voor het eerst is ingesteld.
Alleen de versiemelding voor LTS releases instellen:
$Env:POWERSHELL_UPDATECHECK = 'LTS'
De versiemelding instellen op het Default gedrag:
$Env:POWERSHELL_UPDATECHECK = 'Default'
Voor meer informatie over updatemeldingen.
Ondersteuning voor nieuwe DSC-resources met Invoke-DSCResource (experimenteel)
Notitie
Dit is een experimentele functie met de naam PSDesiredStateConfiguration.InvokeDscResource. Zie Experimentele functies gebruiken voor meer informatie.
De Invoke-DscResource cmdlet voert een methode uit van een opgegeven PowerShell-Desired State Configuration (DSC)-resource.
Met deze cmdlet wordt rechtstreeks een DSC-resource aangeroepen zonder een configuratiedocument te maken. Met deze cmdlet kunnen configuratiebeheerproducten Windows of Linux beheren met behulp van DSC-resources. Deze cmdlet maakt ook foutopsporing van resources mogelijk wanneer de DSC-engine wordt uitgevoerd met foutopsporing ingeschakeld.
Met deze opdracht wordt de methode Set van een resource met de naam WindowsProcess aangeroepen en worden de verplichte pad - en argumenteneigenschappen geboden om het opgegeven Windows-proces te starten.
Invoke-DscResource -Name WindowsProcess -Method Set -ModuleName PSDesiredStateConfiguration -Property @{
Path = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
Arguments = ''
}
Voor meer informatie over Invoke-DSCResource.
Belangrijke wijzigingen en verbeteringen
Wijzigingen die fouten veroorzaken
- Updatemeldingen ondersteunen LTS en standaardkanalen (#11132)
- Werk Test-Connection bij om meer te werken als de Windows PowerShell (#10697) (Bedankt)@vexx32!)
- $behouden? voor ParenExpression, SubExpression en ArrayExpression (#11040)
- Werkmap instellen op huidige map in Start-Job (#10920) (Bedankt @iSazonov!)
- Breng $PSCulture consistent wijzigingen in sessiecultuur aan (#10138) (bedankt) @iSazonov!)
Engine-Updates en oplossingen
- Verbeteringen in onderbrekingspunt-API's voor externe scenario's (#11312)
- Problemen met powerShell-klassedefinities oplossen die worden gelekt in een andere Runspace (#11273)
- Een regressie herstellen in de opmaak die wordt veroorzaakt door de Primitieve FirstOrDefault die is toegevoegd in 7.0.0-Preview1 (#11258)
- Aanvullende Microsoft-modules om bij te houden in PS7-telemetrie (#10751)
- Goedgekeurde functies niet-experimenteel maken (#11303)
- Beknopteview bijwerken om TargetObject te gebruiken indien van toepassing (#11075)
- NullReferenceException opgelost in openbare methoden Voor voltooiingscompleters (#11274)
- Statuscontrole van appartementsthreads oplossen op niet-Windows-platforms (#11301)
- Instelling PSModulePath bijwerken om de omgevingsvariabelen voor processen en machines samen te voegen (#11276)
- Bump .NET Core naar 3.1.0 (#11260)
- Detectie van $PSHOME vóór $env:PATH (#11141) herstellen
- Toestaan dat pwsh $env:PSModulePath overnemen en powershell.exe inschakelen om correct te starten (#11057)
- Verplaatsen naar .NET Core 3.1 preview 1 (#10798)
- Reparsetagcontroles herstructureren in bestandssysteemprovider (#10431) (Bedankt @iSazonov!)
- Vervang CR en nieuwe regel door een 0x23CE teken in scriptlogboekregistratie (#10616)
- Los een resourcelek op door de registratie van de gebeurtenis-handler van AppDomain.CurrentDomain.ProcessExit (#10626) ongedaan te maken
- Voeg ondersteuning toe aan ActionPreference.Break om in te breken in het foutopsporingsprogramma wanneer foutopsporing, fout, informatie, voortgang, uitgebreide of waarschuwingsberichten worden gegenereerd (#8205) (bedankt @KirkMunro!)
- Schakel invoegtoepassingen in het configuratiescherm in PowerShell in zonder .CPL extensie op te geven. (#9828)
- Ondersteuning van negatieve getallen in -split-operator (#8960) (Bedankt @ece-jacob-scott!)
Algemene cmdlet-Updates en oplossingen
- Oplossing voor probleem op Raspbian voor het instellen van de datum van bestandswijzigingen in unixStat Experimentele functie (#11313)
- -AsPlainText toevoegen aan ConvertFrom-SecureString (#11142)
- WindowsPS-versiecontrole toegevoegd voor WinCompat (#11148)
- Foutrapportage in sommige WinCompat-scenario's oplossen (#11259)
- Systeemeigen binaire resolver toevoegen (#11032) (Bedankt @iSazonov!)
- Berekening van tekenbreedte bijwerken om CJK-tekens correct te respecteren (#11262)
- Unblock-File toevoegen voor macOS (#11137)
- Regressie herstellen in Get-PSCallStack (#11210) (Bedankt @iSazonov!)
- Automatisch laden van de module ScheduledJob verwijderen bij het gebruik van taak-cmdlets (#11194)
- OutputType toevoegen aan Get-Error cmdlet en oorspronkelijke typenamen behouden (#10856)
- Null-verwijzing corrigeren in de eigenschap SupportsVirtualTerminal (#11105)
- Limietcontrole toevoegen in Get-WinEvent (#10648) (Bedankt) @iSazonov!)
- De opdrachtruntime is opgelost, zodat StopUpstreamCommandsException niet wordt ingevuld in -ErrorVariable (#10840)
- Stel de uitvoercodering in op [Console]::OutputEncoding voor systeemeigen opdrachten (#10824)
- Ondersteuning voor codeblokken met meerdere regels in voorbeelden (#10776) (Bedankt) @Greg-Smulko!)
- Parameter Culture toevoegen aan Select-String cmdlet (#10943) (Bedankt) @iSazonov!)
- Opgelost Start-Job werkmappad met backslash (#11041)
- ConvertFrom-Json: Verzamelingen uitpakken standaard (#10861) (bedankt) @danstur!)
- Gebruik hoofdlettergevoelige hashtabel voor Group-Object cmdlet met -CaseSensitive- en -AsHashtable-switches (#11030) (Bedankt) @vexx32!)
- Uitzondering afhandelen als het inventariseren van bestanden mislukt bij het herbouwen van het pad om het juiste hoofdletters (#11014) te hebben
- Beknopte weergave herstellen om activiteit weer te geven in plaats van myCommand (#11007)
- Toestaan dat web-cmdlets HTTP-foutstatussen (#10466) (Bedankt) negeren @vdamewood!)
- Pijpen van meer dan één CommandInfo herstellen naar Get-Command (#10929)
- Back-Get-Counter-cmdlet voor Windows (#10933) toevoegen
- Maak ConvertTo-Json behandelen [AutomationNull]::Value and [NullString]::Value as $null (#10957)
- Haken verwijderen uit ipv6-adres voor externe SSH-communicatie (#10968)
- Crash oplossen als de opdracht die naar pwsh wordt verzonden, slechts witruimte is (#10977)
- Platformoverschrijdende Get-Clipboard en Set-Clipboard (#10340) toegevoegd
- Oplossing voor het instellen van het oorspronkelijke pad van het bestandssysteemobject om geen extra afsluitende slash (#10959) te hebben
- Ondersteunings $null voor ConvertTo-Json (#10947)
- De opdracht Back Out-Printer toevoegen in Windows (#10906)
- Oplossing voor Start-Job -WorkingDirectory met witruimte (#10951)
- Standaardwaarde retourneren bij het ophalen van null voor een instelling in PSConfiguration.cs (#10963) (Bedankt) @iSazonov!)
- IO-uitzondering verwerken als niet-afsluit (#10950)
- Voeg de GraphicalHost-assembly toe om Out-GridView, Show-Command en Get-Help -ShowWindow (#10899) in te schakelen
- Neem ComputerName via de pijplijn in Get-HotFix (#10852) (Bedankt) @kvprasoon!)
- Tabvoltooiing voor parameters herstellen zodat algemene parameters worden weergegeven als beschikbaar (#10850)
- GetCorrectCasedPath() herstellen om eerst te controleren of er vermeldingen van systeembestanden worden geretourneerd voordat u First() aanroept (#10930)
- Werkmap instellen op huidige map in Start-Job (#10920) (Bedankt) @iSazonov!)
- Wijzig TabExpansion2 om -CursorColumn niet te vereisen en behandelen als $InputScript.Length (#10849)
- Handle case waarbij Host mogelijk geen rijen of kolommen van het scherm retourneert (#10938)
- Probleem opgelost met het gebruik van accentkleuren voor hosts die deze niet ondersteunen (#10937)
- Opdracht Terug Update-List toevoegen (#10922)
- FWLink-id bijwerken voor Clear-RecycleBin (#10925)
- Sla tijdens het voltooien van het tabblad het bestand over als het bestand niet kan worden gelezen (#10910)
- Back-Clear-RecycleBin voor Windows toevoegen (#10909)
- Toevoegen
$env:__SuppressAnsiEscapeSequencesom te bepalen of VT-escapereeks moet worden uitgevoerd (#10814) - Parameter -NoEmphasize toevoegen om Select-String uitvoer te kleuren (#8963) (Bedankt) @derek-xia!)
- Cmdlet voor back-Get-HotFix toevoegen (#10740)
- Maak Add-Type bruikbaar in toepassingen die PowerShell hosten (#10587)
- Gebruik een effectievere evaluatievolgorde in LanguagePrimitives.IsNullLike() (#10781) (Bedankt) @vexx32!)
- De verwerking van gepijpte invoer- en gesluisde invoerstromen in gemengde verzamelingen verbeteren in Format-Hex (#8674) (Bedankt) @vexx32!)
- Typeconversie gebruiken in SSHConnection-hashtabellen wanneer de waarde niet overeenkomt met het verwachte type (#10720) (Bedankt) @SeeminglyScience!)
- Probleem opgelost Get-Content -ReadCount 0-gedrag wanneer -TotalCount is ingesteld (#10749) (Bedankt) @eugenesmlv!)
- Foutbericht over geweigerde toegang opnieuw weergeven in Get-WinEvent (#10639) (Bedankt) @iSazonov!)
- Tabvoltooiing inschakelen voor variabeletoewijzing die is geïnventareerd of type beperkt (#10646)
- Ongebruikte eigenschap SourceLength-externe toegang verwijderen die opmaakproblemen veroorzaakt (#10765)
- Voeg de parameter -Scheidingsteken toe aan ConvertFrom-StringData (#10665) (Bedankt) @steviecoaster!)
- Positionele parameter voor ScriptBlock toevoegen wanneer u Invoke-Command gebruikt met SSH (#10721) (bedankt) @machgo!)
- Regelcontextinformatie weergeven als meerdere regels maar geen scriptnaam voor ConciseView (#10746)
- Ondersteuning toevoegen voor \wsl$\ paden naar bestandssysteemprovider (#10674)
- Voeg de ontbrekende tokentekst toe voor TokenKind.QuestionMark in parser (#10706)
- Stel de huidige werkmap van elke ForEach-Object -Parallel uitgevoerd script in op dezelfde locatie als het aanroepende script. (#10672)
- Vervang api-ms-win-core-file-l1-2-2.dll door Kernell32.dll voor FindFirstStreamW- en FindNextStreamW-API's (#10680) (Bedankt) @iSazonov!)
- Hulp bij het opmaken van scripts aanpassen om toleranter te zijn voor StrictMode (#10563)
- Voeg de parameter -SecurityDescriptorSDDL toe aan New-Service (#10483) (Bedankt) @kvprasoon!)
- Verwijder informatieve uitvoer, voeg pinggebruik samen in Test-Connection (#10478) (bedankt) @vexx32!)
- Speciale reparsepunten lezen zonder ze te openen (#10662) (Bedankt) @iSazonov!)
- Directe Clear-Host uitvoer naar terminal (#10681) (Bedankt) @iSazonov!)
- Nieuwe regel voor groeperen toevoegen met Format-Table en -Property (#10653)
- [ValidateNotNullOrEmpty] verwijderen uit -InputObject op Get-Random om lege tekenreeks (#10644) toe te staan
- Suggestie systeem tekenreeks afstand algoritme hoofdlettergevoelig (#10549) (bedankt) @iSazonov!)
- Oplossing voor null-verwijzingsonderzondering in ForEach-Object -Parallelle invoerverwerking (#10577)
- PowerShell-groepsbeleidsdefinities toevoegen (#10468)
- De consolehost bijwerken ter ondersteuning van XTPUSHSGR/XTPOPSGR VT-controlereeksen die worden gebruikt in composabiliteitsscenario's. (#10208)
- Parameter WorkingDirectory toevoegen aan Start-Job (#10324) (Bedankt) @davinci26!)
- Verwijder de gebeurtenis-handler die ervoor zorgde dat wijzigingen in onderbrekingspunten per ongeluk worden gerepliceerd naar het foutopsporingsprogramma van de hostrunspace (#10503) (Bedankt @KirkMunro!)
- Vervang api-ms-win-core-job-12-1-0.dll door Kernell32.dll in Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Bedankt) @iSazonov!)
- Corrigeer onjuiste uitvoer voor New-Service in variabeletoewijzing en -OutVariable (#10444) (Bedankt) @kvprasoon!)
- Algemene hulpprogrammaproblemen oplossen met betrekking tot afsluitcode, opdrachtregelparameters en pad met spaties (#10461)
- Recursie in OneDrive herstellen - FindFirstFileEx() wijzigen om SafeFindHandle-type (#10405) te gebruiken
- Automatisch laden van PSReadLine in Windows overslaan als de NVDA-schermlezer actief is (#10385)
- Ingebouwde met PowerShell-moduleversies verhogen naar 7.0.0.0 (#10356)
- Voeg een fout toe in Add-Type als er al een type met dezelfde naam bestaat (#9609) (Bedankt) @iSazonov!)
Prestaties
- Vermijd het gebruik van sluiting in Parser.SaveError (#11006)
- De cache verbeteren bij het maken van nieuwe Regex-exemplaren (#10657) (Bedankt) @iSazonov!)
- De verwerking van de ingebouwde PowerShell-typegegevens verbeteren van types.ps1xml, typesV3.ps1xml en GetEvent.types.ps1xml (#10898)
- PSConfiguration.ReadValueFromFile bijwerken om het sneller en efficiënter te maken (#10839)
- Kleine prestatieverbeteringen toevoegen voor runspace-initialisatie (#10569) (bedankt) @iSazonov!)
- Maak ForEach-Object sneller voor de veelgebruikte scenario's (#10454) en los ForEach-Object -Parallel prestatieprobleem met veel runspaces (#10455) op
Code opschonen
- Opmerkings- en elementtekst wijzigen om te voldoen aan Microsoft-standaarden (#11304)
- Problemen met opschoningsstijlen in Compiler.cs (#10368) (Bedankt) @iSazonov!)
- Verwijder het niet-gebruikte typeconversieprogramma voor CommaDelimitedStringCollection (#11000) (Bedankt) @iSazonov!)
- Opschoningsstijl in InitialSessionState.cs (#10865) (Bedankt) @iSazonov!)
- Code opschonen voor PSSession-klasse (#11001)
- Verwijder de niet-werkende 'Update-Help uitvoeren uit Get-Help wanneer Get-Help voor het eerst wordt uitgevoerd' (#10974)
- Stijlproblemen oplossen (#10998) (Bedankt @iSazonov!)
- Opschonen: gebruik de ingebouwde typealias (#10882) (Bedankt) @iSazonov!)
- Verwijder de ongebruikte instellingssleutel ConsolePrompting en vermijd onnodig maken van tekenreeksen bij het uitvoeren van query's op ExecutionPolicy-instelling (#10985)
- Updatemeldingscontrole uitschakelen voor dagelijkse builds (#10903) (Bedankt @bergmeister!)
- Foutopsporings-API in #10338 (#10808) herstellen
- Verwijzing naar WorkflowJobSourceAdapter verwijderen die niet meer wordt gebruikt (#10326) (bedankt) @KirkMunro!)
- COM-interfaces opschonen in jump list-code door PreserveSig-kenmerken (#9899) (Bedankt) te herstellen @weltkante!)
- Voeg een opmerking toe waarin wordt beschreven waarom -ia niet de alias is voor de algemene parameter -InformationAction (#10703) (Bedankt) @KirkMunro!)
- Rename InvokeCommandCmdlet.cs to InvokeExpressionCommand.cs (#10659) (Bedankt) @kilasuit!)
- Kleine codeopruimingen toevoegen met betrekking tot updatemeldingen (#10698)
- Afgeschafte werkstroomlogica verwijderen uit de externe installatiescripts (#10320) (bedankt) @KirkMunro!)
- Help-indeling bijwerken om de juiste case te gebruiken (#10678) (Bedankt) @tnieto88!)
- CodeFactor-stijlproblemen in doorvoeringen opschonen voor de afgelopen maand (#10591) (Bedankt) @iSazonov!)
- Typfout corrigeren in beschrijving van experimentele functie PSTernaryOperator (#10586) (Bedankt @bergmeister!)
- De opsommingswaarde ActionPreference.Suspend converteren naar een niet-ondersteunde, gereserveerde status en beperking voor het gebruik van ActionPreference.Ignore in voorkeursvariabelen (#10317) (Bedankt) @KirkMunro!)
- Vervang ArrayList door List<T> om beter leesbare en betrouwbare code te krijgen zonder de functionaliteit te wijzigen (#10333) (Bedankt) @iSazonov!)
- Codestijlcorrecties maken voor TestConnectionCommand (#10439) (Bedankt) @vexx32!)
- AutomationEngine opschonen en extra SetSessionStateDrive-methode-aanroep (#10416) verwijderen (bedankt) @iSazonov!)
- Wijzig de naam van standaardParameterSetName terug in scheidingsteken voor ConvertTo-Csv en ConvertFrom-Csv (#10425)
Hulpprogramma's
- Standaardinstelling toevoegen voor de eigenschap SDKToUse, zodat deze wordt gebouwd in VS (#11085)
- Install-Powershell.ps1: Parameter toevoegen voor het gebruik van MSI-installatie (#10921) (Bedankt) @MJECloud!)
- Basisvoorbeelden toevoegen voor install-powershell.ps1 (#10914) (Bedankt) @kilasuit!)
- Maak Install-PowerShellRemoting.ps1 lege tekenreeks in de PowerShellHome-parameter (#10526) (bedankt) @Orca88!)
- Schakel over van /etc/lsb-release naar /etc/os-release in install-powershell.sh (#10773) (Bedankt) @Himura2la!)
- Controleer pwsh.exe en pwsh in de dagelijkse versie van Windows (#10738) (Bedankt) @centreboard!)
- Overbodige tik verwijderen in installpsh-osx.sh (#10752)
- Update install-powershell.ps1 om te controleren op al geïnstalleerde dagelijkse build (#10489)
Testen
- Onbetrouwbare DSC-test in behandeling maken (#11131)
- De stringdata-test herstellen om sleutels van hashtables correct te valideren (#10810)
- Testmodules verwijderen (#11061) (bedankt) @iSazonov!)
- Verhoog de tijd tussen nieuwe pogingen van test-URL (#11015)
- Testtests bijwerken om testacties nauwkeurig te beschrijven. (#10928) (Bedankt @romero126!)
- De flaky test TestAppDomainProcessExitEvenHandlerNotLeaking (#10827) tijdelijk overslaan
- De test voor het lekken van de gebeurtenishandler stabiel maken (#10790)
- Hoofdlettergebruik synchroniseren in CI YAML (#10767) (bedankt) @RDIL!)
- Test toevoegen voor de oplossing voor lekken van gebeurtenis-handler (#10768)
- Voeg Get-ChildItem test toe (#10507) (Bedankt) @iSazonov!)
- Vervang dubbelzinnige taal voor tests van switch naar parameter voor nauwkeurigheid (#10666) (Bedankt) @romero126!)
- Experimentele controle toevoegen aan ForEach-Object -Parallelle tests (#10354) (Bedankt) @KirkMunro!)
- Updatetests voor Alpine-validatie (#10428)
Build- en pakketverbeteringen
- Nuget-pakketondertekening voor coordinated package build (#11316) herstellen
- Afhankelijkheden bijwerken van PowerShell Gallery en NuGet (#11323)
- Bump Microsoft.ApplicationInsights van 2.11.0 tot 2.12.0 (#11305)
- Bump Microsoft.CodeAnalysis.CSharp van 3.3.1 tot 3.4.0 (#11265)
- Updates pakketten voor Debian 10 en 11 (#11236)
- Schakel experimentele functies alleen in vóór RC (#11162)
- MacOS-minimumversie bijwerken (#11163)
- Bump NJsonSchema van 10.0.27 tot 10.0.28 (#11170)
- Koppelingen bijwerken in README.md en metadata.json voor Preview.5 (#10854)
- Selecteer de bestanden voor nalevingstests die eigendom zijn van PowerShell (#10837)
- Toestaan dat win7x86 msix-pakket wordt gebouwd. (Intern 10515)
- Toestaan dat semantische versies worden doorgegeven aan de functie NormalizeVersion (#11087)
- Bump .NET Core Framework naar 3.1-preview.3 (#11079)
- Bump PSReadLine van 2.0.0-beta5 tot 2.0.0-beta6 in /src/Modules (#11078)
- Bump Newtonsoft.Json van 12.0.2 tot 12.0.3 (#11037) (#11038)
- Debian 10-, 11- en CentOS 8-pakketten toevoegen (#11028)
- Upload Build-Info Json-bestand met het veld ReleaseDate (#10986)
- Bump .NET Core Framework naar 3.1-preview.2 (#10993)
- Build van x86 MSIX-pakket inschakelen (#10934)
- De dotnet SDK-installatiescript-URL bijwerken in build.psm1 (#10927)
- Bump Markdig.Signed van 0.17.1 tot 0.18.0 (#10887)
- ThreadJob van 2.0.1 tot 2.0.2 (#10886)
- AppX-manifest- en verpakkingsmodule bijwerken om te voldoen aan de vereisten voor MS Store (#10878)
- Naslaginformatie over updatepakketten voor PowerShell SDK naar preview.5 (Intern 10295)
- ThirdPartyNotices.txt bijwerken (#10834)
- Bump Microsoft.PowerShell.Native naar 7.0.0-preview.3 (#10826)
- Bump Microsoft.ApplicationInsights van 2.10.0 tot 2.11.0 (#10608)
- Bump NJsonSchema van 10.0.24 tot 10.0.27 (#10756)
- MacPorts-ondersteuning toevoegen aan het buildsysteem (#10736) (Bedankt) @Lucius-Q-User!)
- Bump PackageManagement van 1.4.4 tot 1.4.5 (#10728)
- Bump NJsonSchema van 10.0.23 tot 10.0.24 (#10635)
- Omgevingsvariabele toevoegen om telemetrie van clients/servers te onderscheiden in MSI (#10612)
- Bump PSDesiredStateConfiguration van 2.0.3 tot 2.0.4 (#10603)
- Bump Microsoft.CodeAnalysis.CSharp van 3.2.1 tot 3.3.1 (#10607)
- Update naar .Net Core 3.0 RTM (#10604) (bedankt) @bergmeister!)
- MSIX-pakketten bijwerken zodat de versie voldoet aan de Windows Store-vereisten (#10588)
- Bump PowerShellGet-versie van 2.2 tot 2.2.1 (#10382)
- Bump PackageManagement-versie van 1.4.3 tot 1.4.4 (#10383)
- Update README.md en metadata.json voor 7.0.0-preview.4 (Intern 10011)
- .Net Core 3.0-versie upgraden van Preview 9 naar RC1 (#10552) (bedankt) @bergmeister!)
- Het genereren van een ExperimentalFeature-lijst herstellen (Intern 9996)
- Bump PSReadLine-versie van 2.0.0-beta4 tot 2.0.0-beta5 (#10536)
- Buildscript voor release oplossen om releasetag in te stellen
- Updateversie van Microsoft.PowerShell.Native naar 7.0.0-preview.2 (#10519)
- Upgrade uitvoeren naar Netcoreapp3.0 preview9 (#10484) (bedankt) @bergmeister!)
- Zorg ervoor dat de dagelijkse gecoördineerde build een dagelijkse build is (#10464)
- De gecombineerde pakketbuild bijwerken om de dagelijkse builds (#10449) vrij te geven
- Appveyor-verwijzing verwijderen (#10445) (Bedankt @RDIL!)
- Bump NJsonSchema-versie van 10.0.22 tot 10.0.23 (#10421)
- Verwijder de verwijdering van de buildmap linux-x64 omdat sommige afhankelijkheden voor Alpine deze nodig hebben (#10407)
Documentatie en Help-inhoud
- Wijzigingenlogboeken herstructureren in één logboek per release (#11165)
- FWLinks voor online Help-documenten van PowerShell 7 oplossen (#11071)
- Update CONTRIBUTING.md (#11096) (bedankt) @mklement0!)
- Koppelingen naar installatiedocumenten in README.md (#11083) herstellen
- Voorbeelden toevoegen aan install-powershell.ps1 script (#11024) (Bedankt) @kilasuit!)
- Oplossing voor Select-String nadruk en Import-DscResource in CHANGELOG.md (#10890)
- De verouderde koppeling verwijderen uit powershell-beginners-guide.md (#10926)
- Logboeken voor stabiele en onderhoudswijziging samenvoegen (#10527)
- Gebruikte .NET-versie bijwerken in builddocumenten (#10775) (Bedankt) @Greg-Smulko!)
- Koppelingen van MSDN vervangen door docs.microsoft.com in powershell-beginners-guide.md (#10778) (Bedankt) @iSazonov!)
- Verbroken DSC-overzichtskoppeling (#10702) opgelost
- Werk Support_Question.md bij om te koppelen aan Stack Overflow als een andere communityresource (#10638) (bedankt) @mklement0!)
- Processorarchitectuur toevoegen aan distributieaanvraagsjabloon (#10661)
- Nieuw PowerShell MoL-boek toevoegen aan het leren van PowerShell-documenten (#10602)
- Update README.md en metagegevens voor versie v6.1.6 en v6.2.3 (#10523)
- Een typefout corrigeren in README.md (#10465) (Bedankt) @vedhasp!)
- Voeg een verwijzing naar de PSKoans-module toe aan de documentatie over Learning Resources (#10369) (Bedankt) @vexx32!)
- README.md en metadata.json bijwerken voor 7.0.0-preview.3 (#10393)