Condividi tramite


Novità di PowerShell 7.6

PowerShell 7.6 include le funzionalità, gli aggiornamenti e le modifiche di rilievo seguenti. PowerShell 7.6.0 è basato sul runtime di .NET 10.0.5.

Per un elenco completo delle modifiche, vedere l' CHANGELOG nel repository GitHub.

Moduli aggiornati

PowerShell 7.6 include i moduli aggiornati seguenti:

  • Microsoft.PowerShell.PSResourceGet v1.2.0
  • PSReadLine v2.4.5
  • Microsoft.PowerShell.ThreadJob v2.2.0

Modifiche di rilievo

  • Microsoft.PowerShell.ThreadJob sostituisce il modulo ThreadJob. Il Start-ThreadJob cmdlet non è stato modificato, quindi non dovrebbe esserci un impatto a meno che non si disponga di script che usano il nome completo del modulo. Se usi il nome completo del modulo, aggiorna il nome a Microsoft.PowerShell.ThreadJob\Start-ThreadJob.
  • Correzione WildcardPattern.Escape di escape dei backtick solitari correttamente (#25211) (grazie) @ArmaanMcleod!)
  • Convertire -ChildPath il parametro in string[] per Join-Path il cmdlet (#24677) (grazie) @ArmaanMcleod!)
  • Rimuovere lo spazio finale dal nome dell'origine evento (#24192) (grazie @MartinGC94!)

Miglioramenti del completamento tramite tab

  • Espandere correttamente gli alias nel relativo comando risolto effettivo (#26571) (grazie) @kilasuit!)
  • Usare il parametro HelpMessage per il tooltip nel completamento dei parametri (#25108) (Grazie @jborean93!))
  • Rimuovere moduli duplicati dai risultati di completamento (#25538) (grazie) @MartinGC94!)
  • Aggiungere il completamento per le variabili assegnate in ArrayLiteralAst e ParenExpressionAst (#25303) (grazie) @MartinGC94!)
  • Correzione del completamento della tabulazione per le variabili env/funzione (#25346) (grazie @jborean93!))
  • Aggiornare l'inferenza del tipo di blocco Named e Statement per non considerare le istruzioni di assegnazione e gli operatori di incremento/decremento come parte dell'output (#21137) (grazie @MartinGC94!)
  • Aggiungi il completatore di argomenti per -PropertyType (New-ItemProperty) (grazie )
  • Aggiungi il supporto di completamento con virgolette singole e doppie per il parametro -Noun per Get-Command (#24977) (grazie @ArmaanMcleod!)
  • Aggiungere il supporto delle virgolette singole/doppie di completamento del parametro -PSEdition per Get-Module (#24971) (grazie @ArmaanMcleod!))
  • Convertire InvalidCommandNameCharacters in AnalysisCache in SearchValues<char> per una ricerca di caratteri più efficiente (#24880) (grazie @ArmaanMcleod!)
  • Convertire s_charactersRequiringQuotes in completatori in SearchValues<char> per una ricerca dei caratteri più efficiente (#24879) (grazie @ArmaanMcleod!) )
  • Aggiorna le chiamate di IndexOfAny() con percorso/nome file non valido a SearchValues<char> per una ricerca di caratteri più efficiente ([#24896][24896]) (Grazie @ArmaanMcleod!))
  • Sostituire char[] array in CompletionRequiresQuotes con SearchValues<char> memorizzato nella cache (#24907) (grazie @ArmaanMcleod!)
  • Aggiungi la gestione delle virgolette in Verb, StrictModeVersion, Scope e PropertyType argument completers con un singolo metodo helper (#24839) (grazie @ArmaanMcleod!))
  • Correzione del completamento della condivisione con fornitore e spazi (#19440) (Grazie a @MartinGC94!))
  • Migliorare l'inferenza del tipo di variabile (#19830) (grazie) @MartinGC94!)
  • Aggiungi descrizioni comando per i completamenti della chiave hashtable (#17864) (grazie) @MartinGC94!)
  • Correzione dell'inferenza dei tipi di parametri nelle funzioni classiche (#25172) (grazie) @MartinGC94!)
  • Migliorare l'inferenza del tipo di assegnazione (#21143) (grazie) @MartinGC94!)
  • Escludere le assegnazioni OutVariable all'interno della stessa CommandAst durante l'inferenza di variabili (#25224) (grazie) @MartinGC94!)
  • Correzione del completamento del parametro quando i requisiti dello script falliscono (#17687) (Grazie @MartinGC94!))
  • Migliorare il completamento per gli argomenti degli attributi (#25129) (grazie) @MartinGC94!)
  • Correzione del completamento basato sulla pseudobinding nei blocchi di script (#25122) (grazie) @MartinGC94!)
  • Non completare i nomi dei comandi duplicati (#21113) (grazie) @MartinGC94!)
  • Aggiungere il completamento per le variabili assegnate dal reindirizzamento dei comandi (#25104) (grazie) @MartinGC94!)
  • Correggi il funzionamento di TypeName.GetReflectionType() quando l'istanza TypeName rappresenta una definizione di tipo generico all'interno di un GenericTypeName (#24985)
  • Aggiorna il completamento dell'assegnazione di variabili/proprietà in modo che possa fare il fallback all'inferenza del tipo (#21134). Grazie @MartinGC94!)
  • Gestire l'inferenza dei tipi per i comandi reindirizzati (#21131) (grazie @MartinGC94!))
  • Usare l'approccio Get-Help per trovare i file about_*.help.txt con impostazioni locali corrette per i completamenti (#24194) (grazie a @MartinGC94!))
  • Correzione del completamento delle variabili assegnate all'interno dei cicli Do (#25076) (grazie) @MartinGC94!)
  • Correzione del completamento dei percorsi del provider quando un percorso restituisce se stesso anziché i suoi figli (#24755) (grazie) @MartinGC94!)
  • Abilitare il completamento delle variabili con ambito senza specificare l'ambito (#20340) (grazie) @MartinGC94!)
  • Correzione del problema relativo ai risultati incompleti durante il completamento di percorsi con caratteri jolly nei provider esterni al file system (#24757) (grazie @MartinGC94!))

Miglioramenti dei cmdlet

  • Aggiungere il fallback di localizzazione implicita a Import-LocalizedData (#19896) (grazie) @chrisdent-de!)
  • Aggiungere -Delimiter il parametro a Get-Clipboard (#26572) (grazie) @MartinGC94!)
  • Correzione Out-GridView sostituendo l'uso di BinaryFormatter obsoleto con implementazione personalizzata (#25497) (grazie) @mawosoft!)
  • Migliorare la messaggistica dettagliata e del livello di registrazione di debug nei cmdlet Web (#25510) (grazie) @JustinGrote!)
  • Migliorare il logging di debug delle richieste e delle risposte dei cmdlet web (#25479) (grazie) @JustinGrote!)
  • Aggiungere il parametro Register-ArgumentCompleter -NativeFallback per supportare la registrazione di un completore per tutti i comandi nativi (#25230)
  • Considera -Target come letterale in New-Item (#25186) (grazie) @GameMicrowave!)
  • Aggiornare la variabile di ambiente PATH per l'eseguibile del gestore pacchetti in Windows (#25847)
  • Aggiornamento Get-Service per ignorare gli errori comuni durante il recupero di proprietà non critiche per un servizio (#24245) (grazie) @jborean93!)
  • Aggiungere il supporto per virgolette singole/doppie per Join-String Argument Completer (#25283) (grazie) @ArmaanMcleod!)
  • Rimuovi il controllo da IsScreenReaderActive() in ConsoleHost (#26118)
  • Migliorare il supporto delle $using espressioni in Invoke-Command (#24025) (grazie @jborean93!))
  • Modificare il timeout predefinito del provider di commenti e suggerimenti da 300 ms a 1000 ms (#25910)
  • Aggiunta del supporto per migliaia di separatori nel [bigint] cast (#25396) (grazie) @AbishekPonmudi!)
  • Aggiungere MethodInvocation una traccia per il tracciamento dell'overload (#21320) (grazie @jborean93!))
  • Correzione ConvertFrom-Json per ignorare i commenti all'interno di valori letterali di array (#14553) (#26050) (grazie @MatejKafka!))
  • Correzione -Debug per non attivare il ShouldProcess prompt (#26081)
  • Correggi Write-Host per rispettare OutputRendering = PlainText (#21188)
  • Correzione dell'errore di traccia di debug con extent magic (#25726) (grazie) @jborean93!)
  • Correzione delle virgolette nel completamento se il percorso include un carattere di virgolette doppie (#25631) (grazie) @MartinGC94!)
  • Correzione del parametro -ProgressAction comune per le funzioni avanzate (#24591) (grazie) @cmkb3!)
  • Correzione di NullReferenceException quando si scrivono record di avanzamento nella console da più thread (#25440) (grazie a @kborowinski!))
  • Usare il percorso assoluto in FileSystemProvider.CreateDirectory (#24615) (grazie @Tadas!))
  • Rendere accessibili i membri dell'istanza interna protetta ereditata nell'ambito della classe PowerShell (#25245) (grazie) @mawosoft!)
  • Aggiungere metodi interni per controllare le preferenze (#25514) (grazie) @iSazonov!)
  • Aggiungere -ExcludeModule parametro a Get-Command (#18955) (grazie @MartinGC94!)
  • Restituisce la proprietà FileName corretta per Get-Item quando si elencano flussi di dati alternativi (#18019) (grazie @kilasuit!)
  • Correggi Get-ItemProperty per segnalare un errore non terminante per l'eccezione di cast (#21115) (grazie @ArmaanMcleod!)
  • Correzione di un bug nel modo in cui q gestisce l'oggetto XmlNode (#24669) (grazie @brendandburns!)
  • Errore quando New-Item -Force viene passato un nome di directory non valido (#24936) (grazie @kborowinski!)
  • Consentire a Start-Transcript di usare $Transcript, una stringa avvolta da PSObject, per specificare il percorso della trascrizione (#24963) (grazie @kborowinski!))
  • Migliorare l'efficienza del polling Start-Process -Wait (#24711) (Grazie @jborean93!))
  • Aggiungi il completamento dei moduli in base al nome breve (#20330) (grazie @MartinGC94!))

Miglioramenti del motore

  • Correzione di una regressione nell'API CompletionCompleters.CompleteFilename() che causa un'eccezione di riferimento Null (#26487)
  • Chiudere gli handle client di pipe dopo la creazione del processo SSH figlio (#26564)
  • Aggiornare il modulo PSDiagnostics per gestire il provider PowerShellCore in PowerShell 7 (#25590)
  • Consenti la possibilità di rifiutare il listener named-pipe usando la variabile di ambiente POWERSHELL_DIAGNOSTICS_OPTOUT (#26086)
  • Assicurarsi che i timeout del socket siano impostati solo durante la convalida del token (#26066)
  • Correggi l'output stderr dell'host della console per rispettare NO_COLOR (#24391)
  • Aggiornare il protocollo PSRP per deprecare lo scambio di chiavi di sessione tra il client e il server più recente (#25774)
  • Correggere il controllo del ssh PATH in SSHConnectionInfo quando lo spazio di esecuzione predefinito non è disponibile (#25780) (Grazie a @jborean93!))
  • Aggiunta del formato esadecimale per i codici di uscita dei comandi nativi (#21067) (Grazie) @sba923!)
  • Risolto il problema del ciclo infinito che causava un arresto anomalo nell'inferenza del tipo di variabile (#25696) (grazie a) @MartinGC94!)
  • Aggiungere PSForEach e PSWhere come alias per i metodi Where intrinseci di PowerShell e Foreach (#25511) (grazie) @powercode!)
  • Aggiunto il modulo AIShell all'elenco di raccolta dati di telemetria (#24747)
  • Aggiunta dell'helper in EnumSingleTypeConverter per ottenere nomi di enumerazione come matrice (#17785) (grazie @fflaten!)
  • Aggiornare DnsNameList per X509Certificate2 per usare X509SubjectAlternativeNameExtension.EnumerateDnsNames() Method (#24714) (grazie @ArmaanMcleod!))
  • Stringify ErrorRecord con messaggio di eccezione vuoto in stringa vuota (#24949) (Grazie @MatejKafka!))
  • Aggiungi PipelineStopToken a Cmdlet, al quale verrà segnalato quando la pipeline viene arrestata (#24620) (grazie @jborean93!))
  • Ritorno a AppLocker dopo WldpCanExecuteFile (#24912)
  • Spostare la registrazione delle chiamate al metodo .NET dopo che è stata eseguita la conversione del tipo necessaria per gli argomenti del metodo (#25022)
  • Correzione del ciclo infinito nell'inferenza del tipo di variabile (#25206) (grazie) @MartinGC94!)
  • Rimuovere il suggerimento fuzzy precedente e correggere il suggerimento relativo al nome del file di script locale (#25177)
  • Rendere SystemPolicy visibili le API pubbliche ma non operative sulle piattaforme Unix in modo che possano essere incluse in PowerShellStandard.Library (#25051)
  • Impostare gli handle standard in modo esplicito all'avvio di un processo con -NoNewWindow (#25061)
  • Correggi il tooltip per l'espansione delle variabili e includi la descrizione (#25112) (grazie @jborean93!))
  • Usare il percorso file script durante il completamento dei percorsi relativi per l'uso delle istruzioni (#20017) (grazie) @MartinGC94!)
  • Consentire l'analisi DSC tramite gli strati di traduzione dell'architettura del sistema operativo (#24852) (grazie) @bdeb1337!)

Funzionalità sperimentali

PowerShell 7.6 include le modifiche seguenti alle funzionalità sperimentali.

Le funzionalità seguenti sono state convertite in funzionalità mainstream:

Questa versione include le funzionalità sperimentali seguenti: