tool switches parametros msi error windows-installer installation extract installshield exe

windows installer - switches - Extraiga MSI de EXE



msiexec uninstall (8)

Quiero extraer el MSI de una configuración EXE para publicar en una red.

Por ejemplo, usando Universal Extractor, pero no funciona para Java Runtime Environment.


¡No hay necesidad de usar ninguna herramienta! Podemos seguir de la manera más simple.

No sé qué herramienta creó su programa de instalación autoextraíble y, por lo tanto, tendré que proporcionar una respuesta general.

La mayoría de los programas de esta naturaleza extraen el archivo del paquete (.msi) en el directorio TEMP. Este comportamiento es el comportamiento predeterminado de InstallShield Developer.

Sin información adicional, recomendaría que simplemente inicie la configuración y una vez que se muestre el primer diálogo MSI, puede examinar su directorio TEMP para un subdirectorio o archivo MSI recién creado. Antes de cancelar / detener un instalador simplemente copie ese archivo MSI de la carpeta TEMP. Después de eso, puede cancelar la instalación.


Comenzando con el parámetro:

setup.exe /A

pregunta por guardar los archivos incluidos (incluido MSI ).

Esto puede depender del software que creó setup.exe .


Inicie el instalador, pero no presione el botón Instalar> . Entonces

cd "%AppData%/../LocalLow/Sun/Java"

y encuentre su archivo MSI en uno de los subdirectorios (por ejemplo, jre1.7.0_25 ).

Tenga en cuenta que Data1.cab de ese subdirectorio también será necesario.


La única forma de hacerlo es ejecutar el exe y recopilar el MSI. Lo que debes cuidar es que si estás transformando el MSI usando MST, podrían perderse.

Yo uso esta línea de comando por lotes:

SET TMP=c:/msipath MD "%TMP%" SET TEMP=%TMP% start /d "c:/install" install.exe /L1033 PING 1.1.1.1 -n 1 -w 10000 >NUL for /R "%TMP%" %%f in (*.msi) do copy "%%f" "%TMP%" taskkill /F /IM msiexec.exe /T


Para los proyectos basados ​​en InstallShield MSI, he encontrado que lo siguiente funciona:

setup.exe /s /x /b"C:/FolderInWhichMSIWillBeExtracted" /v"/qn"

Este comando conducirá a una MSI extraída en un directorio que puede especificar libremente y una desinstalación silenciosamente fallida del producto.

La línea de comandos básicamente le dice a setup.exe que intente desinstalar el producto (/ x) y lo haga en silencio (/ s). Mientras lo hace, debería extraer el MSI a una ubicación específica (/ b).

El comando / v pasa argumentos a Windows Installer, en este caso, el argumento / qn. El argumento / qn desactiva cualquier salida de GUI del instalador.


Supongo que esta pregunta fue principalmente sobre InstallShield dadas las etiquetas, pero en caso de que alguien venga aquí con el mismo problema para los paquetes basados ​​en WiX (y posiblemente otros), simplemente llame al instalador con / extract, así:

C:/> installer.exe /extract

Eso colocará el MSI en la carpeta junto con el instalador.


7-Zip debería hacer el truco.

Con él, puede extraer todos los archivos dentro del EXE (por lo tanto, también un archivo MSI).

Aunque puede hacerlo con 7-Zip, la mejor forma es la instalación administrativa como lo señala Stein Åsmul .


Solo una exención de responsabilidad : un archivo setup.exe puede contener un MSI incrustado, puede ser un instalador de estilo heredado (no MSI) o puede ser simplemente un ejecutable regular sin medios de extracción en absoluto. La "discusión" a continuación presenta primero el uso de imágenes administrativas para archivos MSI y cómo extraer archivos MSI de archivos setup.exe. A continuación, proporciona algunos enlaces para manejar otros tipos de archivos setup.exe. Ver también la sección de comentarios.

ACTUALIZACIÓN : algunas secciones ahora se han agregado directamente debajo, antes de la descripción del archivo MSI extraer usando la instalación administrativa. Lo más significativo es una propaganda sobre la extracción de paquetes WiX setup.exe (nuevo niño en el bloque). Recuerde que un "último recurso" para encontrar los archivos de configuración extraídos es iniciar el instalador y luego buscar los archivos extraídos en la carpeta temporal (mantenga presionada la tecla Windows , toque R , escriba %temp% o %tmp% y presione Entrar ) - pruebe primero las otras opciones, por razones de confiabilidad.

Disculpas por el "desorden generalizado" con todo este pesado entrelazamiento. Creo que encontrarás lo que necesitas si caves lo suficiente en los enlaces, pero el contenido debería ser realmente limpiado y organizado mejor.

Enlaces generales:

Extraer contenido:

Enlaces de proveedores:

Kit de herramientas WiX y Burn Bundles (archivos setup.exe)

Nota técnica : El kit de herramientas WiX ahora ofrece archivos setup.exe creados con la herramienta de arranque Burn que necesita el decompilador dark.exe del toolkit para extraer. Burn se utiliza para crear archivos setup.exe que pueden instalar varios MSI o ejecutables incrustados en una secuencia especificada. Aquí hay un comando de extracción de muestra:

dark.exe -x outputfolder MySetup.exe

Para poder ejecutar dicha extracción, se requieren algunos pasos previos:

  1. Descargue e instale el kit de herramientas de WiX (enlace a una respuesta anterior con información de contexto adicional en WiX, así como el enlace de descarga).
  2. Después de instalar WiX, simplemente abra un command prompt , CD en la carpeta donde reside setup.exe . Luego, especifique el comando anterior y presione Entrar
  3. La carpeta de salida contendrá un par de subcarpetas que contienen ambos archivos extraídos de MSI y EXE y manifiestos y el archivo de recursos para la GUI de Burn (si existió alguna en el archivo setup.exe en el primer lugar del curso).
  4. Ahora puede, a su vez, extraer el contenido de los archivos MSI extraídos (o archivos EXE). Para una MSI eso significaría ejecutar una instalación administrativa, como se describe a continuación.

Hay soporte integrado de MSI para la extracción de archivos (instalación de administrador)

MSI o Windows Installer tienen soporte integrado para esto : la extracción de archivos de un archivo MSI. Esto se llama instalación administrativa . Básicamente, está pensado como una forma de crear un punto de instalación de red desde el cual la instalación se puede ejecutar en muchas computadoras de destino. Esto asegura que los archivos fuente estén siempre disponibles para cualquier operación de reparación.

Tenga en cuenta que ejecutar una instalación de administrador versus usar una herramienta de compresión para extraer los archivos es muy diferente. Este último no ajustará el diseño de medios de la tabla de medios de modo que el paquete esté configurado para usar archivos fuente externos, que es la forma correcta. Siempre prefiero ejecutar la instalación de administrador real sobre cualquier extracción de zip hacky. En cuanto a la compresión, en realidad hay tres algoritmos de compresión diferentes utilizados para los archivos cab dentro del formato de archivo MSI: MSZip, LZX y almacenamiento (sin comprimir). Todos estos se manejan correctamente haciendo una instalación de administrador.

Importante : Windows Installer almacena en caché los archivos MSI instalados en el sistema para repararlos, modificarlos y desinstalarlos. A partir de Windows 7 (MSI versión 5), los archivos MSI se almacenan en caché a tamaño completo para evitar romper la firma del archivo que impide el aviso de UAC al iniciarse la instalación (un problema conocido de Vista). Esto puede causar un gran aumento en el consumo de espacio en disco (varios gigabytes en algunos sistemas). Para evitar el almacenamiento en caché de un gran archivo MSI, debe ejecutar una instalación de administrador del paquete antes de la instalación. Así es como una empresa con una implementación adecuada en una red administrada podría hacer cosas, y quitará los archivos de la cabina y creará un punto de instalación de red con un pequeño archivo MSI y archivos además.

Las instalaciones de administrador tienen muchos usos

Se recomienda leer más acerca de las instalaciones administrativas, ya que es un concepto útil, y he escrito una publicación en : ¿Cuál es el propósito de la instalación administrativa iniciada con msiexec / a? .

En esencia, la instalación del administrador es importante para:

  • Extrayendo e inspeccionando los archivos del instalador
    • Para tener una idea de lo que realmente se está instalando y dónde
    • Para garantizar que los archivos se vean confiables y confiables (sin virus; sin embargo, el malware y los virus aún pueden ocultarse dentro del archivo MSI)
  • Despliegue a través de software de gestión de sistemas (por ejemplo, SCCM )
  • Reempaquetado de aplicaciones corporativas
  • Operaciones de reparación, modificación y auto reparación
  • Parches y actualizaciones
  • Anuncio de MSI (entre otros detalles, se trata de la función " ejecutar desde la fuente " en la que puede ejecutar directamente desde un recurso compartido de red y solo instala atajos y datos de registro)
  • Una serie de otros detalles más pequeños

Lea la publicación vinculada anteriormente para obtener más detalles. Es un concepto bastante importante para los administradores de sistemas , los empaquetadores de aplicaciones , los desarrolladores de configuración , los administradores de versiones e incluso para los usuarios promedio, ver qué están instalando, etc.

Admin-install, práctica cómo hacerlo

Puede realizar una instalación de administrador de varias maneras dependiendo de cómo se entregue el instalador. Esencialmente se entrega como un archivo MSI o envuelto en un archivo setup.exe .

Ejecute estos comandos desde un símbolo del sistema elevado y siga las instrucciones en la GUI para las líneas de comando interactivas:

  • Archivos MSI :

    msiexec /a File.msi

    eso es para ejecutar con GUI, también puedes hacerlo silenciosamente:

    msiexec /a File.msi TARGETDIR=C:/MyInstallPoint /qn

  • archivos setup.exe :

    setup.exe /a

Un archivo setup.exe también puede ser una configuración de estilo heredada (que no es MSI) o el temido tipo de archivo Installscript MSI , un tipo de proyecto Installshield buggy bien conocido con formato MSI híbrido no compatible con los estándares. Es esencialmente una MSI con una GUI personalizada y más avanzada, pero también está llena de errores.

Para archivos legacy setup.exe, / a no hará nada, pero puede probar el modificador / extract_all: [ruta] como se explica en este pdf . Es una buena referencia para la instalación silenciosa y otras cosas también. Otro recurso es esta lista de parámetros de línea de comandos de Installshield setup.exe .

Los archivos de parche de MSI (* .MSP) se pueden aplicar a una imagen de administrador para extraer sus archivos correctamente. 7Zip también podrá extraer los archivos, pero no estarán formateados correctamente.

Finalmente, el último recurso , si no funciona de otra manera, puede obtener los archivos de configuración extraídos limpiando la carpeta temporal de su sistema, ejecute setup.exe interactivamente y luego espere a que aparezca el primer cuadro de diálogo. En la mayoría de los casos, el instalador habrá extraído un grupo de archivos en una carpeta temporal . A veces los archivos son simples, otras veces en formato CAB, pero Winzip, 7Zip o incluso Universal Extractor (no se ha probado este producto) pueden ser capaces de abrirlos.