Agregar comando de menú contextual de extracción a archivos MSI
Cuando tenga un paquete MSI, es posible que le interese extraer su contenido sin instalar la aplicación. Esto se puede hacer rápidamente sin utilizar herramientas de terceros. Windows ya viene con todo lo necesario para la operación. En este artículo, veremos cómo agregar un comando útil "Extraer" al menú contextual del archivo MSI.
Anuncio publicitario
Windows maneja los paquetes MSI a través de la aplicación msiexec, que es parte de Windows Installer. Es una herramienta incorporada que admite varios cambios de línea de comando. Puede aprender sobre ellos ejecutando el siguiente comando.
- prensa Ganar + R teclas de método abreviado del teclado para abrir el cuadro de diálogo Ejecutar.
- Escriba lo siguiente en el cuadro Ejecutar:
msiexec /?
- Windows Installer mostrará el contenido de la ayuda en una ventana:
Es compatible con los siguientes conmutadores:
Opciones de instalación
Instala o configura un producto
/ a Instalación administrativa: instala un producto en la red
/ j [/ t] [/ g]
Anuncia un producto: m para todos los usuarios, u para el usuario actual
Desinstala el producto.
Opciones de pantalla
/quiet
Modo silencioso, sin interacción del usuario
/passive
Modo desatendido: solo barra de progreso
/q[n|b|r|f]
Establece el nivel de la interfaz de usuario
n - Sin interfaz de usuario
b - IU básica
r - IU reducida
f: interfaz de usuario completa (predeterminado)
/help
Información de ayuda
Opciones de reinicio
/norestart
No reiniciar después de que se complete la instalación
/promptrestart
Solicita al usuario que reinicie si es necesario
/forcerestart
Siempre reinicie la computadora después de la instalación
Opciones de registro
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*]
i - Mensajes de estado
w - Advertencias no fatales
e - Todos los mensajes de error
a - Inicio de acciones
r: registros de acciones específicas
u - Solicitudes de usuario
c - Parámetros iniciales de la IU
m - Información de salida fatal o sin memoria
o - Mensajes de falta de espacio en disco
p - Propiedades de la terminal
v - Salida detallada
x: información adicional de depuración
+ - Agregar al archivo de registro existente
! - Vaciar cada línea al registro
* - Registra toda la información, excepto las opciones vy x
/log
Equivalente de / l *
Opciones de actualización
/ update [; Update2.msp]
Aplica actualización (s)
/ uninstall [; Update2.msp] / package Elimina las actualizaciones de un producto
Opciones de reparación
/ f [p | e | c | m | s | o | d | a | u | v] Repara un producto
p - solo si falta el archivo
o - si falta el archivo o si está instalada una versión anterior (predeterminado)
e - si falta el archivo o si está instalada una versión igual o anterior
d - si falta el archivo o si está instalada una versión diferente
c - si falta el archivo o la suma de comprobación no coincide con el valor calculado
a: fuerza la reinstalación de todos los archivos
u: todas las entradas de registro específicas del usuario necesarias (predeterminado)
m: todas las entradas de registro específicas de la computadora necesarias (predeterminado)
s: todos los atajos existentes (predeterminado)
v: se ejecuta desde la fuente y vuelve a almacenar el paquete local
Establecer propiedades públicas
[PROPERTY = PropertyValue]
La opción que concierne a esta situación es / a. Aunque se describe como "Instalación administrativa: instala un producto en la red", se puede utilizar para extraer el contenido de un solo paquete MSI en archivos individuales más pequeños que pueden ser atendidos por un parche. Se puede utilizar el siguiente comando:
msiexec / a "ruta \ a \ package.msi" / qb TARGETDIR = "ruta \ a \ la \ carpeta \ destino \"
TARGETDIR es una propiedad común para cada paquete que especifica la carpeta de destino para el contenido del paquete MSI.
El modificador "/ qb" le dice a Windows Installer que muestre la interfaz básica durante el proceso. Mostrará un diálogo con el botón Cancelar y la barra de progreso.
Por ejemplo, puedo usar el siguiente comando para descomprimir el instalador MSI del FAR Manager:
msiexec / a "C: \ Users \ winaero \ Downloads \ Far30b4774.x64.20160902.msi" / qb TARGETDIR = "C: \ Users \ winaero \ Downloads \ Far"
Si la carpeta de destino no existe, se creará automáticamente. En mi caso, se creará la subcarpeta Far en la carpeta de descargas.
El comando anterior se puede ingresar directamente en el cuadro de diálogo Ejecutar.
Puede usar la información anterior para agregar un comando de menú contextual para extraer el contenido del archivo MSI con un solo clic. Así es como se puede hacer.
Agregar comando de menú contextual de extracción a archivos MSI
- Abierto Editor de registro.
- Vaya a la siguiente clave de registro:
HKEY_CLASSES_ROOT \ Msi. Paquete \ shell
Propina: Cómo saltar a la clave de registro deseada con un clic.
- Cree una nueva subclave aquí y asígnele un nombre Extraer.
- Debajo de la clave Extraer, cree una nueva subclave y asígnele el nombre Mando:
- Establecer el valor predeterminado de la Mando subclave a la siguiente cadena:
msiexec.exe / a "% 1" / qb TARGETDIR = "% 1 Contenido"
Vea la siguiente captura de pantalla:
Una vez que haga clic con el botón derecho en un paquete MSI en el Explorador de archivos, encontrará un nuevo elemento de menú contextual "Extraer". Si lo ejecuta, creará un nuevo directorio "nombre_paquete.msi Contenido" en la carpeta actual y extraerá el contenido del paquete allí. Vea la siguiente captura de pantalla:
Para ahorrar tiempo, creé archivos de registro listos para usar. Puede descargarlos usando el enlace a continuación.
Descargar archivos de registro
El archivo de deshacer está incluido.
Este truco funciona en Windows 10, Windows 8 y Windows 7.
Tenga en cuenta que algunos paquetes no admiten la instalación administrativa. No se pueden extraer con este método. Además, cuando extrae un paquete MSI de esta manera, su punto de instalación administrativa (la carpeta donde se extrae) se vuelve útil. Se puede utilizar un parche de Windows Installer (MSP) para actualizarlo, de modo que cuando se instala el paquete, también se aplica el parche.