Nyheter i PowerShell 7.2
PowerShell 7.2 är nästa lts-version (Long Term Servicing) som bygger på .NET 6.0.
PowerShell 7.2 innehåller följande funktioner, uppdateringar och icke-bakåtkompatibla ändringar.
- Nya universella installationsprogrampaket för de flesta Linux-distributioner som stöds
- Microsoft Update-stöd i Windows
- 2 nya experimentella funktioner
- Förbättrat stöd för överföring av inhemska kommandoargument
- Stöd för ANSI FileInfo-färg
- Förbättrade tabbkompletteringar
- PSReadLine 2.1 med Predictive IntelliSense
- 7 experimentella funktioner uppflyttade till mainstream och 1 borttagna
- Separera DSC från PowerShell 7 för att möjliggöra framtida förbättringar
- Flera icke-bakåtkompatibla ändringar för att förbättra användbarheten
En fullständig lista över ändringar finns i Ändringslogg på GitHub-lagringsplatsen.
Installationsuppdateringar
Kontrollera installationsanvisningarna för önskat operativsystem:
Dessutom stöder PowerShell 7.2 ARM64-versioner av Windows- och macOS- och ARM32- och ARM64-versioner av Debian och Ubuntu.
För information om up-togällande operativsystem som stöds och deras supportlivscykel, se PowerShell Support Lifecycle.
Nya universella installationspaket för Linux-distributioner
Tidigare skapade vi separata installationspaket för varje version av CentOS, RHEL, Debian och Ubuntu som stöds. Det universella installationspaketet kombinerar åtta olika paket i ett, vilket gör installationen på Linux enklare. Det universella paketet installerar nödvändiga beroenden för måldistributionen och skapar de plattformsspecifika ändringarna för att få PowerShell att fungera.
Microsoft Update-stöd för Windows
PowerShell 7.2 lägger till stöd för Microsoft Update. När du aktiverar den här funktionen får du de senaste PowerShell 7-uppdateringarna i ditt traditionella Windows Update-hanteringsflöde (WU), oavsett om det är med Windows Update för företag, WSUS, SCCM eller den interaktiva WU-dialogrutan i Inställningar.
PowerShell 7.2 MSI-paketet innehåller följande kommandoradsalternativ:
-
USE_MU
– Den här egenskapen har två möjliga värden:-
1
(standard) – Väljer att uppdatera via Microsoft Update eller WSUS -
0
– välj inte att uppdatera via Microsoft Update eller WSUS
-
ENABLE_MU
-
1
(standard) – Väljer att använda Microsoft Update automatiska uppdateringar eller Windows Update -
0
– välj inte att använda Microsoft Update automatiska uppdateringar eller Windows Update
-
Experimentella funktioner
Följande experimentella funktioner är nu vanliga funktioner i den här versionen:
-
Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck
– se Import-PowerShellDataFile Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
-
PSAnsiRendering
– se about_ANSI_Terminals -
PSAnsiProgress
– se om_ANSI_Terminaler PSCultureInvariantReplaceOperator
PSNotApplyErrorActionToStderr
PSUnixFileStat
Följande experimentella funktion lades till i den här versionen:
PSNativeCommandArgumentPassing – När den här experimentella funktionen är aktiverad använder PowerShell egenskapen ArgumentList för objektet StartProcessInfo i stället för vår nuvarande mekanism för att rekonstruera en sträng när du anropar en intern körbar fil. Den här funktionen lägger till en ny automatisk variabel
$PSNativeCommandArgumentPassing
som gör att du kan välja beteende vid körning.PSAnsiRenderingFileInfo – Tillåt ANSI-färganpassning av filinformation.
PSLoadAssemblyFromNativeCode – Exponerar ett API för att tillåta sammansättningsinläsning från inbyggd kod.
Mer information om experimentella funktioner finns i Använda experimentella funktioner.
Förbättrade tab-slutföranden
PowerShell 7.2 innehåller flera förbättringar av Tab-komplettering. Dessa ändringar omfattar buggfix och förbättrar användbarheten.
- Fixa flikkomplettering för oöversatta "about*" ämnen (#15265) (tack @MartinGC94))
- Åtgärda att splatting behandlas som positionsparameter i autokompletteringar (#14623) (tack @MartinGC94))
- Lägg till kompletteringar för kommentarsbaserade hjälpnyckelord (#15337) (tack @MartinGC94)
- Lägg till komplettering för Kräver-uttryck (#14596) (tack @MartinGC94))
- Tillagd flikkomplettering för Visa-parametern i Format-* cmdlets (#14513) (tack @iSazonov))
PSReadLine 2.1 Predictive IntelliSense
PSReadLine 2.1 introducerade CommandPrediction
API:er som upprättar ett ramverk för att tillhandahålla förutsägelser för slutförande av kommandoraden. API:et gör det möjligt för användare att identifiera, redigera och köra fullständiga kommandon baserat på matchande förutsägelser från användarens historik.
Predictive IntelliSense är inaktiverat som standard. Om du vill aktivera förutsägelser kör du följande kommando:
Set-PSReadLineOption -PredictionSource History
Separera DSC från PowerShell 7 för att möjliggöra framtida förbättringar
Modulen PSDesiredStateConfiguration har tagits bort från PowerShell 7.2-paketet och har nu publicerats till PowerShell-galleriet. På så sätt kan modulen PSDesiredStateConfiguration utvecklas oberoende av PowerShell och användarna kan blanda och matcha versioner av PowerShell och PSDesiredStateConfiguration för sin miljö. Så här installerar du PSDesiredStateConfiguration 2.0.5 från PowerShell-galleriet:
Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99
Viktig
Se till att inkludera parametern MaximumVersion eller så kan du installera version 3 (eller senare) av PSDesireStateConfiguration som innehåller betydande skillnader.
Motoruppdateringar
- Lägg till
LoadAssemblyFromNativeMemory
funktion för att läsa in sammansättningar i minnet från en intern PowerShell-värd genom att aktivera kodning · Pull-begäran nr 14652
Brytande ändringar och förbättringar
- PSDesiredStateConfiguration togs bort från PowerShell 7.2-paketet
- Göra PowerShell Linux-deb- och RPM-paket universella (#15109)
- Experimentell funktion
PSNativeCommandArgumentPassing
: Använd ArgumentList för inbyggt körbart anrop (#14692) - Kontrollera att
-PipelineVariable
har angetts för alla utdata från skript-cmdletar (#12766) - Avge varning om
ConvertTo-Json
överskrider -Depth värde (#13692) - Ta bort alias D för -Directory brytare CL-General #15171
- Förbättra identifieringen av föränderliga värdetyper (#12495)
- Begränsa
New-Object
i NoLanguage- läge under nedstängning (#14140) - Genomdriva nekandekonfiguration av AppLocker före förbikopplingskonfiguration av körningspolicy (#15035)
- Ändra
FileSystemInfo.Target
från en CodeProperty- till ett AliasProperty- som pekar påFileSystemInfo.LinkTarget
(#16165)