Winget su Windows 11: guida pratica ai comandi per installare e aggiornare software

Immagine di copertina dell'articolo

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 --helpMostra l'elenco completo dei comandi disponibili
winget infoMostra informazioni sul sistema e sulla configurazione di Winget
winget hash --file [percorso]Genera l'hash SHA256 di un installer
winget source listElenca le sorgenti dei pacchetti configurate
winget pin listMostra 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.