Novità di PowerShell 7.3
PowerShell 7.3 è la versione stabile successiva, basata su .NET 7.0.
PowerShell 7.3 include le funzionalità, gli aggiornamenti e le modifiche di rilievo seguenti.
Modifiche e miglioramenti di rilievo
- In questa versione le API di Windows sono state aggiornate o rimosse per la conformità, il che significa che PowerShell 7.3 non viene eseguito in Windows 7. Anche se Windows 7 non è più supportato, le build precedenti potrebbero essere eseguite in Windows 7.
- PowerShell Direct per Hyper-V è supportato solo in Windows 10 versione 1809 e successive.
Test-Connection
viene interrotta a causa di una modifica intenzionale di rilievo in .NET 7. Viene tracciato da #17018- Aggiungere
clean
un blocco al blocco di script come peer abegin
,process
eend
per consentire una pulizia semplice delle risorse (#15177) - Modificare il valore predefinito per
$PSStyle.OutputRendering
in Host - Apportare
Out-String
eOut-File
mantenere invariato l'input stringa (#17455) - Spostare la definizione dei dati del tipo di System.Security.AccessControl.ObjectSecurity nel modulo Microsoft.PowerShell.Security (#16355) (grazie) @iSazonov!)
- Prima di questa modifica, un utente non deve importare in modo esplicito il modulo Microsoft.PowerShell.Security per usare le proprietà del codice definite per un'istanza di System.Security.AccessControl.ObjectSecurity.
- Dopo questa modifica, un utente deve importare in modo esplicito il modulo Microsoft.PowerShell.Security per usare tali proprietà di codice e metodi di codice.
Miglioramenti del completamento tramite tabulazione
- PowerShell 7.3 include PSReadline 2.2.6, che abilita IntelliSense predittivo per impostazione predefinita. Per altre informazioni, vedere about_PSReadLine.
- Correzione del completamento della scheda all'interno del blocco di script specificato per .
ValidateScriptAttribute
(#14550) (grazie) @MartinGC94!) - Aggiunta del completamento della scheda per le etichette del ciclo dopo
break
/continue
(#16438) (grazie) @MartinGC94!) - Migliorare il completamento della tabella hash in più scenari (#16498) (grazie)@MartinGC94!)
- Splatting dei parametri
- Parametro arguments per
Invoke-CimMethod
- Parametro FilterHashtable per
Get-WinEvent
- Parametro della proprietà per i cmdlet CIM
- Rimuove i duplicati dagli scenari di completamento dei membri
- Supporto delle barre nel completamento della condivisione di rete (percorso UNC) (#17111) (grazie) @sba923!)
- Migliorare il completamento automatico dei membri (#16504) (grazie)@MartinGC94!)
- Assegnare la priorità ai completamenti ValidateSet rispetto alle Enumerazioni per i parametri (#15257) (grazie) @MartinGC94!)
- Aggiunta del supporto dell'inferenza dei tipi per i metodi generici con parametri di tipo (#16951) (grazie) @MartinGC94!)
- Migliorare l'inferenza e i completamenti dei tipi (#16963) (grazie)@MartinGC94!)
- Consente di visualizzare i metodi nei risultati di completamento per
ForEach-Object -MemberName
- Impedisce il completamento delle espressioni che restituiscono void come
([void](""))
- Consente la visualizzazione dei costruttori di classe non predefiniti quando il completamento della classe è basato su AST
- Consente di visualizzare i metodi nei risultati di completamento per
- Migliorare l'inferenza dei tipi per
$_
(#17716) (grazie) @MartinGC94!) - Correzione dell'inferenza del tipo per ICollection (#17752) (grazie)@MartinGC94!)
- Impedire la rimozione delle parentesi graffe durante il completamento delle variabili (#17751) (grazie) @MartinGC94!)
- Aggiunta del completamento per le espressioni di indice per i dizionari (#17619) (grazie)@MartinGC94!)
- Correzione del completamento del tipo per i token di attributo (#17484) (grazie)@MartinGC94!)
- Migliorare il completamento della scheda dei parametri dinamici (#17661) (grazie)@MartinGC94!)
- Evitare l'associazione dei parametri posizionali quando si completa il parametro davanti al valore (#17693) (grazie)@MartinGC94!)
Miglioramento della gestione degli errori
- Impostare
$?
correttamente per l'espressione di comando con reindirizzamenti (#16046) - Correggere un errore di cast quando si usa
$PSNativeCommandUseErrorActionPreference
(#15993) - Rendere facoltativa la
ErrorActionPreference
gestione degli errori del comando nativo (#15897) - Specificare il percorso eseguibile come
TargetObject
codice di uscita diverso da zero ErrorRecord (#16108) (grazie) @rkeithhill!)
Miglioramenti della sessione e della comunicazione remota
- Aggiungere
-Options
ai comandi PSRP tramite SSH per consentire il passaggio diretto delle opzioni OpenSSH (#12802) (grazie)@BrannenGH!) - Aggiungere
-ConfigurationFile
un parametro a per consentire l'avviopwsh
di un nuovo processo con la configurazione di sessione definita in un.pssc
file (#17447) - Aggiungere il supporto per l'uso
New-PSSessionConfigurationFile
su piattaforme non Windows (#17447)
Aggiornamento dei cmdlet:
- Aggiungere
-HttpVersion
il parametro ai cmdlet Web (#15853) (grazie)@hayhay27!) - Aggiunta del supporto ai cmdlet Web per i tag di input aperti (#16193) (grazie)@farmerau!)
- Correzione
ConvertTo-Json -Depth
per consentire 100 al massimo (#16197) (grazie)@KevRitchie!) - Migliorare la gestione delle variabili quando si chiama
Invoke-Command
con l'espressione$using:
(#16113) (grazie)@dwtaber!) - Aggiungi
-StrictMode
aInvoke-Command
per consentire di specificare la modalità strict quando si richiama il comando in locale (#16545) (grazie) @Thomas-Yu!) - Aggiungere
clean
un blocco al blocco di script come peer abegin
,process
eend
per consentire una pulizia semplice delle risorse (#15177) - Aggiunta
-Amended
dell'opzione alGet-CimClass
cmdlet (#17477) (grazie)@iSazonov) - Modifica per
ConvertFrom-Json -AsHashtable
l'uso della tabella hash ordinata (#17405) - Rimozione delle sequenze di escape ANSI nelle stringhe prima dell'invio a
Out-GridView
(#17664) - Aggiunta del parametro Milliseconds a
New-TimeSpan
(#17621) (grazie) @NoMoreFood!) - Mostra parametri facoltativi durante la visualizzazione di overload e definizioni di metodo (#13799) (grazie)@eugenesmlv!)
- Consenti l'esecuzione dei comandi anche se la directory di lavoro corrente non esiste più (#17579)
- Aggiunta del supporto per HTTPS con
Set-AuthenticodeSignature -TimeStampServer
(#16134) (grazie)@Ryan-Hutchison-USAF!) - Eseguire il rendering dei numeri decimali in una tabella usando le impostazioni cultura correnti (#17650)
- Aggiunta dell'acceleratore di tipi ordinato per OrderedDictionary (#17804) (grazie)@fflaten!)
- Aggiungere
find.exe
al comportamento di associazione di argomenti legacy per Windows (#17715) - Aggiungere
-noprofileloadtime
l'opzione a pwsh (#17535) (grazie)@rkeithhill!)
Per un elenco completo delle modifiche, vedere Log delle modifiche nel repository GitHub.
Funzionalità sperimentali
In PowerShell 7.3, le funzionalità sperimentali seguenti sono diventate mainstream:
PSAnsiRenderingFileInfo
- Questa funzionalità aggiunge il membro e abilita la$PSStyle.FileInfo
colorazione di tipi di file specifici.PSCleanBlock
- Aggiungeclean
blocco al blocco di script come peer abegin
,process
eend
per semplificare la pulizia delle risorse.PSAMSIMethodInvocationLogging
- Estende i dati inviati ad AMSI per l'ispezione in modo da includere tutte le chiamate dei membri del metodo .NET.PSNativeCommandArgumentPassing : PowerShell usa ora la proprietà ArgumentList dell'oggetto StartProcessInfo anziché il meccanismo precedente di ricostruire una stringa quando si richiama un eseguibile nativo.
PowerShell 7.3.1 aggiunge
sqlcmd.exe
all'elenco di comandi nativi in Windows che usano lo stile di passaggio dell'argomentoLegacy
.PSExec
- Aggiunge il nuovoSwitch-Process
cmdlet (aliasexec
) per garantireexec
la compatibilità per i sistemi non Windows.PowerShell 7.3.1 ha modificato l'alias in una funzione che esegue il
exec
wrapping diSwitch-Process
. La funzione consente di passare parametri al comando nativo che potrebbe avere erroneamente associato al parametro WithCommand .
PowerShell 7.3 introduce le funzionalità sperimentali seguenti:
- PSNativeCommandErrorActionPreference : aggiunge la
$PSNativeCommandUseErrorActionPreference
variabile per abilitare gli errori generati da comandi nativi come errori di PowerShell.
PowerShell 7.3 ha rimosso le funzionalità sperimentali seguenti:
PSNativePSPathResolution
la funzionalità sperimentale non è più supportata.PSStrictModeAssignment
la funzionalità sperimentale non è più supportata.
Per altre informazioni sulle funzionalità sperimentali, vedere Uso delle funzionalità sperimentali.