¿Cómo extraigo archivos de un paquete MSI?


190

Tenemos algunos parches antiguos de los que queremos obtener los archivos, pero no deseamos perder el tiempo instalándolos en una máquina.

¿Alguien puede recomendar una forma de extraer archivos de un paquete de instalación de MSI?


¿Puede proporcionar más información sobre qué paquete de instalación MSI exacto desea extraer, los detalles de su sistema operativo, etc.
Firee

Respuestas:


212

Primero, acceda a un símbolo del sistema elevado, para hacer esto:

  1. Haz clic en el botón Inicio.

  2. Haz clic en Todos los programas.

  3. Ir a accesorios.

  4. Haga clic derecho en Símbolo del sistema.

  5. Seleccione Ejecutar como administrador.

  6. Cuando aparezca el mensaje UAC, haga clic en Continuar.

Una vez que tenga su símbolo del sistema elevado, ingrese lo siguiente:

msiexec /a drive:\filepath\to\MSI\file /qb TARGETDIR=drive:\filepath\to\target\folder

utilizando las ubicaciones deseadas para completar las rutas de archivos mencionadas anteriormente. Ejemplo:

msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test

55
otro Google rápido apareció esto: legroom.net/software/uniextract . Preferiría usar las funciones integradas, pero parece una utilidad aceptable.

55
Por lo que yo entiendo (de msiexec /?), Este comando realmente instalará el programa en esa ubicación; No creo que esto sea lo que el solicitante original tenía en mente.

8
@ user6738 He probado esto y no instala el software. El software no se encuentra en la aplicación ni puede desinstalarse a través del msi e informa que no está instalado. Realmente extrae los archivos de mi prueba.
Adam Caviness

17
Ejecuté esto en una computadora Win8.1 bloqueada (computadora portátil de trabajo) y debe tenerse en cuenta que los derechos de administrador NO son necesarios para extraer .msiarchivos.
MattDMo

55
¡Gran respuesta! Puse esto en un extractMSI.cmdarchivo: msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pausey lo agregué a las opciones "Abrir con ..." del archivo msi
Tobias Kienzler

75

Usa 7Zip .
Descomprimirá MSI, CAB, algunos EXE y muchos más paquetes para usted. No hay necesidad de privilegios de administrador para ejecutar esto tampoco.

-EDITAR-

Y es de código abierto, por lo que no hay mensajes persistentes que te pidan que compres las cosas


13
y después de probarlo, msiexec hace un mejor trabajo (preservar los directorios, nombrar archivos correctamente, etc.)
Michael Schubert

Esto no pareció funcionar para mí en win7 x64 con 32-bit 7-Zip. ¿Hay alguna forma particular (no arrastrar y soltar) que tiene que decirle para abrir el archivo?
ebyrob

Debe haber una opción de 7zip en el menú contextual cuando hace clic con el botón derecho en el archivo; le dará la opción de extraer los archivos
Shekhar

77
Veo muchas cosas con un signo de exclamación al frente en lugar de archivos reales. Supongo que algo ha cambiado o tengo un archivo msi extraño. Intenté 7-Zip 9.20.
mlt

@MichaelSchubert: depende. Si está ejecutando una máquina que no es Windows, 7Zip es una buena opción ya que la versión de línea de comandos también está disponible para otros sistemas. Depende del caso de uso que diría.
Según Lundberg

46

También hay lessmsi, que es completamente gratuito y de código abierto.

No hay anuncios ni mensajes molestos, conservará la estructura del directorio y los nombres de los archivos correctamente, tiene una interfaz de línea de comandos sofisticada , así como una interfaz gráfica de usuario que permite navegar a través de los archivos, así como ver tablas internas de MSI y otros atributos de MSI.


77
¡Gracias! Éste me ayudó a extraer de un MSI que no sería extraer con decir el comando msiexec "admin instalar no es compatible" para <nombre del paquete de instalación>
axk

1
esto ayudó ... msiexec no extrajo por alguna razón ..
Abdul Hameed

23

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

MSI o Windows Installer tienen soporte incorporado para esto : la extracción de archivos de un archivo MSI. Esto se llama una 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 garantiza que los archivos de origen estén siempre disponibles para cualquier operación de reparación.

Tenga en cuenta que ejecutar una instalación de administrador en lugar de usar una herramienta zip para extraer los archivos es muy diferente. Este último no ajustará el diseño de medios de la tabla de medios para que el paquete esté configurado para usar archivos de origen externos, que es la forma correcta. Siempre prefiera ejecutar la instalación de administrador real sobre cualquier extracción 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 Storing (sin comprimir). Todo esto se maneja correctamente haciendo una instalación de administrador.


Las instalaciones administrativas tienen muchos usos

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

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

  • Extrayendo e inspeccionando los archivos del instalador
  • Implementación a través del software de administración de sistemas, por ejemplo, SCCM (evita archivos MSI enormes y en caché en C: \ Windows \ Installer ya que los archivos se extraen de las cabinas internas)
  • Reenvasado de aplicaciones corporativas
  • Operaciones de reparación, modificación y auto reparación.
  • Parches y actualizaciones
  • Anuncio de MSI (la función " ejecutar desde la fuente ")
  • Una serie de otros detalles más pequeños

Lea la publicación de stackoverflow vinculada anteriormente para obtener más detalles. Es un concepto bastante importante para los administradores del sistema , los empaquetadores de aplicaciones , los desarrolladores de configuraciones , los administradores de versiones e incluso el usuario promedio para ver lo que están instalando, etc.


Instalación administrativa, procedimientos prácticos

Puede realizar una instalación administrativa de diferentes maneras, dependiendo de cómo se entregue el instalador. Esencialmente se entrega como un archivo MSI o se envuelve 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 comandos interactivas:

  • Archivos MSI :

    msiexec /a File.msi
    

    eso es ejecutar con GUI, también puedes hacerlo en silencio:

    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 heredado (no MSI) o el temido tipo de archivo Installscript MSI , un conocido tipo de proyecto Bugshit Installshield con formato híbrido MSI que no cumple con los estándares. Es esencialmente un MSI con una GUI personalizada y más avanzada, pero también está llena de errores.

Para los archivos setup.exe legado del / a no hará nada, pero se puede probar el / extract_all: interruptor [vía] 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 la línea de comandos de Installshield setup.exe .

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

Finalmente, si no funciona de otra manera, puede obtener los archivos de configuración extraídos limpiando la carpeta temporal de su sistema, inicie el archivo setup.exe de forma interactiva 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 montón de archivos a una carpeta temporal. A veces los archivos son simples, otras veces en formato CAB, pero Winzip, 7Zip o incluso Universal Extractor (no han probado este producto) pueden abrirlos.


También vea esta respuesta: superuser.com/questions/307678/...
Stein Åsmul

La misma publicación en stackoverflow: stackoverflow.com/a/24987512/129130 (debería eliminar uno, pero ambos están votados y se fusionaron recientemente).
Stein Åsmul

8

Recomendaría UniExtract para facilitar aún más la solución de neoice. Hace lo mismo, simplemente está más automatizado y permite varios métodos para extraer archivos MSI, no solo una instalación administrativa (como está usando su solución).

UniExtract también puede manejar exe's empaquetados con WISE o InstallShield, así como una variedad de otros formatos comprimidos. Ah, y es gratis.

Universal Extractor es un programa que hace exactamente lo que dice: extraer archivos de cualquier tipo de archivo, ya sea un simple archivo zip, un programa de instalación o incluso un paquete de Windows Installer (.msi).



1

puedes usar Orca, esta aplicación es parte de Platform SDK, pero también puedes descargarla desde aquí http://astebner.sts.winisp.net/Tools/Orca.zip


3
Orca es mejor para extraer metadatos como archivos, carpetas y tablas de registro. Generalmente no es muy útil para extraer los archivos reales (completamente inútil si los archivos no están almacenados en la tabla binaria).
Synetech

1

lessmsies realmente la mejor opción aquí, ya que le ofrece elegir exactamente qué archivos extraer y dónde deben ir. Además, se puede instalar fácilmente utilizando el apt-getmarco para Windows, llamado Choclatey. El lessmsisitio web anterior se ha movido y también se puede encontrar / descargar en GitHub . Además, puede encontrar muchas otras herramientas e información relacionada con MSI AQUÍ. : (Lo siento, ¡no puedo publicar más de 2 enlaces!)


1

Agregue PeaZip a la lista. Trabajó como un campeón


Lea Cómo recomiendo el software para obtener algunos consejos sobre cómo debe recomendar el software. Como mínimo, debe proporcionar algo más que un enlace, por ejemplo, información adicional sobre el software en sí, por ejemplo, cómo se puede utilizar para resolver el problema en la pregunta.
DavidPostill




0

Las configuraciones de Installshield .exe (como las llama) vienen en muchos sabores, y generalmente es posible extraer archivos de ellas.

Un Installshield setup.exe puede contener instaladores antiguos no antiguos de msi o nuevos instaladores de msi.

Si setup.exe está envolviendo una configuración de MSI, puede especificar setup.exe / a y se ejecutará la instalación de administración de MSI, lo que le permite especificar y la ubicación de salida de los archivos.

Si setup.exe es una instalación heredada de Installshield, puede o no admitir la extracción de archivos a través del modificador / extract_all: [ruta] . Consulte aquí (actualizado en julio de 2011, el enlace de Acresso ya no era válido, actualizado nuevamente en febrero de 2014, apuntando a itninja ahora).

También tenga en cuenta que otra forma de obtener estos archivos es limpiar la carpeta temporal de su sistema, iniciar el archivo setup.exe de forma interactiva y luego esperar a que aparezca el primer cuadro de diálogo. En la mayoría de los casos, el instalador habrá extraído un montón de archivos a una carpeta temporal. A veces los archivos son simples, otras veces en formato CAB, pero Winzip, 7Zip o incluso Universal Extractor (no han probado este producto) pueden abrirlos.


Mis requisitos para hacerlo ya han pasado, pero intentaré lo que sugieres en algún momento para ver si hubiera funcionado. Gracias por responder.
Martin
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.