Delen via


Wat is er nieuw in PowerShell 7.3?

PowerShell 7.3 is de volgende stabiele release, gebouwd op .NET 7.0.

PowerShell 7.3 bevat de volgende functies, updates en belangrijke wijzigingen.

Belangrijke wijzigingen en verbeteringen

  • In deze release zijn Windows-API's bijgewerkt of verwijderd voor naleving, wat betekent dat PowerShell 7.3 niet wordt uitgevoerd in Windows 7. Hoewel Windows 7 niet meer wordt ondersteund, kunnen eerdere builds worden uitgevoerd op Windows 7.
  • PowerShell Direct voor Hyper-V wordt alleen ondersteund in Windows 10, versie 1809 en hoger.
  • Test-Connectionis verbroken vanwege een opzettelijke wijziging die fouten veroorzaakt in .NET 7. Het wordt bijgehouden door #17018
  • Voeg clean blok toe aan scriptblok als peer-to beginen processend om eenvoudig opschonen van resources toe te staan (#15177)
  • Standaardinstelling wijzigen voor $PSStyle.OutputRendering host
  • Tekenreeksinvoer ongewijzigd maken Out-String en behouden (#17455Out-File)
  • Verplaats de typegegevensdefinitie van System.Security.AccessControl.ObjectSecurity naar de Microsoft.PowerShell.Security-module (#16355) (bedankt)@iSazonov!)
    • Vóór deze wijziging hoeft een gebruiker de Module Microsoft.PowerShell.Security niet expliciet te importeren om de code-eigenschappen te gebruiken die zijn gedefinieerd voor een exemplaar van System.Security.AccessControl.ObjectSecurity.
    • Na deze wijziging moet een gebruiker microsoft.PowerShell.Security-module expliciet importeren om deze code-eigenschappen en codemethoden te kunnen gebruiken.

Verbeteringen aan tabvoltooiing

  • PowerShell 7.3 bevat PSReadline 2.2.6, waarmee Predictive IntelliSense standaard wordt ingeschakeld. Zie about_PSReadLine voor meer informatie.
  • Tabbladvoltooiing herstellen binnen het scriptblok dat is opgegeven voor de ValidateScriptAttribute. (#14550) (Bedankt@MartinGC94!)
  • Tabbladvoltooiing toegevoegd voor luslabels na break/continue (#16438) (Bedankt @MartinGC94!)
  • Hashtable-voltooiing in meerdere scenario's verbeteren (#16498) (Bedankt @MartinGC94!)
    • Parameter-splatting
    • Parameter Argumenten voor Invoke-CimMethod
    • FilterHashtable-parameter voor Get-WinEvent
    • Eigenschapsparameter voor de CIM-cmdlets
    • Verwijdert duplicaten uit voltooiingsscenario's voor leden
  • Ondersteuning voor slashes in netwerkshare (UNC-pad) voltooiing (#17111) (Bedankt @sba923!)
  • Automatisch aanvullen van leden verbeteren (#16504) (Bedankt @MartinGC94!)
  • ValidSet-voltooiingen prioriteren via Enums voor parameters (#15257) (bedankt) @MartinGC94!)
  • Ondersteuning voor typedeductie toevoegen voor algemene methoden met typeparameters (#16951) (Bedankt) @MartinGC94!)
  • Typedeductie en voltooiingen verbeteren (#16963) (Bedankt @MartinGC94!)
    • Hiermee kunnen methoden worden weergegeven in voltooiingsresultaten voor ForEach-Object -MemberName
    • Hiermee voorkomt u voltooiing van expressies die een ongeldige waarde retourneren, zoals ([void](""))
    • Hiermee kunnen niet-standaardklasseconstructors worden weergegeven wanneer de voltooiing van de klasse is gebaseerd op de AST
  • Typedeductie voor (#17716) verbeteren $_ (bedankt)@MartinGC94!)
  • Typedeductie voor ICollection herstellen (#17752) (Bedankt @MartinGC94!)
  • Voorkomen dat accolades worden verwijderd bij het voltooien van variabelen (#17751) (Bedankt) @MartinGC94!)
  • Voltooiing toevoegen voor indexexpressies voor woordenlijsten (#17619) (Bedankt @MartinGC94!)
  • Typevoltooiing voor kenmerktokens corrigeren (#17484) (Bedankt @MartinGC94!)
  • De voltooiing van het tabblad Dynamische parameter verbeteren (#17661) (Bedankt @MartinGC94!)
  • Vermijd positionele bindingsparameters bij het voltooien van de parameter vóór de waarde (#17693) (Bedankt) @MartinGC94!)

Foutafhandeling verbeterd

  • Juist instellen $? voor opdrachtexpressie met omleidingen (#16046)
  • Een cast-fout oplossen bij gebruik $PSNativeCommandUseErrorActionPreference (#15993)
  • De systeemeigen opdrachtfoutafhandeling optioneel uitvoeren ErrorActionPreference (#15897)
  • Geef het uitvoerbare pad op zoals TargetObject voor niet-nul afsluitcode ErrorRecord (#16108) (Bedankt @rkeithhill!)

Verbeteringen voor sessie en externe toegang

  • Toevoegen -Options aan de PSRP via SSH-opdrachten om OpenSSH-opties rechtstreeks door te geven (#12802) (Bedankt @BrannenGH!)
  • Parameter toevoegen -ConfigurationFile om het starten van een nieuw proces toe te pwsh staan met de sessieconfiguratie die is gedefinieerd in een .pssc bestand (#17447)
  • Ondersteuning toevoegen voor het gebruik New-PSSessionConfigurationFile op niet-Windows-platforms (#17447)

Bijgewerkte cmdlets

  • Parameter toevoegen -HttpVersion aan web-cmdlets (#15853) (Bedankt@hayhay27!)
  • Ondersteuning toevoegen aan web-cmdlets voor open-ended invoertags (#16193) (Bedankt) @farmerau!)
  • Oplossing ConvertTo-Json -Depth om maximaal 100 toe te staan (#16197) (Bedankt @KevRitchie!)
  • De verwerking van variabelen verbeteren bij het aanroepen Invoke-Command met de $using: expressie (#16113) (Bedankt@dwtaber!)
  • Toevoegen -StrictMode om het opgeven van de strikte modus toe te Invoke-Command staan bij het lokaal aanroepen van opdracht (#16545) (Bedankt @Thomas-Yu!)
  • Voeg clean blok toe aan scriptblok als peer-to beginen processend om eenvoudig opschonen van resources toe te staan (#15177)
  • Schakeloptie toevoegen -Amended aan Get-CimClass cmdlet (#17477) (Bedankt@iSazonov)
  • Gewijzigd ConvertFrom-Json -AsHashtable voor gebruik van geordende hashtabel (#17405)
  • ANSI-escapereeksen in tekenreeksen verwijderd voordat ze naar (#17664) worden Out-GridView verzonden
  • De parameter Milliseconden toegevoegd aan New-TimeSpan (#17621) (Bedankt)@NoMoreFood!)
  • Optionele parameters weergeven bij het weergeven van methodedefinities en overbelastingen (#13799) (Bedankt) @eugenesmlv!)
  • Toestaan dat opdrachten nog steeds worden uitgevoerd, zelfs als de huidige werkmap niet meer bestaat (#17579)
  • Ondersteuning voor HTTPS toevoegen met Set-AuthenticodeSignature -TimeStampServer (#16134) (Bedankt@Ryan-Hutchison-USAF!)
  • Decimale getallen weergeven in een tabel met de huidige cultuur (#17650)
  • Typeversneller toevoegen besteld voor OrderedDictionary (#17804) (Bedankt @fflaten!)
  • Toevoegen find.exe aan verouderd gedrag voor argumentbinding voor Windows (#17715)
  • Schakeloptie toevoegen -noprofileloadtime aan pwsh (#17535) (Bedankt @rkeithhill!)

Zie het wijzigingenlogboek in de GitHub-opslagplaats voor een volledige lijst met wijzigingen.

Experimentele functies

In PowerShell 7.3 zijn de volgende experimentele functies algemeen geworden:

  • PSAnsiRenderingFileInfo - Met deze functie wordt het $PSStyle.FileInfo lid toegevoegd en wordt het kleuren van specifieke bestandstypen ingeschakeld.

  • PSCleanBlock - Voegt clean blok toe aan scriptblok als peer-to begin, processen end om eenvoudig opschonen van resources mogelijk te maken.

  • PSAMSIMethodInvocationLogging - Breidt de gegevens uit die naar AMSI worden verzonden voor inspectie om alle aanroepen van .NET-methodeleden op te nemen.

  • PSNativeCommandArgumentPassing - PowerShell gebruikt nu de eigenschap ArgumentList van het StartProcessInfo-object in plaats van het oude mechanisme voor het reconstrueren van een tekenreeks bij het aanroepen van een systeemeigen uitvoerbaar bestand.

    PowerShell 7.3.1 voegt toe sqlcmd.exe aan de lijst met systeemeigen opdrachten in Windows die de Legacy stijl van het doorgeven van argumenten gebruiken.

  • PSExec - Voegt de nieuwe Switch-Process cmdlet (alias exec) toe om compatibiliteit te bieden exec voor niet-Windows-systemen.

    PowerShell 7.3.1 heeft de exec alias gewijzigd in een functie die wordt verpakt Switch-Process. Met de functie kunt u parameters doorgeven aan de systeemeigen opdracht die mogelijk per ongeluk is gebonden aan de parameter WithCommand .

PowerShell 7.3 introduceert de volgende experimentele functies:

  • PSNativeCommandErrorActionPreference : voegt de $PSNativeCommandUseErrorActionPreference variabele toe om fouten in te schakelen die worden geproduceerd door systeemeigen opdrachten als PowerShell-fouten.

PowerShell 7.3 heeft de volgende experimentele functies verwijderd:

  • PSNativePSPathResolution experimentele functie wordt niet meer ondersteund.
  • PSStrictModeAssignment experimentele functie wordt niet meer ondersteund.

Zie Experimentele functies gebruiken voor meer informatie over de experimentele functies.