Cos'è Winget
Winget, acronimo di Windows Package Manager, è lo strumento a riga di comando integrato in Windows 11 per cercare, installare, aggiornare, configurare e rimuovere applicazioni. Funziona in modo simile ai gestori di pacchetti dei sistemi Linux, come apt su Debian o yum su Red Hat: automatizza operazioni che altrimenti richiederebbero il download manuale di ogni installer dal sito del produttore.
Winget fa parte del componente App Installer, distribuito e aggiornato tramite Microsoft Store, ed è disponibile su Windows 11, sulle versioni recenti di Windows 10 e su Windows Server 2025.
Requisiti e installazione
Su Windows 11 Winget è preinstallato. Se il comando non risulta disponibile, è possibile che App Installer non si sia ancora registrato: basta aprire PowerShell ed eseguire il comando seguente.
Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe
In alternativa, App Installer può essere scaricato direttamente dal Microsoft Store. Chi desidera le funzionalità più recenti può installare la versione preview scaricandola dalla pagina release del progetto su GitHub, oppure iscrivendosi al Windows Insider Program nei canali Canary o Dev.
Dove eseguire i comandi
Winget può essere usato indifferentemente da Prompt dei comandi, PowerShell o Windows Terminal: la sintassi dei comandi non cambia tra un ambiente e l'altro. Va inoltre considerato il livello di privilegi: se un'applicazione richiede l'elevazione, avviando Winget da un terminale non amministrativo comparirà una richiesta UAC; da un terminale eseguito come amministratore l'installazione procede senza prompt, quindi è bene lanciarlo in questa modalità solo con pacchetti di cui ci si fida.
Comandi di base
Cercare un'applicazione
Il comando search restituisce l'elenco dei pacchetti che corrispondono al termine cercato, con relativo ID univoco.
winget search vlc
Installare un'applicazione
Una volta individuato il pacchetto, l'installazione avviene con install.
winget install VLC
Quando il nome dell'app è ambiguo (ad esempio per applicazioni con più varianti o edizioni Beta), è consigliabile specificare l'ID esatto restituito dalla ricerca, per evitare di installare la versione sbagliata.
winget install --id Google.Chrome
Visualizzare i dettagli di un pacchetto
winget show VLC
Elencare i pacchetti installati
winget list
Aggiornare le applicazioni
Per vedere quali applicazioni hanno un aggiornamento disponibile:
winget upgrade
Per aggiornare una singola applicazione:
winget upgrade VLC
Per aggiornare tutte le applicazioni in un'unica operazione:
winget upgrade --all
Il flag --all da solo può non essere sufficiente, perché alcuni pacchetti installati manualmente o non perfettamente indicizzati non vengono riconosciuti con certezza. In questi casi conviene forzare il controllo anche sulle versioni non determinabili con il flag --include-unknown.
winget upgrade --all --include-unknown
Disinstallare un'applicazione
winget uninstall VLC
Altri comandi utili
Oltre ai comandi di base, Winget mette a disposizione diverse funzioni per la diagnostica e la gestione delle sorgenti.
winget --help | Mostra l'elenco completo dei comandi disponibili |
winget info | Mostra informazioni sul sistema e sulla configurazione di Winget |
winget hash --file [percorso] | Genera l'hash SHA256 di un installer |
winget source list | Elenca le sorgenti dei pacchetti configurate |
winget pin list | Mostra i pacchetti esclusi dagli aggiornamenti |
Esportare e importare la configurazione
Una delle funzioni più pratiche di Winget è la possibilità di generare un manifesto JSON con l'elenco delle applicazioni installate, comprensivo di ID e versioni. È utile per replicare lo stesso set di software su una nuova macchina o per un ripristino dopo una formattazione.
Per esportare l'elenco dei pacchetti:
winget export -o C:\Backup\winget-packages.json
Per reinstallare tutte le applicazioni elencate nel file su un altro sistema:
winget import -i C:\Backup\winget-packages.json --accept-package-agreements
Il flag --accept-package-agreements è importante in scenari automatizzati, perché evita le richieste interattive di accettazione delle licenze durante l'esecuzione.
Bloccare la versione di un pacchetto (pin)
In alcuni contesti è preferibile non aggiornare automaticamente un'applicazione, ad esempio per evitare incompatibilità con altri strumenti. Il comando pin permette di bloccare un pacchetto a una versione specifica, escludendolo dal comando upgrade --all.
winget pin add --id 7zip.7zip
Per rimuovere il blocco:
winget pin remove --id 7zip.7zip
Automatizzare le installazioni con uno script
Quando serve installare o aggiornare più applicazioni in sequenza, è possibile scrivere un semplice script PowerShell che itera su un elenco di pacchetti.
$applicazioni = @("VLC", "GoogleChrome", "7zip")
foreach ($app in $applicazioni) {
winget install $app --accept-package-agreements --accept-source-agreements
}
Write-Host "Installazione completata"
I due flag di accettazione automatica sono necessari per eseguire lo script senza interazione manuale, ad esempio durante la configurazione di una nuova postazione.
Gestire sorgenti e repository
Di default Winget interroga due sorgenti: il Microsoft Store e il repository comunitario winget. Per aggiungere un repository personalizzato, ad esempio in ambito aziendale:
winget source add --name MioRepo --arg https://mio.repo.privato/
Per rimuovere una sorgente:
winget source remove MioRepo
Se si riscontrano pacchetti non trovati o errori di hash, può essere utile forzare il reset delle sorgenti per scaricare un indice aggiornato.
winget source reset --force
Formati di installer supportati
Winget non si limita ai classici .exe e .msi: supporta anche ZIP, INNO, NULLSOFT, WIX, APPX, MSIX, BURN, PORTABLE e FONT, coprendo la maggior parte dei formati usati dai produttori di software per Windows.
Risoluzione dei problemi
Se il comando winget non viene riconosciuto, il problema più comune riguarda la variabile PATH o una versione di App Installer non aggiornata. Per approfondire un errore specifico, è possibile consultare i log direttamente da terminale.
winget --info
Per problemi più articolati, la documentazione ufficiale di Microsoft e la sezione issue del repository GitHub di Winget raccolgono le soluzioni ai problemi più comuni.