Come automatizzare le installazioni di MSI?


11

Ho circa 20 applicazioni che devono essere eseguite in un ordine specifico. Voglio scriverli in modo da poterlo fare da remoto.

Ciascuna delle applicazioni ha un Setup.exe e un MSI.

Speravo solo di avere un semplice script che chiamasse MSIs con un file di risposte, ma sono passati anni da quando l'ho fatto. Tuttavia, non ricordo come creare un file di risposte.

È un buon modo per farlo? O ci sarebbe un modo più semplice?

Risposte:


17

Parla di una domanda caricata ...

Per cominciare, ignora setup.exe. Le probabilità sono solo chiamate MSI. O a volte estraggono un sacco di cose ALLORA chiama l'MSI, di solito puoi guardare la tua directory temporanea quando esegui l'installazione e hai un'idea di cosa sta facendo.

Ho sempre imbrogliato e fatto un giro a secco dell'installazione ( msiexec /i path/to-install.msi /l*v /qn) con la registrazione accesa, quindi ho controllato il registro e ho scelto le proprietà che volevo impostare e le ho impostate dalla riga di comando. I file di risposta non hanno mai funzionato, o non valeva la pena di passare attraverso il processo per realizzarli.

Poi ho trovato InstEdit e l' ho usato come un carico in barca. Ti consentirà di modificare le proprietà di un MSI e di generare una trasformazione che puoi quindi trasmettere come argomento nel tuo script: msiexec /i path/to/installer.msi /t path/to/transform.mst ti consiglio di provarlo prima, c'è una versione gratuita che fa praticamente tutto.

Puoi anche dare un'occhiata qui per tutti gli switch msiexec.


+1 ma sfortunatamente gli switch non sembrano funzionare con tutti gli MSI. Non ho studiato il perché, ma è sicuramente il caso di alcuni.
Ciaran,

Dipende da come è stato creato l'MSI. Ci sono alcune proprietà che puoi impostare per ignorare determinati parametri, IIRC. In genere, usando Instedit e costruendo una Transform funzionava sempre, gli unici errori che ho riscontrato erano generalmente umani.
peelman,

1
+1 per InstEdit
user66001

1
Il metodo di registro ha funzionato per me. È importante notare che le proprietà saranno elencate comeProperty(S) : PROPERTY_NAME...
Drew Chapin

5

Msiexec è lo strumento di cui hai bisogno. Ha un parametro -q per consentire l'installazione di elementi "silenziosi":

/ qn: non visualizza alcuna interfaccia utente.

/ qb: visualizza un'interfaccia utente di base.

/ qr: visualizza un'interfaccia utente ridotta con una finestra di dialogo modale visualizzata al termine dell'installazione.

/ qf: visualizza l'interfaccia utente completa con una finestra di dialogo modale visualizzata alla fine.

/ qn +: non visualizza alcuna interfaccia utente, ad eccezione di una finestra di dialogo modale visualizzata alla fine.

/ qb +: visualizza un'interfaccia utente di base con una finestra di dialogo modale visualizzata alla fine.

/ qb-: visualizza un'interfaccia utente di base senza finestre di dialogo modali.

È inoltre possibile fornire opzioni denominate (o "proprietà") alla fine della riga di comando; quali proprietà sono supportate dipende dal pacchetto. Ad esempio, questo comando:

msiexec /qb /l* perl-log.txt /i ActivePerl.msi PERL_PATH=Yes PERL_EXT=Yes

... è il modo in cui installi ActiveState Perl, indicando al pacchetto MSI di aggiungere Perl.exe al PATH e di associare i file .pl ad esso. ( fonte )


1
Si noti che uno sviluppatore può scegliere di disabilitare l'opzione / q nel proprio programma di installazione msi.
Joel Coehoorn,

2

La maggior parte delle applicazioni può essere installata in modo silenzioso e quindi tramite script. Ogni Setup.exe può avere un numero di potenziali switch, quindi è necessario chiamare il fornitore o cercare il proprio sito Web. A volte è possibile ottenere le informazioni avviando l'installazione con un interruttore / ?, / h / help. I file MSI possono anche avere un numero qualsiasi di opzioni, ma in questo articolo i parametri della riga di comando MSI forniscono un elenco.

Quando esegui lo scripting del processo, potresti imbatterti in un'app che si installa con setup.exe e quindi avvia un altro file come un MSI. Un esempio è stato MS Office XP. In questo caso, il tuo script potrebbe pensare che il file che hai avviato sia completo e avviare l'installazione successiva che non riesce, facendo sì che tutto vada a sud. Per ovviare a questo, prova a bypassare il file di installazione e vai direttamente al programma di installazione effettivo (potenzialmente un MSI) con le opzioni della riga di comando. Se ciò non è possibile, potrebbe essere necessario creare una sorta di pausa del timer. Ho usato una piccola utility chiamata wait.exe che ho trovato su Internet ma ci sono milioni di modi per farlo. La chiave per lo scripting è però quella di essere in grado di identificare che un'applicazione installata correttamente in modo che possa iniziare l'installazione successiva.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.