Novità di PowerShell 7.2

PowerShell 7.2 è la prossima versione di Long Term Servicing (LTS) basata su .NET 6.0.

PowerShell 7.2 include le funzionalità, gli aggiornamenti e le modifiche di rilievo seguenti.

  • Nuovi pacchetti di programma di installazione universali per le distribuzioni Linux più supportate
  • Supporto di Microsoft Update in Windows
  • 2 nuove funzionalità sperimentali
    • Miglioramento dell'argomento del comando nativo che passa il supporto
    • Supporto dei colori ANSI FileInfo
  • Miglioramenti dei completamenti delle schede
  • PSReadLine 2.1 con IntelliSense predittivo
  • 7 funzionalità sperimentali promosse a mainstream e 1 rimosse
  • Separazione di DSC da PowerShell 7 per consentire miglioramenti futuri
  • Diverse modifiche di rilievo per migliorare l'usabilità

Per un elenco completo delle modifiche, vedere Log delle modifiche nel repository GitHub.

Aggiornamenti dell'installazione

Vedere le istruzioni di installazione per il sistema operativo preferito:

PowerShell 7.2 supporta anche le versioni ARM64 di Windows e macOS e ARM32 e ARM64 di Debian e Ubuntu.

Per informazioni aggiornate sui sistemi operativi supportati e sul ciclo di vita del supporto, vedere ciclo di vita del supporto di PowerShell.

Nuovi pacchetti di installazione universale per le distribuzioni Linux

In precedenza sono stati creati pacchetti di installazione separati per ogni versione supportata di CentOS, RHEL, Debian e Ubuntu. Il pacchetto di installazione universale combina otto pacchetti diversi in uno, semplificando l'installazione in Linux. Il pacchetto universale installa le dipendenze necessarie per la distribuzione di destinazione e crea le modifiche specifiche della piattaforma per il funzionamento di PowerShell.

Supporto di Microsoft Update per Windows

PowerShell 7.2 aggiunge il supporto per Microsoft Update. Quando si abilita questa funzionalità, si otterranno gli aggiornamenti più recenti di PowerShell 7 nel flusso di gestione tradizionale di Windows Update (WU), indipendentemente dal fatto che si tratti di Windows Update for Business, WSUS, SCCM o la finestra di dialogo interattiva wu in Impostazioni.

Il pacchetto MSI di PowerShell 7.2 include le opzioni della riga di comando seguenti:

  • USE_MU - Questa proprietà ha due valori possibili:
    • 1 (impostazione predefinita) - Opta per l'aggiornamento tramite Microsoft Update o WSUS
    • 0 - non acconsentire esplicitamente all'aggiornamento tramite Microsoft Update o WSUS
  • ENABLE_MU
    • 1(impostazione predefinita) - Acconsente esplicitamente all'uso del Aggiornamenti automatico o di Windows Update
    • 0- non acconsentire esplicitamente all'uso di Microsoft Update il Aggiornamenti automatico o Windows Update

Funzionalità sperimentali

Le funzionalità sperimentali seguenti sono ora funzionalità mainstream in questa versione:

  • Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck - vedere Import-PowerShellDataFile
  • Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
  • PSAnsiRendering - vedere about_ANSI_Terminals
  • PSAnsiProgress - vedere about_ANSI_Terminals
  • PSCultureInvariantReplaceOperator
  • PSNotApplyErrorActionToStderr
  • PSUnixFileStat

In questa versione è stata aggiunta la funzionalità sperimentale seguente:

  • PSNativeCommandArgumentPassing : quando questa funzionalità sperimentale è abilitata in PowerShell usa la proprietà ArgumentList dell'oggetto StartProcessInfo anziché il meccanismo corrente di ricostruzione di una stringa quando si richiama un eseguibile nativo. Questa funzionalità aggiunge una nuova variabile $PSNativeCommandArgumentPassing automatica che consente di selezionare il comportamento in fase di esecuzione.

  • PSAnsiRenderingFileInfo : consente la personalizzazione dei colori ANSI delle informazioni sui file.

  • PSLoadAssemblyFromNativeCode : espone un'API per consentire il caricamento di assembly dal codice nativo.

Per altre informazioni sulle funzionalità sperimentali, vedere Uso delle funzionalità sperimentali.

Miglioramenti dei completamenti delle schede

PowerShell 7.2 include diversi miglioramenti al completamento tramite tabulazione. Queste modifiche includono i bugfix e migliorano l'usabilità.

  • Correzione del completamento della scheda per gli argomenti di informazioni non localizzate* (#15265) (grazie) @MartinGC94)
  • Correzione dello splatting trattato come parametro posizionale nei completamenti (#14623) (grazie) @MartinGC94)
  • Aggiungere completamenti per le parole chiave della Guida basate su commenti (#15337) (grazie) @MartinGC94)
  • Aggiunta del completamento per istruzioni Requires (#14596) (grazie) @MartinGC94)
  • Aggiunta del completamento della scheda per il parametro View dei cmdlet Format-* (#14513) (grazie) @iSazonov)

PSReadLine 2.1 Predictive IntelliSense

PSReadLine 2.1 ha introdotto CommandPrediction API che stabiliscono un framework per fornire stime per il completamento della riga di comando. L'API consente agli utenti di individuare, modificare ed eseguire comandi completi in base alle stime corrispondenti della cronologia dell'utente.

Per impostazione predefinita, IntelliSense predittivo è disabilitato. Per abilitare le stime, eseguire il comando seguente:

Set-PSReadLineOption -PredictionSource History

Separazione di DSC da PowerShell 7 per consentire miglioramenti futuri

Il modulo PSDesiredStateConfiguration è stato rimosso dal pacchetto PowerShell 7.2 ed è ora pubblicato in PowerShell Gallery. In questo modo il modulo PSDesiredStateConfiguration può essere sviluppato indipendentemente da PowerShell e gli utenti possono combinare e associare versioni di PowerShell e PSDesiredStateConfiguration per il proprio ambiente. Per installare PSDesiredStateConfiguration 2.0.5 da PowerShell Gallery:

Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99

Importante

Assicurarsi di includere il parametro MaximumVersion o di installare la versione 3 (o successiva) di PSDesireStateConfiguration che contiene differenze significative.

Aggiornamenti del motore

  • Aggiungere LoadAssemblyFromNativeMemory la funzione per caricare gli assembly in memoria da un host powerShell nativo attivando il codice · Richiesta pull n. 14652

Modifiche e miglioramenti di rilievo

  • PSDesiredStateConfiguration è stato rimosso dal pacchetto di PowerShell 7.2
  • Rendere universali i pacchetti Dib e RPM di PowerShell Linux (#15109)
  • Funzionalità PSNativeCommandArgumentPassingsperimentale: usare ArgumentList per la chiamata eseguibile nativa (#14692)
  • Assicurarsi che -PipelineVariable sia impostato per tutti gli output dei cmdlet di script (#12766)
  • Generare un avviso se ConvertTo-Json supera il valore -Depth (#13692)
  • Rimuovere l'alias D di -Directory switch CL-General #15171
  • Migliorare il rilevamento dei tipi valore modificabili (#12495)
  • Limitare New-Object la modalità NoLanguage con blocco (#14140)
  • Imponi la configurazione Di negazione di AppLocker prima della configurazione bypass dei criteri di esecuzione (#15035)
  • Passare FileSystemInfo.Target da codeProperty a aliasProperty che punta a FileSystemInfo.LinkTarget (#16165)