Aggiornare a mano browser, lettore video, compressore di file e gli altri programmi significa aprire ciascun sito, scaricare l’installer e cliccare «Avanti» più volte. winget, il gestore di pacchetti di Windows sviluppato da Microsoft, fa tutto questo con un comando: cerca il programma, scarica l’installer dal sito del produttore, ne controlla l’impronta (hash) e lo installa. Questa guida parte dalle basi di PowerShell per iniziare.
Prima di iniziare
- winget è incluso in Windows 11 e nelle versioni aggiornate di Windows 10 (dalla 1809) tramite l’app Programma di installazione app (App Installer) del Microsoft Store.
- I comandi funzionano sia in PowerShell sia nel Prompt dei comandi.
- Per cercare e vedere gli aggiornamenti basta una finestra normale. Molti programmi chiedono i permessi di amministratore durante l’installazione: Windows mostra la richiesta di conferma.
Passo 1: verificare che winget ci sia
winget --version
Se compare un numero di versione (per esempio v1.x.xxxx) sei pronto. Se il comando non viene riconosciuto, apri il Microsoft Store, cerca Programma di installazione app e aggiornalo. Alla prima ricerca winget può chiedere di accettare le condizioni delle origini: rispondi S (o Y).
winget usa due origini principali: winget, il catalogo pubblico curato da Microsoft e dalla comunità su GitHub, e msstore, il Microsoft Store. Le vedi con winget source list.
Passo 2: cercare il programma giusto
winget search vlc

Ogni pacchetto ha un Id univoco, di solito nella forma Produttore.Programma. Usa sempre l’Id, non il nome: nomi simili possono indicare programmi diversi. Prima di installare, controlla i dettagli:
winget show --id VideoLAN.VLC
Verifica le voci Autore/Editore, Home page e URL del programma di installazione: devono puntare al sito ufficiale del produttore.
Passo 3: installare
winget install --id VideoLAN.VLC -e
-e (--exact) impone la corrispondenza esatta dell’Id. Opzioni utili:
| Opzione | Effetto |
|---|---|
--silent |
Installazione senza finestre, con le impostazioni predefinite |
--scope user o --scope machine |
Solo per il tuo utente o per tutti gli utenti del PC (se il pacchetto lo prevede) |
--source winget |
Cerca solo nel catalogo winget, non nello Store |
--version 3.0.21 |
Installa una versione precisa |
--accept-package-agreements |
Accetta la licenza senza chiedere (utile negli script; leggi la licenza almeno una volta) |
Esempio: preparare un PC con i programmi di base
winget install --id Mozilla.Firefox -e
winget install --id 7zip.7zip -e
winget install --id VideoLAN.VLC -e
winget install --id Notepad++.Notepad++ -e
Gli Id indicati sono quelli del catalogo pubblico al momento della scrittura: verifica sempre con winget search prima di usarli.
Passo 4: vedere e installare gli aggiornamenti
Senza argomenti, winget upgrade mostra i programmi per cui c’è una versione più recente. Include anche i programmi installati senza winget, se li riconosce.
winget upgrade

Aggiornare un solo programma:
winget upgrade --id 7zip.7zip -e
Aggiornare tutto quello che è nell’elenco:
winget upgrade --all

- Prima guarda l’elenco con
winget upgrade, poi lancia--all: così sai cosa verrà aggiornato. - Chiudi i programmi da aggiornare (browser, lettori, client di posta), altrimenti l’installer può fallire o chiedere un riavvio.
- Alcuni programmi non dichiarano la versione installata e non compaiono. Per includerli:
winget upgrade --all --include-unknown; usalo con prudenza, perché reinstalla anche ciò che è già aggiornato. - Al termine controlla di nuovo con
winget upgrade: l’elenco dovrebbe essere vuoto o contenere solo i programmi bloccati.
Passo 5: bloccare un programma su una versione
Se un programma deve restare a una certa versione (per esempio per compatibilità con un plugin), usa un pin:
winget pin add --id Notepad++.Notepad++
winget pin list
winget pin remove --id Notepad++.Notepad++
| Tipo di pin | Comando | Effetto |
|---|---|---|
| Normale | winget pin add --id … |
Escluso da upgrade --all, ma aggiornabile singolarmente |
| Bloccante | … --blocking |
Mai aggiornato da winget finché non togli il pin |
| Su un intervallo | … --version 8.* |
Aggiornato solo all’interno di quella serie di versioni |
Il pin vale solo per winget: il programma può comunque aggiornarsi da solo con il suo sistema interno.
Passo 6: trasferire i programmi su un PC nuovo
Sul vecchio PC esporta l’elenco dei pacchetti in un file JSON:
winget export -o "$env:USERPROFILE\Desktop\programmi.json"
Copia il file sul PC nuovo e installa tutto:
winget import -i "$env:USERPROFILE\Desktop\programmi.json" --ignore-unavailable
Apri prima il file con il Blocco note e togli le righe dei programmi che non vuoi reinstallare. Il file contiene solo l’elenco dei programmi, non le loro impostazioni né i tuoi documenti.
Errori comuni
| Messaggio o problema | Cosa fare |
|---|---|
| Nessun pacchetto trovato | Cerca con un nome più corto o controlla l’Id con winget search |
| Sono stati trovati più pacchetti | Usa --id con -e, ed eventualmente --source winget |
| L’hash del programma di installazione non corrisponde | Non forzare l’installazione: il file scaricato non è quello atteso. Riprova più tardi o scarica dal sito ufficiale |
| Installazione non riuscita con un codice di errore | Chiudi il programma, riprova con --interactive per vedere l’installer; i registri si aprono con winget upgrade --open-logs |
| Un programma ricompare sempre tra gli aggiornamenti | Spesso è installato in due versioni o per due ambiti (utente e computer). Controlla con winget list --id … |
Sicurezza. winget scarica gli installer dagli indirizzi indicati nel catalogo e ne verifica l’impronta, ma non sostituisce il tuo giudizio: installa solo programmi che conosci, controlla l’editore con winget show e non usare l’opzione --ignore-security-hash.
Fonti
- Microsoft Learn, Usare winget per installare e gestire le applicazioni.
- Microsoft Learn, comandi upgrade, pin, export e import.
- GitHub, catalogo pubblico dei pacchetti winget.
