¿Cómo puedo acelerar la instalación y desinstalación del paquete MSI?

14

Al instalar y desinstalar paquetes de Windows Installer , o archivos MSI como se les llama, el progreso de la instalación parece significativamente más lento que con otros paquetes de instalación.

¿Por qué es este el caso y qué puedo hacer para acelerar las cosas ?

Stein Åsmul
fuente
1
¿Qué sabe? Me rechazan instantáneamente por intentar proporcionar algunos consejos prácticos y técnicos del mundo de la implementación al mundo de la administración de sistemas. El consejo en este hilo es lógico y técnicamente sólido al momento de la escritura. Crítica constructiva bienvenida.
Stein Åsmul
Esencialmente ha escrito un artículo sobre algunas facetas de la tecnología MSI. Eso es genial, supongo. Nunca, como administrador del sistema, realmente necesité resolver el problema de "Mis instalaciones de software son tan lentas".
mfinni
Esta es una respuesta actualizada a una pregunta que he visto varias veces en este sitio y en otros sitios de intercambio de pila.
Stein Åsmul
3
@mfinni: no significa que no esté en el tema. Hay muchos problemas que veo en este sitio que no experimento.
Mark Henderson
Estaba preguntando por qué fue rechazado sin comentarios. No voté, pero di una respuesta que vi como una posible razón.
mfinni

Respuestas:

15

Sumario rápido

  • Propiedades de necesidad de velocidad para ajustar:
    • MSIFASTINSTALL (pruébalo, tal vez3o7)
    • FASTOEM (piense dos veces, debe leer la documentación)
    • DISABLEROLLBACK (entender lo que significa, puede causar acciones personalizadas en paquete MSI que fallen a correr! Depende del diseño MSI - look para compromisos y acciones personalizadas de rollback )
  • El software de seguridad puede suspenderse para acelerar las instalaciones.
    • Intente deshabilitar durante la instalación: escanee su instalador en virustotal.com .
  • Intente ejecutar desde una imagen administrativa ( información alternativa ) (no es necesario extraer el archivo).
    • Ejecutar desde una imagen administrativa local sería más rápido.
    • ¿La red de alta latencia podría ralentizar la instalación si usa una imagen administrativa de red?
      • Potencialmente alta sobrecarga por archivo (archivos pequeños).
      • ¿Descargar un solo CAB podría ser más rápido (la verificación de virus puede tomar mucho tiempo aquí)?
  • La restauración del sistema se puede deshabilitar globalmente en la máquina (no solo a través de MSIFASTINSTALL).

Información de contexto

Gran parte de la lentitud de una sesión de Windows Installer se debe a sus capacidades de reversión . En primer lugar, crea un punto de restauración antes de la instalación o desinstalación (siempre que la restauración del sistema no se haya deshabilitado). Luego realizará una copia de seguridad de todos los archivos afectados y las claves de registro durante la desinstalación y la instalación para garantizar que el sistema pueda restaurarse a su estado original en caso de que ocurra un error. Las versiones posteriores de Windows Installer presentan formas de deshabilitar parte de esta complejidad y acelerar las cosas. Consulte la información técnica a continuación.

Otro factor de velocidad es que todos los componentes y características en el MSI se registrarán en el registro . Esto implica bastante sobrecarga , pero es necesario para lograr importantes beneficios de implementación corporativa y administración del sistema . Ninguna otra tecnología de implementación presenta este nivel de control.

Los archivos MSI grandes con archivos fuente incrustados pueden necesitar mucho tiempo para extraer sus archivos de instalación en la carpeta temporal. Esto a veces puede ser el mayor cuello de botella de todos. Se recomienda ejecutar una instalación de administrador para extraer los archivos de origen de dicho paquete para que aparezcan lado a lado con el archivo MSI, eliminando la necesidad de extraer archivos localmente en cada máquina y, por lo tanto, ahorrando tiempo de implementación. Aquí hay otro artículo que describe la extracción de archivos de paquetes MSI en términos simples .


Información técnica


ACTUALIZACIÓN (febrero de 2018): puede establecer una propiedad llamada FASTOEM en circunstancias muy especiales (ver contenido vinculado) para acelerar la implementación. Nunca he intentado esto, pero vale la pena leerlo. Dudo que tenga éxito al usarlo de manera efectiva, pero valdría la pena intentarlo.


La actualización más reciente de Windows Installer en el momento de la escritura, Windows Installer 5 (disponible en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7), presenta una nueva propiedad MSIFASTINSTALL que puede usarse para acelerar la instalación de Un gran paquete MSI . Vea el enlace de arriba para valores válidos. Sugeriría 3 para ningún punto de restauración , y solo FileCosting (el proceso de determinar los requisitos de espacio en disco). O 7 para reducir también la frecuencia de los mensajes de progreso.

El " costo " normal presenta una gran cantidad de comparaciones y cálculos de características, componentes, discos y registros entre lo que existe en el sistema y lo que se está instalando. La mayoría de esto rara vez es necesario en mi opinión (el espacio en disco generalmente es abundante en las PC clientes, y en la realidad de 2018 con un disco SD más pequeño, el problema del espacio podría haber resurgido ...), pero obviamente es más seguro dejarlo lleno costo de ejecución.

msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3

También es posible establecer la propiedad DISABLEROLLBACK para deshabilitar el soporte de reversión en el instalador MSI. Recomiendo encarecidamente no usar esto a menos que esté preparando una PC nueva. Este es un caso especial cuando puede comenzar de nuevo si algo falla. Para una computadora en uso real, no recomendaría habilitar esta propiedad.

La ironía es que deshabilitar la reversión acelerará más las cosas si está ejecutando un gran paquete de actualización que reemplaza muchos archivos o cualquier desinstalación grande (ya que una desinstalación moverá todos los archivos eliminados a un área de reversión). Podría ser bastante significativo, pero inseguro. Simplemente establezca esta propiedad en la línea de comando: msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3 DISABLEROLLBACK = 1

Instalación administrativa

Y finalmente, como se mencionó anteriormente en la información de fondo, ejecute una instalación administrativa del archivo MSI para extraer los archivos para que la extracción no ocurra localmente en cada máquina. Esto supone que se encuentra en una red bastante rápida y que la copia del archivo se realiza sin demasiado retraso. Supongo que una red inalámbrica de alta latencia podría hacer las cosas más lentas con pequeños archivos extraídos que deben copiarse uno por uno. Ejecutas una instalación de administrador simplemente pasando un / a al archivo de configuración:

setup.exe / a

o

msiexec / a "D: \ winzip112.msi"

Luego, debe seguir las indicaciones y seleccionar una ubicación de extracción para los archivos. Visite superuser.com para obtener un hilo sobre esta característica


Algunos enlaces :

Velocidad:

Stein Åsmul
fuente
no es eso MSIFASTINSTALL? sin ERen la cola.
n611x007
He agregado la propiedad MSIFASTINSTALL = 3 en mi proyecto Wix. Aún así, no hay diferencia en el tiempo de instalación. <Property Id = "MSIFASTINSTALL" Value = "3" /> ¿Si hice algo mal?
Kathir Subramaniam el
1
Mejora principalmente el tiempo de "despegue" para un MSI: la creación de un punto de restauración del sistema puede ser lenta. También ayuda a calcular los requisitos de espacio, pero la instalación en sí misma no es mucho más rápida. Espera mientras encuentro otra respuesta a la que podría enviarte.
Stein Åsmul
Como verá: no hay bala de plata, pero puede hacer algunos ajustes. ¿Qué tan grande es tu configuración?
Stein Åsmul