Revierta la instalación suspendida de .MSI desde la línea de comandos

9

Implementamos un instalador de Java en una gran cantidad de máquinas, y se congeló en aproximadamente la mitad de ellas. Ahora, las implementaciones posteriores fallan debido al siguiente mensaje:

El usuario 'SYSTEM' ha iniciado previamente una instalación para el producto 'Java 7 Update 10'. Ese usuario deberá ejecutar esa instalación nuevamente antes de poder usar ese producto. Su instalación actual ahora continuará.

Seguido por:

Error 1704. Una instalación para Java 7 Update 10 está actualmente suspendida. Debe deshacer los cambios realizados por esa instalación para continuar. ¿Desea deshacer estos cambios?

Si ejecuta una instalación de forma interactiva, está bien. Simplemente haga clic en "Aceptar" y luego en "Sí", y continuará. Pero si ejecuta una instalación de línea de comandos, se detiene. ¿Cómo podemos cancelar la instalación suspendida desde la línea de comandos?

Kasius
fuente
Entonces, cuando dices "ejecutar interactivamente", ¿te refieres a ejecutar el script o simplemente ejecutar el instalador normal de Java?
Tony Roth
Bueno, implementé un script que se ejecutó en segundo plano para instalar Java. Se bloqueó en muchas máquinas y dejó una instalación suspendida. Ahora, cualquier instalación silenciosa que ejecuto sale con el error 1704. Si ejecuto la instalación de manera interactiva (lo que significa que inicio sesión, hago doble clic en .MSI y ejecuto las indicaciones), me permite cancelar la instalación suspendida. ¿Cómo puedo cancelar esa instalación suspendida desde la línea de comandos?
Kasius
ok esta afirmación "Implementé un script que se ejecutó en segundo plano para instalar Java". Entonces, cuando está haciendo esto, ¿lo está ejecutando en segundo plano como la misma persona que en el usuario "SYSTEM"?
Tony Roth
tal vez intente una desinstalación silenciosa docs.oracle.com/javase/1.5.0/docs/guide/deployment/…
tony roth
SCCM ejecuta la instalación silenciosamente como SYSTEM. Si ejecuto la instalación de forma interactiva, como cualquiera, me permite cancelar la instalación suspendida.
Kasius

Respuestas:

8

Hasta donde yo sé, no es posible cancelar una instalación suspendida de MSI desde la línea de comando usando MSIEXEC (no tiene ningún parámetro para eso).

De todos modos, puede intentar ejecutar el siguiente comando:

REG DELETE HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress

Esta clave se crea cuando hay una instalación en progreso. Eliminarlo debería permitirle volver a ejecutar la configuración nuevamente.

Tomás Dabasinskas
fuente
agregue a / f para forzar la eliminación sin preguntas (es decir, para scripts)
higuita
3

Si la respuesta de Tomás no resuelve el problema, puede probar la Utilidad MsiZap.exe .

Básicamente, también elimina los metadatos dejados por las instalaciones de MSI, pero no requiere que encuentre todas las ubicaciones donde se almacena la información.

Por ejemplo, eliminar la información en progreso:

msizap.exe p

o eliminar información de reversión:

msizap.exe s
weberik
fuente
msizap.exe tiene problemas con versiones posteriores de Windows. No debe usarse indiscriminadamente. Aquí hay una herramienta alternativa (no probada por mí).
Stein Åsmul
0

Descubrí que en Windows 10 (x64) puede intentar eliminar la clave no en HKLM sino en la rama de registro de usuarios actual HKEY_USERS \ SXX-XX -... \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ InProgress

Pro
fuente