Тихая MSI-деинсталляция GUID, которых не существует - PullRequest
7 голосов
/ 22 февраля 2011

Я пытаюсь выполнить тихое удаление моего приложения.Это прекрасно работает, если приложение действительно установлено, но когда это не так, пользователь получает сообщение об ошибке и должен нажать кнопку ОК, чтобы продолжить.

Моя команда:

MSIEXEC.EXE /qb /L* "%LOGDIR%\myuninstaller.log" /x{GUID}

Проблема заключается в том, чтоМне нужно очистить все старые версии приложения в сценарии, который я развернул в AD.Я не знаю, какая версия установлена ​​на каком компьютере, и сначала сложно определить сценарий.

Как заставить MSIEXEC НЕ жаловаться на удаление GUID, которые не существуют

Ответы [ 4 ]

3 голосов
/ 22 февраля 2011

Нашел ответ по http://technet.microsoft.com/en-us/library/cc759262(WS.10).aspx#BKMK_SetUI

Кажется, мне нужно использовать /qn вместо /qb.

2 голосов
/ 22 февраля 2011

Если все ваши приложения имеют правильные GUID-ключи в "KEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall", вы также можете сделать что-то вроде этого:

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID} >NUL 2>NUL || MSIEXEC.EXE /qb /L* "%LOGDIR%\myuninstaller.log" /x{GUID}

Это только запустит msiexec.exe, еслиключ присутствует (и будет немного более эффективным, чем запуск msiexec.exe на несуществующих GUID с /qn).

0 голосов
/ 13 июня 2014

Даже если у вас есть принятый ответ, ознакомьтесь с этим сообщением на serverfault.com: Можно ли отключить графический интерфейс справки msiexec? .Существует множество способов удалить MSI с помощью автоматизации, поэтому вам вообще не придется работать с msiexec.exe.

Возможно, это Удаление файла MSI из командной строки без использования msiexec также полезно.

0 голосов
/ 13 июня 2014

В моем случае это работает с: (обратите внимание на оператор &&)

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID} >NUL 2>NUL && MSIEXEC.EXE /qf /L* "%LOGDIR%\myuninstaller.log" /x{GUID}

по этой ссылке http://www.robvanderwoude.com/condexec.php, последующая команда (msiexec.exe) будет выполнена, только если первая команда выполнена успешно (без результата ошибки). Вы можете попробовать проверить каждую команду отдельно

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID} >C:\registrycheck.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...