WinGet è uno strumento dalla riga di comando che permette di installare, aggiornare, rimuovere applicazioni sui sistemi Windows. Pensate a quando dovete preparare un computer, o una serie di computer, su cui dovete installare gli stessi programmi più volte, bisogna aprire il browser, cercare e scaricarli, avviarli e cliccare un numero imprecisato di Avanti o Next, con Winget potete creare uno script che automatizzi il tutto e riduca il vostro intervento all'aggiunta di qualche riga allo script e poco altro.
Aggiornato articolo per riflettere meglio le nuove funzionalità di Winget.
Lista programmi installati
Il primo comando utile, se volete conoscere tutti i nomi, gli Id, dei programmi già installati nel computer è winget list
.
Visualizzare gli aggiornamenti disponibili
Se ci interessa soltanto visualizzare la lista degli aggiornamenti il comando da usare è winget list --upgrade-available
Aggiornare i programmi
Winget è in grado di aggiornare i programmi (quasi) tutti i programmi la cui Origine sia winget.
L'aggiornamento è stato tutto automatico, non ha richiesto nessun intervento da parte mia. Non avendo controllato le opzioni prima di utilizzare winget non avevo visto --uninstall-previous
e quindi mi sono ritrovato con due installazioni diverse di Thunderbird in due cartelle separate. Questa opzione --uninstall-previous disinstalla la vecchia versione del programma prima di installare la più recente.
In alcuni casi potrebbe fallire l'installazione del programma, o degli aggiornamenti, ma WinGet è sempre piuttosto chiaro su cosa fare per cercare di superare l'errore e quali opzioni aggiungere al comando.
Installazione programmi
In questo caso stavo tentando di aggiornare Virtualbox, che era fallito in precedenza, con Winget install nome_programma
, ma non me lo lasciare fare.
Disinstallo quindi la versione presente e ripeto l'installazione con Winget che riesce senza problemi anche per la dipendenza richiesta.
Provo a installare Spotify ma ci sono due origini disponibili, scelgo l'installazione dallo Store Microsoft e questa riesce, anche se mi chiede di accettare le condizioni.
Ricerca programma
Se vi serve cercare un programma particolare per conoscere il suo Id esatto, e scegliere l'origine da cui scaricarlo, si utilizza il comando winget search - q nome_programma
.
Informazioni sul programma
Il comando winget show nome_programma
visualizza dettagliate informazioni sul programma scelto tra cui anche il link da cui scaricare il programma di installazione.
Disinstallazione programmi
Se si deve disinstallare un programma si utilizza il comando winget uninstall nome_programma
.
Installazione programmi via script
E' arrivato il momento di reinstallare da zero un computer e non avete nessuna voglia di fare il download di tutte le versioni più aggiornate, così si può provare a costruire uno script che si occupi di scaricare e installare tutti, o quasi, i programmi che vi servono.
Write-Output "Installazione programmi
"$apps = @(
@{name = "7zip.7zip" },
@{name = "Greenshot.Greenshot" },
@{name = "Microsoft.PowerToys" },
@{name = "TheDocumentFoundation.LibreOffice" },
@{name = "Notepad++.Notepad++" },
@{name = "Spotify.Spotify" }
);
Foreach ($app in $apps) {
$listApp = winget list --exact -q $app.name
if (![String]::Join("", $listApp).Contains($app.name)) {
Write-host "Installing: " $app.name
winget install -e -h --accept-source-agreements --accept-package-agreements --id $app.name
}
else {
Write-host "Skipping: " $app.name " (risulta già installato)"
}
}
Gli ID dei programmi li abbiamo trovati con winget search "nome_programma"
, poi basta modificare lo script e aggiungere tante righe @{name = "Nome_programma" }
, a seconda di quanti programmi dobbiamo installare.
Può essere che vada cambiata anche la riga winget install -e -h --accept-source-agreements --accept-package-agreements --id $app.name
aggiungendo, o togliendo, eventuali altre opzioni che possono servirci.
Durante le varie installazioni di prova che ho fatto, Greenshot ha aperto la pagina Web delle donazioni sul loro sito, alcuni programmi hanno visualizzato delle fasi dell'installazione (senza richiedere il mio intervento), mentre Spotify, in questo caso, non permette l'installazione come amministratore.
Se qualche programma richiede dei pacchetti aggiuntivi, le dipendenze, si occupa di scaricare anche quelle, vedi l'installazione di LibreOffice.
Conclusioni
Magari non sarà possibile installare automaticamente tutti i programmi che vi servono, qualcuno non sarà presente oppure avrà bisogno di configurazioni particolari, però potreste riuscire a creare uno script in grado di risparmiare molto tempo e lavoro da parte vostra.
Non sono riuscito a trovare, se esiste, una pagina ufficiale che riporti tutti i programmi installabili con winget, il comando che più si avvicina ad avere questo tipo di informazioni è winget search "nome_programma"
con cui dovreste trovare quello che cercate.
Per maggiori dettagli su WinGet potete usare l'opzione --help o consultare questa pagina