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 universalinstallationspaket för de flesta Linux-distributioner som stöds
  • Microsoft Update-stöd för Windows
  • 2 nya experimentella funktioner
    • Förbättrat internt kommandoargument som skickar stöd
    • Stöd för ANSI FileInfo-färg
  • Förbättrade tabbslutningar
  • PSReadLine 2.1 med Predictive IntelliSense
  • 7 experimentella funktioner som befordrats till mainstream och 1 har tagits bort
  • 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 Ändringsloggen 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.

Uppdaterad information om operativsystem som stöds och supportlivscykel finns i Livscykel för PowerShell-support.

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 plattformsspecifika ändringar 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 hanteringsflöde för Windows Update (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 för automatisk Uppdateringar eller Windows Update
    • 0– välj inte att använda Microsoft Update Uppdateringar eller Windows Update

Experimentella funktioner

Följande experimentella funktioner är nu vanliga funktioner i den här versionen:

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 StartProcessInfo-objektet i stället för vår nuvarande mekanism för att rekonstruera en sträng när en intern körbar fil anropas. Den här funktionen lägger till en ny automatisk variabel $PSNativeCommandArgumentPassing som gör att du kan välja beteendet 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 intern kod.

Mer information om experimentella funktioner finns i Använda experimentella funktioner.

Förbättrade tabbslutningar

PowerShell 7.2 innehåller flera förbättringar av tabbavslut. Dessa ändringar omfattar buggfix och förbättrar användbarheten.

  • Åtgärda flikavslut för oallokerade om* ämnen (#15265) (Tack @MartinGC94)
  • Åtgärda att splatting behandlas som positionsparameter i slutföranden (#14623) (Tack @MartinGC94)
  • Lägg till slutföranden för kommentarsbaserade hjälpnyckelord (#15337) (tack @MartinGC94)
  • Lägg till slutförande för Requires-instruktioner (#14596) (tack @MartinGC94)
  • Fliken har slutförts för visa parametern format-* cmdletar (#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. MED API:et kan användarna 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 togs bort från PowerShell 7.2-paketet och publiceras nu till PowerShell-galleriet. Detta gör att MODULen PSDesiredStateConfiguration kan 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

Viktigt

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 · Pull-begäran #14652

Icke-bakåtkompatibla ä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 är inställt för alla utdata från skript-cmdletar (#12766)
  • Avge varning om ConvertTo-Json överskrider -Djupvärde (#13692)
  • Ta bort alias D för -Directory-växeln CL-General #15171
  • Förbättra identifieringen av föränderliga värdetyper (#12495)
  • Begränsa New-Object i NoLanguage-läge under låsning (#14140)
  • Framtvinga applocker neka konfiguration innan körningsprincip kringgå konfiguration (#15035)
  • Ändra FileSystemInfo.Target från en CodeProperty till ett AliasProperty som pekar på FileSystemInfo.LinkTarget (#16165)