¿Cómo automatizo las instalaciones de un MSI?


11

Tengo alrededor de 20 aplicaciones que deben ejecutarse en un orden específico. Quiero escribirlos para poder hacer esto de forma remota.

Cada una de las aplicaciones tiene un Setup.exe y un MSI.

Esperaba tener un script simple que llamara a los MSI con un archivo de respuesta, pero han pasado años desde que lo hice. Sin embargo, no recuerdo cómo crear un archivo de respuesta.

¿Es esta una buena manera de hacerlo? ¿O habría una manera más simple?

Respuestas:


17

Hable acerca de una pregunta cargada ...

Para empezar, ignore el archivo setup.exe. Lo más probable es que simplemente llame al MSI. O a veces extraen un montón de cosas que ENTONCES llaman al MSI, por lo general puede ver su directorio temporal cuando ejecuta la configuración y tener una idea de lo que está haciendo.

Siempre hice trampa e hice una ejecución en seco de la instalación ( msiexec /i path/to-install.msi /l*v /qn) con el registro activado, luego revisé el registro y seleccioné las propiedades que quería establecer y las configuré a través de la línea de comando. Los archivos de respuesta nunca funcionaron, o no valía la pena pasar por el proceso para crearlos.

Luego encontré InstEdit y lo usé en un bote cargado. Le permitirá editar las propiedades de un MSI y generar una Transformación que luego puede pasar como argumento en su secuencia de comandos: msiexec /i path/to/installer.msi /t path/to/transform.mst Recomiendo darle una oportunidad primero, hay una versión gratuita que hace casi todo.

También puede echar un vistazo aquí para ver todos los interruptores que msiexectiene.


+1 pero desafortunadamente los conmutadores no parecen funcionar con todos los MSI. No he investigado por qué, pero definitivamente es el caso con algunos.
Ciaran

Depende de cómo se creó el MSI. Hay algunas propiedades que puede configurar para ignorar ciertos parámetros, IIRC. Por lo general, usar Instedit y construir una transformación siempre funcionó, los únicos errores que encontré fueron generalmente humanos.
peelman

1
+1 para InstEdit
user66001

1
El método de registro funcionó para mí. Sin embargo, es importante tener en cuenta que las propiedades se enumerarán comoProperty(S) : PROPERTY_NAME...
Drew Chapin

5

Msiexec es la herramienta que necesitas. Tiene un parámetro -q para permitirle instalar cosas "silenciosas":

/ qn: no muestra ninguna interfaz de usuario.

/ qb: muestra una interfaz de usuario básica.

/ qr: muestra una interfaz de usuario reducida con un cuadro de diálogo modal que se muestra al final de la instalación.

/ qf: muestra la interfaz de usuario completa con un cuadro de diálogo modal que se muestra al final.

/ qn +: no muestra ninguna interfaz de usuario, excepto un cuadro de diálogo modal que se muestra al final.

/ qb +: muestra una interfaz de usuario básica con un cuadro de diálogo modal que se muestra al final.

/ qb-: muestra una interfaz de usuario básica sin cuadros de diálogo modales.

También puede proporcionar opciones con nombre (o "propiedades") al final de la línea de comando; qué propiedades son compatibles depende del paquete. Por ejemplo, este comando:

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

... es cómo instalar ActiveState Perl, indicando al paquete MSI que agregue Perl.exe a su RUTA y que asocie archivos .pl con él. ( fuente )


1
Tenga en cuenta que un desarrollador puede elegir deshabilitar la opción / q en su instalador msi.
Joel Coehoorn

2

La mayoría de las aplicaciones se pueden instalar de forma silenciosa y, por lo tanto, con secuencias de comandos. Cada Setup.exe puede tener varios conmutadores potenciales, por lo que es imprescindible llamar al proveedor o buscar en su sitio web. A veces puede obtener la información iniciando la configuración con un modificador /? / H / help. Los archivos MSI también pueden tener cualquier cantidad de conmutadores, pero este artículo Los parámetros de la línea de comandos MSI proporcionan una lista.

Cuando crea un script para el proceso, puede encontrarse con una aplicación que se instala con setup.exe y luego inicia otro archivo como un MSI. Un ejemplo fue MS Office XP. Cuando esto ocurre, su secuencia de comandos puede pensar que el archivo que inició está completo e iniciar la siguiente configuración que falla y hace que todo se vaya al sur. Para evitar esto, intente pasar por alto el archivo de configuración y vaya directamente al instalador real (potencialmente un MSI) con opciones de línea de comandos. Si eso no es posible, es posible que deba crear algún tipo de pausa de temporizador. Solía ​​usar una pequeña utilidad llamada wait.exe que encontré en Internet, pero hay un millón de formas de hacerlo. Sin embargo, la clave de las secuencias de comandos es poder identificar que una aplicación se instaló correctamente para que pueda comenzar la próxima instalación.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.