Windows Package Manager (anche conosciuto come winget) è una soluzione gratuita e open-source di gestione pacchetti completa costituita da uno strumento da riga di comando (winget) e da un set di servizi per l'installazione di applicazioni in Windows 10 e Windows 11.

Uno strumento di gestione pacchetti è un sistema o un set di strumenti usati per automatizzare l'installazione, l'aggiornamento, la configurazione e l'utilizzo del software. La maggior parte degli strumenti di gestione pacchetti è progettata per individuare e installare gli strumenti di sviluppo, ma non solo. Probabilmente molti di voi conosceranno prodotti simili, come Chocolatey, Scoop, Ninite, AppGet, Npackd e OneGet.

Il vantaggio offerto da questi tool è quello di ridurre il tempo impiegato per la preparazione di un ambiente e garantire che nel computer siano installate le stesse versioni dei pacchetti. Un utilizzo può essere quello trattato nel mio articolo Boxstarter e Chocolatey: Automatizzare l’installazione dei software in Windows.

Windows Package Manager fu annunciato nella conferenza Microsoft Build 2020 e a maggio 2021 fu rilasciato Windows Package Manager v1.0 e il supporto alle Group Policy.

Si tratta di un open set di API che è anche possibile integrare con software di Endpoint Management, come Microsoft Intune. Il client di frontend è il tool a riga di comando winget.

Con il comando winget è possibile interrogare un catalogo pubblico di applicazioni, tramite il nuovo Microsoft Store oppure appWin32, .NET, UWP, Xamarin, Electron, Reactive Native, Java e Progressive Web Apps (PWA) scritte da sviluppatori di terze parti.

Windows Package Manager è preinstallato in Windows 10 1709 (build 16299) o versioni successive e in Windows 11.

Potete verificarne l’installazione controllando nel Microsoft Store che sia presente l’app “App Installer

 

 

 

Figura 1: App Installer nel Microsoft Store

 

Per gestire Windows Package Manager tramite Group Policy è necessario prima scaricare e installare gli Administrative Template files (ADMX/ADML) per il Windows Package Manager. Dopo averli estratti sarà sufficiente copiarli nella cartella C:\Windows\PolicyDefinitions del domain controller. Riaprendo successivamente il Group Policy Editor per qualsiasi GPO, le nuove configurazioni saranno disponibili e potranno essere utilizzate per poter gestire le applicazioni Office, come mostrato nelle figure sotto. Ricordatevi anche di copiare la cartella degli ADML (language pack degli ADMX) della stessa lingua del domain controller!

Se avete più domain controller, come è giusto che sia, e se sono anche distribuiti in diversi Site di Active Directory, sarà necessario copiare gli Administrative Templates in tutte le cartelle C:\Windows\PolicyDefinitions di tutti i domain controller in modo tale da poterlo configurare da qualsiasi DC e non necessariamente dal DC che ha il ruolo di PDC Emulator. Per ovviare a questa incombenza è possibile utilizzare il Central Store delle GPO, disponibile da Windows Server 2008.

 

 

 

Figura 2: Gestione del Windows Package Manager utilizzando le Group Policy

 

Utilizzo del client winget

winget è uno strumento software open source disponibile su GitHub nel repository https://github.com/microsoft/winget-cli/

 

 

 

Figura 3: Opzioni del comando winget

 

 

 

 

Figura 4: Esempio di utilizzo del comando winget

 

Per ulteriori informazioni sul comando winget vi invito a visualizzare la pagina Usare lo strumento winget per installare e gestire le applicazioni | Microsoft Learn

NOTA: Quando winget viene eseguito senza privilegi di amministratore, l'installazione di alcune applicazioni potrebbe richiedere l'elevazione dei privilegi. Durante l'esecuzione del programma di installazione, Windows richiederà l'elevazione dei privilegi.

 

Aggiornamento delle applicazioni con winget

Tramite il comando winget upgrade è possibile visualizzare se ci sono delle applicazioni installate che necessitano di aggiornamenti.

 

 

 

Figura 5: Ricerca degli aggiornamenti con il comando winget upgrade

Una volta visualizzata la presenza di aggiornamenti potrete utilizzare il comando winget upgrade <nome applicazione> per aggiornare la singola applicazione, oppure il comando winget upgrade  --all per aggiornarle tutte. Alla pagina Comando di aggiornamento | Microsoft Learn trovate tutte le informazioni sugli switch del comando di aggiornamento.

 

 

 

Figura 6: Aggiornamento di tutte le applicazioni con il comando winget upgrade --all

 

 

Package Manager Manifest

Per inviare un pacchetto software al Windows Package Manager Community Repository, iniziate creando un manifesto del pacchetto. Il manifesto è un file YAML che descrive l'applicazione da installare.

È possibile usare il Windows Package Manager Manifest Creator, lo script YAMLCreate PowerShell oppure creare un manifesto manualmente.

 

NOTA: Potete anche approfondire sintassi ed utilizzi di YAML guardando un video molto interessante YAML – Sintassi ed utilizzi – YouTube a cura di Emiliano Musso.

 

 

 

Figura 7: Esempio di Manifest file

 

Dopo aver creato un manifesto del pacchetto che descrive l'applicazione, siete pronti per inviare il manifesto al Windows Package Manager repository. Si tratta di un repository pubblico che contiene una raccolta di manifesti a cui può accedere lo strumento winget. Per inviare il manifesto, dovrete caricarlo nel repository open source GitHub https://github.com/microsoft/winget-pkgs.

Dopo aver inviato una richiesta pull per aggiungere un nuovo manifesto al repository GitHub, un processo automatizzato convaliderà il file manifesto e verificherà che il pacchetto sia conforme ai criteri di Gestione pacchetti Windows e non sia noto come dannoso. Se la convalida ha esito positivo, il pacchetto verrà aggiunto al repository pubblico di Gestione pacchetti di Windows, in modo che possa essere individuato dallo strumento client winget

NOTA: Microsoft si riserva il diritto di rifiutare un invio per qualsiasi motivo.

Trovate informazioni aggiuntive alla pagina https://learn.microsoft.com/it-it/windows/package-manager/package/repository

 

Conclusioni

Uno strumento di gestione pacchetti è un sistema o un set di strumenti usati per automatizzare l'installazione, l'aggiornamento, la configurazione e l'utilizzo del software. Tramite Windows Package Manager i fornitori di software indipendenti (ISV) possono distribuire facilmente i propri pacchetti software e le applicazioni, riduce il tempo impiegato per la preparazione di un ambiente.