Nyheter i PowerShell 7.3
PowerShell 7.3 är nästa stabila version som bygger på .NET 7.0.
PowerShell 7.3 innehåller följande funktioner, uppdateringar och icke-bakåtkompatibla ändringar.
Icke-bakåtkompatibla ändringar och förbättringar
- I den här versionen har Windows-API:er uppdaterats eller tagits bort för efterlevnad, vilket innebär att PowerShell 7.3 inte körs på Windows 7. Även om Windows 7 inte längre stöds kan tidigare versioner köras på Windows 7.
- PowerShell Direct för Hyper-V stöds endast i Windows 10, version 1809 och senare.
Test-Connection
är bruten på grund av en avsiktlig icke-bakåtkompatibel ändring i .NET 7. Den spåras av #17018- Lägg till
clean
blockering i skriptblock som peer tillbegin
,process
ochend
för att tillåta enkel resursrensning (#15177) - Ändra standardvärdet för
$PSStyle.OutputRendering
till Värd - Gör
Out-String
ochOut-File
behåll strängindata oförändrade (#17455) - Flytta typdatadefinitionen för System.Security.AccessControl.ObjectSecurity till modulen Microsoft.PowerShell.Security (#16355) (tack @iSazonov!)
- Innan den här ändringen behöver en användare inte uttryckligen importera modulen Microsoft.PowerShell.Security för att använda kodegenskaperna som definierats för en instans av System.Security.AccessControl.ObjectSecurity.
- Efter den här ändringen måste en användare uttryckligen importera Modulen Microsoft.PowerShell.Security för att kunna använda dessa kodegenskaper och kodmetoder.
Förbättringar av flikens slutförande
- PowerShell 7.3 innehåller PSReadline 2.2.6, vilket möjliggör Predictive IntelliSense som standard. Mer information finns i about_PSReadLine.
- Åtgärda flikslut i skriptblocket som angetts
ValidateScriptAttribute
för . (#14550) (Tack @MartinGC94!) - Fliken har slutförts för loopetiketter efter
break
/continue
(#16438) (Tack @MartinGC94!) - Förbättra hashtable-slutförande i flera scenarier (#16498) (tack @MartinGC94!)
- Parametersplatting
- Argumentparameter för
Invoke-CimMethod
- FilterHashtable-parameter för
Get-WinEvent
- Egenskapsparameter för CIM-cmdletar
- Tar bort dubbletter från scenarier för medlemsavslut
- Stöd för snedstreck i slutförande av nätverksresurs (UNC-sökväg) (#17111) (tack @sba923!)
- Förbättra automatisk komplettering av medlemmar (#16504) (tack @MartinGC94!)
- Prioritera ValidateSet-slutföranden över Uppräkningar för parametrar (#15257) (tack @MartinGC94!)
- Lägg till typinferensstöd för generiska metoder med typparametrar (#16951) (Tack @MartinGC94!)
- Förbättra typinferens och slutföranden (#16963) (Tack @MartinGC94!)
- Tillåter att metoder visas i slutföranderesultat för
ForEach-Object -MemberName
- Förhindrar slutförande av uttryck som returnerar tomrum som
([void](""))
- Tillåter att icke-standardklasskonstruktorer visas när klassavslutningen baseras på AST
- Tillåter att metoder visas i slutföranderesultat för
- Förbättra typinferensen för
$_
(#17716) (Tack @MartinGC94!) - Åtgärda typinferens för ICollection (#17752) (Tack @MartinGC94!)
- Förhindra att klammerparenteser tas bort när du slutför variabler (#17751) (tack @MartinGC94!)
- Lägg till slutförande för indexuttryck för ordlistor (#17619) (tack @MartinGC94!)
- Åtgärda typavslut för attributtoken (#17484) (Tack @MartinGC94!)
- Förbättra slutförande av dynamisk parameterflik (#17661) (tack @MartinGC94!)
- Undvik att binda positionsparametrar när du slutför parametern framför värdet (#17693) (Tack @MartinGC94!)
Förbättrad felhantering
- Ange
$?
korrekt för kommandouttryck med omdirigeringar (#16046) - Åtgärda ett gjutningsfel när du använder
$PSNativeCommandUseErrorActionPreference
(#15993) - Gör det interna kommandofelshanteringen valfritt att respektera
ErrorActionPreference
(#15897) - Ange den körbara sökvägen som
TargetObject
för slutkoden ErrorRecord (#16108) (tack@rkeithhill!)
Förbättringar av sessioner och fjärrkommunikation
- Lägg till
-Options
i PSRP via SSH-kommandon för att tillåta direktöverföring av OpenSSH-alternativ (#12802) (tack @BrannenGH!) - Lägg till
-ConfigurationFile
parameter förpwsh
att tillåta att en ny process startas med sessionskonfigurationen som definierats i en.pssc
fil (#17447) - Lägg till stöd för användning
New-PSSessionConfigurationFile
på plattformar som inte är Windows -plattformar (#17447)
Uppdaterade cmdletar
- Lägg till
-HttpVersion
parameter i webb-cmdletar (#15853) (tack @hayhay27!) - Lägg till stöd för webb-cmdletar för öppna indatataggar (#16193) (Tack @farmerau!)
- Korrigering
ConvertTo-Json -Depth
för att tillåta högst 100 (#16197) (tack @KevRitchie!) - Förbättra variabelhanteringen när du anropar
Invoke-Command
med uttrycket (#16113)$using:
(Tack@dwtaber!) - Lägg till
-StrictMode
Invoke-Command
för att tillåta att strikt läge anges när kommandot anropas lokalt (#16545) (tack @Thomas-Yu!) - Lägg till
clean
blockering i skriptblock som peer tillbegin
,process
ochend
för att tillåta enkel resursrensning (#15177) - Lägg till
-Amended
switch tillGet-CimClass
cmdlet (#17477) (Tack @iSazonov) - Har ändrats
ConvertFrom-Json -AsHashtable
för att använda ordnad hashtable (#17405) - ANSI-escapesekvenser har tagits bort i strängar innan de skickas till
Out-GridView
(#17664) - Parametern Milliseconds har lagts till i
New-TimeSpan
(#17621) (tack @NoMoreFood!) - Visa valfria parametrar när du visar metoddefinitioner och överlagringar (#13799) (Tack @eugenesmlv!)
- Tillåt att kommandon fortfarande körs även om den aktuella arbetskatalogen inte längre finns (#17579)
- Lägg till stöd för HTTPS med
Set-AuthenticodeSignature -TimeStampServer
(#16134) (tack @Ryan-Hutchison-USAF!) - Rendera decimaltal i en tabell med aktuell kultur (#17650)
- Lägg till typaccelerator ordnad för OrderedDictionary (#17804) (tack @fflaten!)
- Lägg till
find.exe
i äldre argumentbindningsbeteende för Windows (#17715) - Lägg till
-noprofileloadtime
växel till pwsh (#17535) (Tack @rkeithhill!)
En fullständig lista över ändringar finns i Ändringsloggen på GitHub-lagringsplatsen.
Experimentella funktioner
I PowerShell 7.3 blev följande experimentella funktioner vanliga:
PSAnsiRenderingFileInfo
– Den här funktionen lägger till$PSStyle.FileInfo
medlemmen och aktiverar färgning av specifika filtyper.PSCleanBlock
– Lägger tillclean
blockering i skriptblock som peer tillbegin
,process
ochend
för att möjliggöra enkel resursrensning.PSAMSIMethodInvocationLogging
– Utökar de data som skickas till AMSI för inspektion så att alla anrop av .NET-metodmedlemmar inkluderas.PSNativeCommandArgumentPassing – PowerShell använder nu egenskapen ArgumentList för StartProcessInfo-objektet i stället för den gamla mekanismen för att rekonstruera en sträng när en intern körbar fil anropas.
PowerShell 7.3.1 lägger
sqlcmd.exe
till i listan över interna kommandon i Windows som använderLegacy
formatet för argumentöverföring.PSExec
– Lägger till den nyaSwitch-Process
cmdleten (aliasexec
) för att tillhandahållaexec
kompatibilitet för icke-Windows-system.PowerShell 7.3.1 ändrade aliaset
exec
till en funktion som omsluterSwitch-Process
. Med funktionen kan du skicka parametrar till det interna kommandot som felaktigt kan vara bundet till parametern WithCommand .
PowerShell 7.3 introducerar följande experimentella funktioner:
- PSNativeCommandErrorActionPreference – Lägger till variabeln
$PSNativeCommandUseErrorActionPreference
för att aktivera fel som genereras av interna kommandon som PowerShell-fel.
PowerShell 7.3 tog bort följande experimentella funktioner:
PSNativePSPathResolution
experimentell funktion stöds inte längre.PSStrictModeAssignment
experimentell funktion stöds inte längre.
Mer information om experimentella funktioner finns i Använda experimentella funktioner.