Откат приостановленной установки MSI из командной строки


9

Мы установили установщик Java на большое количество машин, и примерно на половине из них он завис. Теперь последующие развертывания не выполняются из-за следующего сообщения:

Пользователь «SYSTEM» ранее инициировал установку для продукта «Java 7 Update 10». Этот пользователь должен будет запустить эту установку еще раз, прежде чем он сможет использовать этот продукт. Ваша текущая установка будет продолжена.

С последующим:

Ошибка 1704. Установка для Java 7 Update 10 в настоящее время приостановлена. Вы должны отменить изменения, сделанные этой установкой, чтобы продолжить. Вы хотите отменить эти изменения?

Если вы в интерактивном режиме запускаете установку, это нормально. Вы просто нажимаете «ОК», а затем «Да», и он катится дальше. Но если вы запустите установку из командной строки, она остановится. Как мы можем отменить приостановленную установку из командной строки?


поэтому, когда вы говорите «запустить в интерактивном режиме», вы имеете в виду запустить скрипт или просто запустить обычный установщик Java?
Тони Рот

Ну, я развернул скрипт, который работал в фоновом режиме для установки Java. Он заперт на многих машинах и приостановил установку. Теперь при любой автоматической установке я запускаю exit с ошибкой 1704. Если я запускаю установку в интерактивном режиме (то есть, я вхожу в систему, дважды щелкаю по MSI и запускаю запросы), это позволяет мне отменить приостановленную установку. Как я могу отменить эту приостановленную установку из командной строки?
Касиус

ОК, это утверждение: «Я установил скрипт, который запускался в фоновом режиме для установки Java». поэтому, когда вы делаете это, вы запускаете его на заднем плане с тем же человеком, что и у пользователя "SYSTEM"?
Тони Рот


SCCM выполняет установку без вывода сообщений как SYSTEM. Если я запускаю установку в интерактивном режиме, как любой, это позволяет мне отменить приостановленную установку.
Касиус

Ответы:


8

Насколько я знаю, отменить приостановленную установку MSI из командной строки невозможно, используя MSIEXEC (для этого нет параметров).

В любом случае, вы можете попробовать выполнить следующую команду:

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

Этот ключ создается при выполнении установки. Удалив его, вы сможете снова запустить установку.


добавить / f, чтобы принудительно удалить без вопросов (например, для скриптов)
higuita

3

Если Tomas answer не решит проблему, вы можете попробовать утилиту MsiZap.exe .

Он также в основном удаляет метаданные, оставленные установками MSI, но не требует, чтобы вы выяснили все места, где хранится информация.

Например, удаление информации inProgress:

msizap.exe p

или удалите информацию отката:

msizap.exe s

msizap.exe имеет проблемы с более поздними версиями Windows. Не следует использовать без разбора. Вот альтернативный инструмент (не проверенный мной).
Штейн Осмул

0

Я обнаружил, что в Windows 10 (x64) вы можете попытаться удалить ключ не в HKLM, а в текущей ветви реестра пользователей HKEY_USERS \ SXX-XX -... \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ InProgress

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.