PowerShell continua a evolversi ed ogni nuova versione porta con sé correzioni e miglioramenti rispetto alla precedente. Vediamo come aggiornare PowerShell usando winget, il package manager integrato in Windows, e come verificare che la nuova versione sia effettivamente attiva.
PowerShell 7.x è il ramo cross-platform e open source di PowerShell, separato da Windows PowerShell 5.1 incluso nel sistema operativo. Le release del ramo 7.x seguono un ciclo cadenzato e ogni aggiornamento può includere:
- Correzioni di bug che impattano l’esecuzione di script in produzione
- Miglioramenti delle performance nell’elaborazione di oggetti e pipeline
- Aggiornamenti alla sicurezza dell’engine e delle librerie sottostanti
- Nuove funzionalità del linguaggio e dei cmdlet core
Verificare la versione corrente
Prima di procedere, è utile conoscere la versione installata. All’avvio, PowerShell visualizza la versione attuale e segnala eventuali aggiornamenti disponibili con un banner informativo simile a quelle seguente
A new PowerShell stable release is available: v7.6.2
Upgrade now, or check out the release page at: https://aka.ms/PowerShell-Release?tag=v7.6.2In alternativa, è possibile interrogare la variabile $PSVersionTable:
$PSVersionTable.PSVersion
# Output atteso
Major Minor Patch PreReleaseLabel BuildLabel
----- ----- ----- --------------- ----------
7 6 1Come verificare la versione di PowerShell era già stato trattato in un precedente articolo (clicca qui)
Aggiornare PowerShell con winget
winget (Windows Package Manager) è disponibile su Windows 10 1809 e versioni successive ed è preinstallato su Windows 11. Consente di gestire i pacchetti software da riga di comando in modo analogo ad apt su sistemi Debian/Ubuntu.
Per aggiornare PowerShell è sufficiente eseguire il comando
winget upgrade Microsoft.PowerShellwinget individua automaticamente il pacchetto, scarica il programma di installazione e avvia la procedura in background. L’output tipico è simile al seguente
Trovato PowerShell [Microsoft.PowerShell] Versione 7.6.2.0
Questa applicazione viene concessa in licenza dal proprietario.
Microsoft non è responsabile né concede alcuna licenza a pacchetti di terze parti.
Verifica dell'hash di installazione completata
Avvio installazione pacchetto in corso...
Installazione completata.
Riavviare l'applicazione per completare l'aggiornamento.winget scarica il programma di installazione MSI ufficiale da Microsoft e ne verifica l’hash prima dell’esecuzione. Non sono necessari privilegi elevati per avviare il comando, ma il programma di installazione potrebbe richiedere l’elevazione UAC a seconda della configurazione di sistema.
Verificare l’aggiornamento
l passaggio finale è chiudere eventuali sessione aperte di PowerShell dopo l’installazione che stanno continuando ad utilizzare il vecchio binario, mentre tutte le nuove istanze saranno caricate con la nuova versione.
In una nuova finestra, è possibile eseguire nuovamente
$PSVersionTable.PSVersion
# Output atteso dopo un aggiornamento riuscito
Major Minor Patch PreReleaseLabel BuildLabel
----- ----- ----- --------------- ----------
7 6 2Il valore nel campo Patch è passato da 1 a 2, l’aggiornamento è avvenuto con successo.
L’integrazione tra PowerShell e winget rende la manutenzione dell’ambiente di scripting estremamente lineare: nessun installer da scaricare manualmente, nessuna pagina di rilascio da consultare. Un singolo comando è sufficiente per restare allineati alle ultime release stabili.