Che cos’è MSIX?
MSIX è un formato di pacchetto di applicazioni sviluppato da Microsoft che combina le migliori caratteristiche dei formati di pacchetto esistenti (come MSI e AppX) con nuove funzionalità per semplificare la distribuzione delle applicazioni su Windows 10 e versioni successive. MSIX garantisce che le applicazioni siano installate e disinstallate in modo pulito, senza lasciare residui nel sistema. Supporta la firma digitale, assicurando che i pacchetti non vengano alterati dopo essere stati creati e distribuiti. Permette aggiornamenti più efficienti, scaricando solo le parti dell’applicazione che sono state modificate, piuttosto che reinstallare l’intera applicazione.
Il formato MSIX supporta l’uso della containerizzazione per isolare le applicazioni dal sistema operativo e dalle altre applicazioni, riducendo i conflitti e migliorando la stabilità. È progettato per essere compatibile con le applicazioni Windows esistenti, permettendo di convertire i pacchetti MSI e AppX in formato MSIX. Facilita la gestione e la distribuzione delle applicazioni attraverso strumenti come Microsoft Intune, migliorando la gestione a livello aziendale. I pacchetti MSIX sono compressi in modo da occupare meno spazio, migliorando la velocità di distribuzione e riducendo l’utilizzo della larghezza di banda.
Figura 1: Contenuto di un pacchetto MSIX
Creazione del pacchetto MSIX – Preparazione dell’ambiente per la conversione
La preparazione dell’ambiente di conversione è un passaggio importante del processo di creazione di un pacchetto MSIX. Le raccomandazioni minime sono:
- Sistema operativo minimo Windows 10 1809
- Installazione pulita di Windows. Sul computer dove verrà effettuata la conversione non devono essere installate altre applicazioni perché lo strumento per la creazione di pacchetti MSX vedrà tutti gli elementi dell’ambiente per acquisire le attività del programma di installazione.
- L’ambiente di conversione deve corrispondere all’architettura di in cui verrà distribuita l’applicazione. Se ad esempio si intende distribuire il pacchetto MSIX in un computer x64, è necessario eseguire la conversione in un computer x64.
- È consigliato l’utilizzo di una macchina virtuale Hyper-V ed è anche disponibile un ambiente già pronto al link https://docs.microsoft.com/it-it/windows/msix/packaging-tool/quick-create-vm
- Utilizzo di una macchina virtuale offre anche la comodità di creare un checkpoint. In questo modo è possibile usare la macchina virtuale per convertire, ripristinare il checkpoint precedente e avere un computer pulito e configurato pronto per la conversione o per verificare che il pacchetto MSIX sia stato convertito correttamente.
- È anche utile sapere quali tipi di dipendenze ha l’applicazione, per capire quali devono essere eseguite con l’app e quali devono essere inserite in un pacchetto di modifica (runtime oppure plug-in)
Come già scritto, è anche possibile utilizzare una macchina virtuale per creare i pacchetti MSIX, usando la funzionalità Creazione rapida di Hyper-V, disponibile a partire da Windows 10, versione 1709. L’ambiente MSIX Packaging Tool è una versione di valutazione personalizzata di Windows 10 (versione 1909) che include la versione più recente dello strumento per la creazione di pacchetti MSIX e altri prerequisiti che consentono di iniziare rapidamente a usare le attività di configurazione.
Figura 2: Utilizzo di una macchina virtuale dedicata per la creazione del pacchetto MSIX
Converitre un’applicazione utilizzando MSIX Packaging Tool
Per poter scaricare MSIX Packaging Tool è sufficiente effettuare una ricerca nel Microsoft Store. dopo aver trovato il tool procedete alla sua installazione come mostrato nelle figure sotto:
Figura 3: Ricerca dell’MSIX Packaging Tool nel Microsoft Store
Figura 4: Download e installazione dell’MSIX Packaging Tool
Figura 5: dell’MSIX Packaging Tool installato
Prima di poter procedere alla creazione di un nuovo package è necessario possedere un certificato digitale che verrà utilizzato per firmare il pacchetto MSIX. Nel caso in cui non può non possediate questo tipo di certificato è anche possibile crearlo in modalità self-signed utilizzando i comandi PowerShell mostrati sotto. Ho provveduto quindi alla creazione del certificato e alla esportazione sia della chiave privata che della chiave pubblica, che verranno successivamente utilizzate.
NOTA: È importante sottolineare che il certificato con la chiave pubblica dovrà essere presente sui client di destinazione, altrimenti l’installazione del pacchetto MSIX fallirà.
1 2 3 4 5 6 7 |
$certificate = New-SelfSignedCertificate -DNSName "Example Self-Signed Code Signing for Nicola Ferrini" -CertStoreLocation Cert:\CurrentUser\My -Type CodeSigningCert -Subject "Example Code Signing" $SecurePassword = Read-Host -Prompt "Enter password for the .PFX file" -AsSecureString Export-PfxCertificate -Cert "Cert:\CurrentUser\My\$($certificate.Thumbprint)" -FilePath "codesigning.pfx" -Password $SecurePassword Export-Certificate -Cert "Cert:\CurrentUser\My\$($certificate.Thumbprint)" -FilePath "codesigning.cer" |
Figura 6: Creazione del certificato self-signed per la firma del pacchetto MSIX
Figura 7: verifica della creazione del certificato self-signed
A questo punto possiamo procedere alla creazione di un nuovo package utilizzando MSIX Package Tool. Fate click sulla prima icona per far partire il wizard di creazione del package.
Figura 8: Lancio del wizard per la creazione di un nuovo package MSIX
Figura 9: Scelta della modalitò della creazione del wizard
Attendete l’installazione del MSIX Packaging tool driver e cliccate nella casella di controllo per disabilitare Windows Search. Fate click su Next per proseguire. Nel caso il tool vi chieda di riavviare , premete Cancel , effettuato il riavvio e ripetete il processo per la creazione di nuovo package subito dopo il reboot.
Figura 10: Installazione dell’ MSIX Packaging tool driver
Selezionate quindi l’installer del software di cui volete creare il package. In questo esempio ho deciso di distribuire Notepad++ ed ho provveduto a scegliere il file .PFX del certificato da utilizzare per la firma del pacchetto, che avevo creato pocanzi utilizzando PowerShell. Fate click su Next per proseguire nel wizard.
Figura 11: Scelta del pacchetto e del certificato di utilizzare per firmarlo
Inserite a questo punto le informazioni richieste dal wizard e decidete in quale cartella dovrà essere salvato il file .MSIX che verrà creato. Una volta che avrete cliccato su Next comincerà l’installazione del vostro software e non potrete tornare alla schermata precedente.
Figura 12: Inserimento delle informazioni del package
Procedete quindi all’installazione del software e alla successiva esecuzione (primo avvio). Personalizzate il software a vostro piacimento . Ricordatevi che qualsiasi operazione che farete verrà registrata dall’MSIX Packaging Tool. Se l’applicazione prevede componenti aggiuntivi o prerequisiti, installate tutto ciò che viene richiesto per la sua corretta esecuzione.
Figura 13: Avvio dell’installazione dell’applicazione da trasformare in package
NOTA: Ricordatevi di disabilitare gli aggiornamenti automatici dell’applicazione, perché gli MSIX app attach containers sono in sola lettura.
Avviate l’applicazione per verificare che tutto sia stato installato correttamente.
Figura 14: Esecuzione dell’applicazione ed eventuali personalizzazioni
Dopo aver completato l’installazione e la personalizzazione dell’applicazione è possibile chiuderla e proseguire con il wizard di creazione del nuovo package. Fate click su Next per proseguire.
Figura 15: Installazione dell’applicazione completata
L’MSIX Packaging Tool mostrerà tutte le applicazioni e gli entry point che è riuscito a catturare durante l’installazione. In questo caso viene mostrata l’applicazione in maniera corretta . Fate click su Next per continuare.
Figura 16: applicazioni registrate dall’MSIX Packaging Tool
Un prompt vi chiederà conferma dell’ avvenuta installazione e configurazione di tutte le applicazioni. Fate click su Yes, Move on.
NOTA: Se volete inserire nello stesso pacchetto MSIX altre applicazioni oppure un plug-in, cliccate su No, I’m not done e procedete con il wizard per l’installazione dei componenti aggiuntivi.
Figura 17: Prompt di conferma prima di proseguire con il wizard
Nella schermata successiva verranno mostrati eventuali servizi che sono stati installati dall’ applicazione. La possibilità di creare pacchetti di servizi in MSIX è stata introdotta in Windows 10 Client 2004 (10.0.19041.0). In questo caso non sono stati installati servizi. Fate click su Next per continuare.
Figura 18: Eventuali servizi installati dall’applicazione
Scegliete quindi la cartella di installazione e il nome del file .MSIX che volete creare. Fate click su Create per la creazione del package.
Figura 19: Scelta del percorso di installazione e del nome del file .MSIX
Dopo pochi secondi, il pacchetto sarà stato creato ed un messaggio vi avviserà dell’ avvenuta creazione.
Figura 20: Creazione del package completata con successo
Figura 21: File .MSIX creato dal Packaging Tool
Distribuzione del certificato self-signed
Poiché per firmare digitalmente il nostro pacchetto MSIX abbiamo utilizzato un certificato self-signed sarà prima necessario distribuire il certificato sulle nostre macchine client. Per farlo potete servirvi di una Group Policy, mettendo la chiave pubblica del certificato nel repository Trusted People delle macchine Session Host. Nelle figure sotto sono mostrati i diversi passaggi:
Figura 22: Distribuzione del certificato self-signed utilizzato per firmate il pacchetto MSIX utilizzando una GPO
Figura 23: Il certificato deve essere messo nel repository Trusted People
Se utilizzate Microsoft Intune, il certificato può essere distribuito tramite Profilo di configurazione, come mostrato alla pagina Create trusted certificate profiles in Microsoft Intune | Microsoft Learn
0
Figura 24: Creazione di un profilo di configurazione di Microsoft Intune per la distribuzione del certificato digitale utilizzato per la firma del pacchetto MSIX
Figura 25: Store di destinazione del certificato digitale
Ottenere file MSIX direttamente dal sito del produttore
Per ottenere file MSIX direttamente dal sito del produttore, iniziate identificando il sito web ufficiale dell’applicazione o del software che desiderate scaricare in formato MSIX. Navigate nella sezione download del sito, dove la maggior parte dei produttori fornisce i link per i loro prodotti. Una volta lì, cercate specificamente l’opzione per il formato MSIX, spesso elencato insieme ad altri formati di pacchetti come MSI o EXE. Cliccate sul link per scaricare il file MSIX, assicurandovi di accettare i termini e le condizioni del produttore se richiesto.
Ad esempio, se volete scaricare Microsoft Edge in formato MSIX, visitate il sito web ufficiale di Microsoft Edge, navigate nella sezione di download e cercate l’opzione per scaricare il pacchetto in formato MSIX. Scaricate il file MSIX e seguite le istruzioni fornite dal produttore per l’installazione.
Notate che non tutti i produttori offrono il loro software in formato MSIX direttamente dal loro sito web. In tali casi, potreste dover utilizzare strumenti come il Microsoft Store o altri repository di software affidabili.
Non sempre è facile reperire i link per il download dei file MSIX dai siti dei diversi produttori e per questo motivo ci viene incontro un modulo PowerShell chiamato Evergreen
https://www.powershellgallery.com/packages/Evergreen.
Il modulo Evergreen per PowerShell è uno strumento potente che semplifica il processo di gestione e aggiornamento del software. Evergreen permette di ottenere le versioni più recenti di vari software direttamente dai siti dei produttori, rendendo obsoleta la necessità di cercare manualmente aggiornamenti.
Una delle funzionalità principali di Evergreen è la capacità di restituire gli URL di download per le versioni più recenti dei software. Questo rende possibile l’automazione del processo di scaricamento e installazione delle applicazioni, integrandosi facilmente in script e flussi di lavoro PowerShell. Evergreen si distingue per la sua affidabilità, utilizzando API ufficiali e metodi di aggiornamento simili a quelli delle applicazioni stesse. Questo garantisce che le informazioni e i file scaricati siano sempre aggiornati e sicuri.
Inoltre, Evergreen fornisce una soluzione centralizzata per la gestione delle applicazioni, semplificando la vita degli amministratori IT. Ad esempio, può essere utilizzato per creare build di immagini di sistema sempre aggiornate o per mantenere aggiornati i software in ambienti gestiti tramite strumenti come Microsoft
Figura 26: Modulo PowerShell Evergreen nella PowerShell gallery
L’utilizzo di questo modulo PowerShell è davvero facile e l’obiettivo è quello di recuparare gli URL per il download dei file di installazione dei diversi programmi, compresi i file MSIX.
Io ho deciso di procurarmi il file MSIX di Mozilla Firefox e i comandi PowerShell che ho utilizzato sono:
1 2 3 4 5 6 7 8 |
#Installazione del modulo Install-Module -Name Evergreen #Ricerca del pacchetto applicativo Find-EvergreenApp firefox #Recupero delle informazioni per il download dei pacchetti applicativi Find-EvergreenApp firefox | Get-EvergreenApp |
Figura 27: Installazione del modulo PowerShell Evergreen e ricerca degli URL per il download di Mozilla Firefox
Recuperate la versione di Mozilla Firefox che vi interessa, il tipo di architettura ed il tipo di file. A me interessa scaricare il file MSIX di Mozilla Firefox e l’URL è https://download-installer.cdn.mozilla.net/pub/firefox/releases/127.0.2/win64/multi/Firefox%20Setup%20127.0.2.msix, come si può vedere dalla figura sotto:
Figura 28: Recupero dell’URL per scaricare il file MSIX di Mozilla Firefox
Figura 29: Pacchetto MSIX di Mozilla Firefox scaricato
Visto? Semplicissimo! Abbiamo l’MSIX creato direttamente dal produttore, non abbiamo problemi per la gestione dei certificati di firma del pacchetto e abbiamo risparmiato tantissimo tempo!
Come si aggiornano i file MSIX?
Per aggiornare un’applicazione distribuita tramite un pacchetto MSIX esistono diverse modalità:
- Aggiornamento automatico tramite server di aggiornamento:
Se il pacchetto MSIX è configurato con un server di aggiornamento (tramite un file AppInstaller), gli aggiornamenti possono essere gestiti automaticamente. Questo metodo è comunemente utilizzato per app distribuite tramite web o reti aziendali.
- Nel file AppInstaller (che accompagna il pacchetto MSIX), viene specificato l’URL da cui l’applicazione controlla gli aggiornamenti.
- Quando un nuovo pacchetto è disponibile, l’applicazione rileva automaticamente l’aggiornamento e lo scarica.
- Il file AppInstaller può essere configurato per eseguire controlli periodici o durante l’avvio dell’applicazione.
- Aggiornamento manuale:
Se l’app non è configurata per gestire aggiornamenti automatici, l’utente può aggiornare manualmente installando una nuova versione del pacchetto MSIX sopra quella esistente.
- Scaricate la nuova versione del pacchetto MSIX.
- Eseguite il file MSIX aggiornato e il sistema Windows rileverà che è presente una versione più recente e offrirà l’opzione di aggiornamento.
- Confermate l’installazione e Windows aggiornerà l’app senza perdere le impostazioni o i dati esistenti.
Conclusioni
MSIX rappresenta un’innovazione significativa nel mondo della distribuzione delle applicazioni su Windows. Unisce le migliori caratteristiche dei formati di pacchetto esistenti come MSI e AppX, offrendo al contempo nuove funzionalità che semplificano e migliorano l’esperienza di installazione, aggiornamento e gestione delle applicazioni. La sua capacità di garantire installazioni pulite e sicure, di supportare aggiornamenti differenziali e di sfruttare la containerizzazione per isolare le applicazioni rende MSIX una scelta eccellente per sviluppatori e amministratori di sistema.
Con il supporto per la firma digitale e la compressione efficiente dei pacchetti, MSIX non solo aumenta la sicurezza ma anche l’efficienza nella distribuzione delle applicazioni. La compatibilità con gli strumenti di gestione centralizzata come Microsoft Intune e la sua estensibilità a diverse piattaforme assicurano che MSIX possa adattarsi alle esigenze di una vasta gamma di utenti e ambienti.
Adottare MSIX significa abbracciare una tecnologia moderna e avanzata che può semplificare notevolmente la gestione delle applicazioni, riducendo i conflitti e migliorando la stabilità del sistema. Per chi cerca una soluzione affidabile e versatile per la distribuzione delle applicazioni su Windows, MSIX rappresenta la scelta ideale.