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-Connection
is verbroken vanwege een opzettelijke wijziging die fouten veroorzaakt in .NET 7. Het wordt bijgehouden door #17018- Voeg
clean
blok toe aan scriptblok als peer-tobegin
enprocess
end
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
- Hiermee kunnen methoden worden weergegeven in voltooiingsresultaten voor
- 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 tepwsh
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 teInvoke-Command
staan bij het lokaal aanroepen van opdracht (#16545) (Bedankt @Thomas-Yu!) - Voeg
clean
blok toe aan scriptblok als peer-tobegin
enprocess
end
om eenvoudig opschonen van resources toe te staan (#15177) - Schakeloptie toevoegen
-Amended
aanGet-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
- Voegtclean
blok toe aan scriptblok als peer-tobegin
,process
enend
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 deLegacy
stijl van het doorgeven van argumenten gebruiken.PSExec
- Voegt de nieuweSwitch-Process
cmdlet (aliasexec
) toe om compatibiliteit te biedenexec
voor niet-Windows-systemen.PowerShell 7.3.1 heeft de
exec
alias gewijzigd in een functie die wordt verpaktSwitch-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.