Aggiungi il comando del menu contestuale Estrai ai file MSI
Quando disponi di un pacchetto MSI, potresti essere interessato a estrarne il contenuto senza installare l'app. Questo può essere fatto rapidamente senza utilizzare strumenti di terze parti. Windows è già dotato di tutto il necessario per il funzionamento. In questo articolo vedremo come aggiungere un utile comando "Estrai" al menu contestuale del file MSI.
Windows gestisce i pacchetti MSI tramite l'app msiexec, che fa parte di Windows Installer. È uno strumento integrato che supporta una serie di opzioni della riga di comando. Puoi conoscerli eseguendo il seguente comando.
- premere Vincita + R tasti di scelta rapida sulla tastiera per aprire la finestra di dialogo Esegui.
- Digita quanto segue nella casella Esegui:
msiexec /?
- Windows Installer visualizzerà il contenuto della guida in una finestra:
Supporta i seguenti switch:
Opzioni di installazione
Installa o configura un prodotto
/a Installazione amministrativa: installa un prodotto sulla rete
/J [/t] [/g]
Pubblicizza un prodotto - m a tutti gli utenti, u all'utente corrente
Disinstalla il prodotto
Opzioni di visualizzazione
/quiet
Modalità silenziosa, nessuna interazione con l'utente
/passive
Modalità non presidiata - solo barra di avanzamento
/q[n|b|r|f]
Imposta il livello dell'interfaccia utente
n - Nessuna interfaccia utente
b - Interfaccia utente di base
r - Interfaccia utente ridotta
f - Interfaccia utente completa (impostazione predefinita)
/help
Informazioni di aiuto
Opzioni di riavvio
/norestart
Non riavviare al termine dell'installazione
/promptrestart
Richiede all'utente di riavviare se necessario
/forcerestart
Riavvia sempre il computer dopo l'installazione
Opzioni di registrazione
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*]
i - Messaggi di stato
w - Avvisi non fatali
e - Tutti i messaggi di errore
a - Avvio di azioni
r - Record specifici dell'azione
u - Richieste dell'utente
c - Parametri iniziali dell'interfaccia utente
m - Informazioni sull'uscita in memoria o sull'uscita fatale
o - Messaggi di spazio su disco
p - Proprietà del terminale
v - Output dettagliato
x - Informazioni di debug aggiuntive
+ - Aggiungi al file di registro esistente
! - Scarica ogni riga nel registro
* - Registra tutte le informazioni, ad eccezione delle opzioni ve x
/log
Equivalente di /l*
Opzioni di aggiornamento
/update [;Update2.msp]
Si applica l'aggiornamento/i
/uninstall [;Update2.msp] /package Rimuove gli aggiornamenti per un prodotto
Opzioni di riparazione
/f[p|e|c|m|s|o|d|a|u|v] Ripara un prodotto
p - solo se manca il file
o - se il file è mancante o è installata una versione precedente (impostazione predefinita)
e - se il file è mancante o è installata una versione uguale o precedente
d - se il file è mancante o è installata una versione diversa
c - se il file è mancante o il checksum non corrisponde al valore calcolato
a - forza la reinstallazione di tutti i file
u - tutte le voci di registro richieste specifiche dell'utente (impostazione predefinita)
m - tutte le voci di registro richieste specifiche del computer (impostazione predefinita)
s - tutte le scorciatoie esistenti (impostazione predefinita)
v - viene eseguito dal codice sorgente e memorizza nuovamente il pacchetto locale
Impostazione delle proprietà pubbliche
[PROPRIETA'=ValoreProprietà]
L'opzione che riguarda questa situazione è /a. Sebbene sia descritto come "Installazione amministrativa - Installa un prodotto sulla rete", può essere utilizzato per estrarre il contenuto di un singolo pacchetto MSI in singoli file più piccoli che possono essere serviti da a toppa. È possibile utilizzare il seguente comando:
msiexec /a "percorso\del\pacchetto.msi" /qb TARGETDIR="percorso\della\destinazione\cartella"
TARGETDIR è una proprietà comune per ogni pacchetto che specifica la cartella di destinazione per il contenuto del pacchetto MSI.
L'opzione "/qb" indica a Windows Installer di mostrare l'interfaccia di base durante il processo. Mostrerà una finestra di dialogo con il pulsante Annulla e la barra di avanzamento.
Ad esempio, posso utilizzare il seguente comando per decomprimere il programma di installazione MSI di FAR Manager:
msiexec /a "C:\Users\winaero\Downloads\Far30b4774.x64.20160902.msi" /qb TARGETDIR="C:\Users\winaero\Downloads\Far"
Se la cartella di destinazione non esiste, verrà creata automaticamente. Nel mio caso, verrà creata la sottocartella Far nella cartella Download.
Il comando sopra può essere inserito direttamente nella finestra di dialogo Esegui.
Aggiungi il comando del menu contestuale Estrai ai file MSI
- Aprire Editor del Registro di sistema.
- Vai alla seguente chiave di registro:
HKEY_CLASSES_ROOT\Msi. Pacchetto\shell
Consiglio: Come passare alla chiave di registro desiderata con un clic.
- Crea una nuova sottochiave qui e chiamala Estratto.
- Sotto la chiave Estrai, crea una nuova sottochiave e chiamala Comando:
- Imposta il valore predefinito di Comando sottochiave alla seguente stringa:
msiexec.exe /a "%1" /qb TARGETDIR="%1 Contenuto"
Guarda lo screenshot seguente:
Dopo aver fatto clic con il pulsante destro del mouse su un pacchetto MSI in Esplora file, troverai una nuova voce di menu contestuale "Estrai". Se lo esegui, creerà una nuova directory "package_name.msi Contents" nella cartella corrente ed estrarrà lì il contenuto del pacchetto. Guarda lo screenshot seguente:
Per farti risparmiare tempo, ho creato file di registro pronti per l'uso. Puoi scaricarli utilizzando il link sottostante.
Scarica i file di registro
Il file di annullamento è incluso.
Questo trucco funziona in Windows 10, Windows 8 e Windows 7.
Nota che alcuni pacchetti non supportano l'installazione amministrativa. Non possono essere estratti utilizzando questo metodo. Inoltre, quando si estrae un pacchetto MSI in questo modo, il suo punto di installazione amministrativa (la cartella in cui viene estratto) diventa utilizzabile. È possibile utilizzare una patch di Windows Installer (MSP) per aggiornarlo in modo che quando viene installato il pacchetto, venga applicata anche la patch.