Skip to content

Winget è uno strumento di gestione pacchetti per Windows che permette di installare, aggiornare, configurare e rimuovere software. Ecco una guida dettagliata sull’uso pratico di Winget.

Winget, il Windows Package Manager, è simile ai gestori di pacchetti presenti in sistemi Linux, come APT (Advanced Package Tool) su distribuzioni basate su Debian, o YUM (Yellowdog Updater, Modified) su distribuzioni basate su Red Hat. Questi strumenti semplificano il processo di gestione del software su sistemi operativi, permettendo agli utenti di installare, aggiornare, configurare e rimuovere software in modo efficiente e automatizzato.

Installazione di Winget

  • Prerequisiti: Assicurati che il tuo sistema operativo sia Windows 10 (versione 1709 o successiva) o Windows 11.
  • Download: Winget è incluso nel Windows Package Manager, che puoi ottenere tramite l’App Store di Windows o scaricando l’ultima versione da GitHub.

Come usare Winget

Winget può essere utilizzato sia in Windows Command Prompt (CMD) che in Windows PowerShell, nonché in Windows Terminal, che supporta sia ambienti CMD che PowerShell. Ecco come puoi usare Winget in ciascuno di questi ambienti:

Uso di Winget in Command Prompt (CMD)

  • Apertura di CMD: Puoi aprire il Prompt dei comandi cercando “cmd” nel menu Start e selezionando “Prompt dei comandi”.
  • Esecuzione dei Comandi Winget: Una volta aperto CMD, puoi digitare i comandi Winget direttamente nella finestra del prompt.

Uso di Winget in PowerShell

  • Apertura di PowerShell: Apri PowerShell cercando “PowerShell” nel menu Start e selezionando “Windows PowerShell”.
  • Esecuzione dei Comandi Winget: I comandi Winget funzionano allo stesso modo in PowerShell come in CMD.

Uso di Winget in Windows Terminal

  • Apertura di Windows Terminal: Se hai installato Windows Terminal, puoi aprirlo dal menu Start.
  • Selezione dell’Ambiente: Windows Terminal ti permette di scegliere tra diversi profili, come PowerShell, Command Prompt, e altri ambienti di shell personalizzati.
  • Esecuzione dei Comandi Winget: All’interno di Windows Terminal, seleziona il profilo desiderato (CMD o PowerShell) e usa i comandi Winget come faresti in quelle shell.

Note Aggiuntive

  • In tutti e tre gli ambienti, i comandi Winget sono gli stessi. La scelta tra CMD, PowerShell o Windows Terminal dipende dalle tue preferenze personali o dalle necessità specifiche del tuo workflow.
  • Assicurati che Winget sia installato e aggiornato alla versione più recente per accedere a tutte le sue funzionalità.

Uso Base di Winget

Installare un’applicazione

  • Apri il Prompt dei comandi o Windows Terminal.
  • Usa il comando winget install [nome-app].
winget install VLC

Verifica gli aggiornamenti disponibili

  • Per visualizzare la lista degli aggiornamenti disponibili digita winget upgrade.

Aggiornare un’applicazione

  • Usa winget upgrade [nome-app] per aggiornare una specifica applicazione.

Aggiornare tutte le applicazioni

  • Per aggiornare tutte le applicazioni digita winget upgrade --all.

Gestione avanzata degli aggiornamenti massivi

L’esecuzione del comando winget upgrade –all è spesso insufficiente in ambienti di produzione o su macchine di sviluppo complesse. Per garantire un aggiornamento completo, inclusi i pacchetti installati manualmente o non ancora perfettamente indicizzati nel repository, è necessario forzare l’inclusione delle versioni sconosciute.

Il workflow corretto per un aggiornamento totale del sistema prevede l’uso del flag –include-unknown:

winget upgrade --all --include-unknown

Nota tecnica: L’uso di questo comando forza Winget a tentare l’aggiornamento anche per applicazioni dove la versione installata non è determinabile con certezza tramite le chiavi di registro. È una pratica raccomandata per mantenere allineati environment di sviluppo Windows 11 dove coesistono installazioni via MS Store e installazioni legacy.

Ricerca di un’applicazione

  • Per trovare un’applicazione, usa winget search [nome-app].
  • Questo mostrerà un elenco di applicazioni corrispondenti al termine di ricerca.

Visualizzare informazioni dettagliate

  • Per ottenere dettagli su un’applicazione, usa winget show [nome-app].

Disinstallare un’applicazione

  • Usa winget uninstall [nome-app] per rimuovere un’applicazione.

Comandi utili

Ecco alcuni comandi utili di Winget, oltre a quelli già menzionati, che puoi trovare nella documentazione ufficiale di Microsoft:

  • info: Mostra i metadati relativi al sistema, come numeri di versione, architettura, posizione del log, ecc. È utile per la risoluzione dei problemi.
winget info
  • show: Visualizza i dettagli per l’applicazione specificata. Questo comando può essere usato per ottenere informazioni più dettagliate su un pacchetto.
winget show VLC
  • source: Aggiunge, rimuove e aggiorna i repository di Gestione pacchetti Windows accessibili tramite lo strumento Winget.
# Aggiungi un repository:
winget source add --name [nome-repo] --arg [url-repo]
# Rimuovi un repository:
winget source remove [nome-repo]
# Aggiorna un repository:
winget source update [nome-repo]
  • list: Mostra i pacchetti installati sul tuo sistema. È utile per avere una panoramica di tutte le applicazioni gestite tramite Winget.
winget list
  • hash: Genera l’hash SHA256 per il programma di installazione. Questo comando è utilizzato principalmente per scopi di verifica e sicurezza.
winget hash --file [percorso-del-file]
  • validate: Convalida un file manifesto da inviare al repository di Gestione pacchetti Windows. È utile per gli sviluppatori che vogliono contribuire al repository.
winget validate --manifest [percorso-del-manifesto]
  • features: Mostra lo stato delle funzionalità sperimentali di Winget.
winget features
  • export: Esporta un elenco dei pacchetti installati. Questo può essere utile per trasferire la stessa configurazione su un altro sistema.
winget export --output [nome-file.json]
  • import: Installa tutti i pacchetti in un file. Questo comando è utile per ripristinare o duplicare una configurazione software su un’altra macchina.
winget import --import [nome-file.json]
  • pin: Gestisce le aggiunte del pacchetto. Questo comando consente di “bloccare” un pacchetto a una specifica versione.
# Aggiungi un pin:
winget pin add --id [id-pacchetto] --version [versione]
# Rimuovi un pin:
winget pin remove --id [id-pacchetto]
  • configure: Configura il sistema nello stato desiderato. Questo comando offre un controllo più fine sulla configurazione di Winget.
winget configure

Ogni comando ha diverse opzioni e varianti, quindi ti consiglio di esplorarli e sperimentarli in base alle tue esigenze. La documentazione ufficiale di Winget fornisce ulteriori dettagli e esempi su come utilizzare questi comandi.

Utilizzo Avanzato

Automazione

Creare uno script per automatizzare l’installazione o l’aggiornamento di più applicazioni con Winget è un ottimo modo per risparmiare tempo e garantire la coerenza nelle installazioni. Ecco un esempio di script che potresti usare in Windows:

# Esempio di script PowerShell per installare o aggiornare applicazioni con Winget

# Lista delle applicazioni da installare o aggiornare
$applicazioni = @("VLC", "GoogleChrome", "7zip")

# Ciclo per ciascuna applicazione
foreach ($app in $applicazioni) {
    # Installa o aggiorna l'applicazione
    winget install $app --accept-package-agreements --accept-source-agreements
}

# Messaggio finale
Write-Host "Installazione/Aggiornamento completati!"

In questo script:

  • Viene definita una lista di applicazioni (ad esempio, “VLC”, “GoogleChrome”, “7zip”).
  • Lo script esegue un ciclo per ciascuna applicazione nella lista.
  • Per ogni applicazione, usa il comando winget install per installarla o aggiornarla, accettando automaticamente gli accordi relativi al pacchetto e alla fonte.
  • Dopo l’installazione o l’aggiornamento di tutte le applicazioni, viene visualizzato un messaggio di completamento.

Puoi modificare la lista delle applicazioni e adattare lo script in base alle tue esigenze specifiche. Questo script può essere eseguito in PowerShell su Windows.

Gestione delle configurazioni

Winget permette di configurare il comportamento del tool tramite un file di configurazione JSON. Puoi specificare impostazioni come i percorsi di installazione predefiniti.

{
    "source": {
        "autoUpdateIntervalInMinutes": 1440
    },
    "visual": {
        "progressBar": "rainbow"
    },
    "installer": {
        "scope": "user",
        "installLocation": "C:\\Programmi"
    }
}

In questo esempio:

  • “source”: Configura gli aggiornamenti automatici del repository di Winget.
  • “visual”: Imposta lo stile della barra di avanzamento (in questo caso, un effetto arcobaleno).
  • “installer”: Specifica le opzioni predefinite per l’installazione dei pacchetti. Qui, definisce la scope di installazione per l’utente e imposta una installLocation personalizzata.

Puoi creare o modificare questo file di configurazione in base alle tue preferenze e alle necessità specifiche. Il file di configurazione va salvato nel percorso appropriato affinché Winget possa leggerlo e applicare le impostazioni specificate.

Il file di configurazione JSON di Winget deve essere salvato in un percorso specifico sul tuo sistema Windows per essere riconosciuto e utilizzato da Winget. Generalmente, il percorso è il seguente:

%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json

Per accedervi, puoi:

  • Premere Win + R per aprire la finestra “Esegui”.
  • Incollare il percorso che segue e premere Invio.
%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\
  • Troverai qui il file settings.json, oppure puoi crearlo se non esiste già.

Assicurati che il file sia in formato JSON corretto e contenga le configurazioni che desideri applicare a Winget.

Repository Privati

La configurazione di Winget per utilizzare repository privati ti permette di gestire e installare pacchetti software interni all’azienda o personalizzati, oltre a quelli disponibili nei repository pubblici.

Passaggi per Aggiungere un Repository Privato

  • Apri il Prompt dei Comandi o PowerShell.
  • Utilizza il Comando source: Per aggiungere un nuovo repository, usa il seguente comando:
winget source add --name [nome-repo] --arg [url-repo]

dove [nome-repo] è il nome che vuoi dare al tuo repository privato e [url-repo] è l’URL del repository.

  • Verifica l’Aggiunta: Puoi verificare che il tuo repository sia stato aggiunto correttamente con:
winget source list

Esempio Pratico

Supponiamo che tu abbia un repository privato all’indirizzo https://mio.repo.privato/. Per aggiungerlo, il comando sarà:

winget source add --name "MioRepoPrivato" --arg "https://mio.repo.privato/"

Dopo aver aggiunto il repository, puoi cercare e installare pacchetti da esso allo stesso modo in cui lo faresti con i repository pubblici.

Gestione dei Repository

  • Aggiornare i Repository: Per aggiornare i repository, usa winget source update.
  • Rimuovere un Repository: Se necessario, puoi rimuovere un repository con winget source remove [nome-repo].

Considerazioni di Sicurezza

  • Assicurati che il repository privato sia sicuro e che i pacchetti siano affidabili, specialmente in un contesto aziendale.
  • Gestisci l’accesso al repository in modo appropriato per mantenere la sicurezza del software distribuito.

L’uso di repository privati con Winget è particolarmente utile in ambienti aziendali o per gestire software personalizzato in modo efficiente e centralizzato.

Creare uno snapshot dell’ambiente con Winget Export

Una delle funzionalità più potenti, spesso ignorata a favore di script PowerShell custom, è la capacità nativa di Winget di generare un manifesto JSON dell’intero parco software installato. Questo è fondamentale per replicare configurazioni identiche su nuove workstation o per disaster recovery rapido.

Per esportare la lista dei pacchetti installati in un file riutilizzabile:

winget export -o C:\Backup\winget-packages.json

Il file generato conterrà non solo i nomi dei pacchetti, ma gli ID univoci e le versioni specifiche, garantendo l’idempotenza dell’installazione successiva. Per ripristinare l’ambiente su una nuova macchina (o dopo una formattazione), il comando speculare è:

winget import -i C:\Backup\winget-packages.json --accept-package-agreements

L’argomento –accept-package-agreements è critico per l’automazione, in quanto sopprime le richieste interattive di accettazione delle licenze EULA, permettendo l’esecuzione unattended dello script.

Escludere pacchetti dagli aggiornamenti (Winget Pin)

In contesti aziendali, l’aggiornamento indiscriminato di tutti i pacchetti può causare regressioni o incompatibilità. Winget gestisce questa esigenza tramite il comando pin, che permette di “congelare” una specifica versione di un’applicazione, escludendola dal comando upgrade –all.

La sintassi per bloccare un pacchetto (es. una specifica versione di Node.js o di un driver GPU) è la seguente:

winget pin add --id <PackageID>

È possibile operare in tre modalità di blocco (Gating, Blocking, Pinning). Per visualizzare i pacchetti attualmente esclusi dal ciclo di update:

winget pin list

Questa funzionalità agisce modificando il database locale di SQLite di Winget, garantendo che anche lanciando script di manutenzione automatica, i pacchetti critici rimangano alla versione validata.

Gestione delle Sorgenti (Winget Source) e Repository Custom

Di default, Winget interroga due sorgenti primarie: msstore (Microsoft Store) e winget (il repository comunitario validato). Analizzando i log di installazione, è possibile notare discrepanze nelle versioni disponibili a seconda della sorgente prioritaria.

Per verificare lo stato delle sorgenti e l’ordine di priorità:

winget source list

Se riscontrate problemi di hash mismatch o pacchetti non trovati (spesso accade con pacchetti come Google Chrome o tool CLI specifici), è consigliabile forzare un reset delle sorgenti per scaricare l’indice aggiornato dai server CDN di Microsoft:

winget source reset --force

Installazione specifica: Per query ambigue come l’installazione di browser (es. “winget google”), è sempre preferibile specificare l’ID esatto per evitare installazioni di versioni Beta o Dev non desiderate:

winget install --id Google.Chrome

Troubleshooting

Se incontri errori, consulta la documentazione ufficiale di Winget o cerca soluzioni nei forum di discussione o su GitHub.

Articoli correlati

17 min lettura

L'esportazione massiva da Google Search Console a BigQuery supera i limiti dell'interfaccia nativa, garantendo retention illimitata e assenza di cap sulle righe. Configura il flusso per gestire big data SEO, storicizzare il traffico ed eseguire analisi avanzate tramite query SQL.
24 mi piace
35 min lettura

Analisi tecnica di report e metriche di SEOData.app per la gestione di big data SEO tramite API di Google Search Console. Focus sui metodi di calcolo, la discrepanza delle query anonime tra connettori Query e URL, e il clustering semantico per portali ad alto traffico.
4 mi piace

Autore

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ultimi articoli aggiornati

22 min lettura

Difendere WordPress dai commenti spam con una strategia defense in depth a tre layer: configurazioni applicative, regole edge su Cloudflare, barriere a livello web server. Honeypot PHP, regole .htaccess e Nginx modernizzate, Cloudflare Turnstile, fail2ban. Snippet completi pronti da incollare.
0 mi piace
22 min lettura

Analisi tecnica della persistenza dei dati nel protocollo HTTP tramite header Set-Cookie. Comprendere la meccanica dei cookie, attributi come Max-Age e i limiti di Googlebot come crawler stateless è essenziale per diagnosticare problemi di rendering e involuntary cloaking.
3 mi piace
19 min lettura

Analisi dell'architettura RAG nativa per WordPress sviluppata interamente in PHP e MySQL, senza dipendenze da database vettoriali esterni. Il sistema supera i limiti della ricerca lessicale integrando la ricerca semantica su VPS o hosting condivisi con meno di 1GB di RAM.
2 mi piace
7 min lettura

La gestione dei 404 durante le migrazioni richiede automazione per preservare la link equity. migTool è uno script Python progettato per automatizzare la mappatura dei redirect 301 intelligenti, ottimizzando il processo di reindirizzamento ed eliminando le inefficienze manuali.
5 mi piace

Richiedi un preventivo SEO e Google Ads

Porta il tuo sito web al livello successivo con l’esperienza di EVE Milano. La nostra agenzia di Search Marketing ha ricevuto oltre 1210 richieste di preventivo, un segnale chiaro della fiducia che imprenditori e manager, come te, ripongono nella nostra specializzazione tecnica e verticale nella SEO e PPC. Se la tua organizzazione cerca competenze specifiche per emergere nei risultati di Google, noi siamo pronti a fornire quel valore aggiunto. Richiedi un preventivo ora e scopri la differenza tra noi e gli altri.
Richiedi un preventivo

Vuoi ricevere un avviso al mese con le nuove guide pubblicate?

Iscriviti alla newsletter!