Войти

Показать полную графическую версию : Удаление и установка msi


beata08
27-08-2010, 22:37
Есть старая версия программы, которую нужно снести и новая, которую нужно поставить. В виду большого количества серверов, тратится много времени на удаление через "установку и удаление программ" и потом запуск msi. Существует ли способ оптимизации этого процесса, что-то типа батника, чтобы щелкая его, выполнялись эти две операции?

Boa Soft
28-08-2010, 13:41
Ключь запуска деинсталлятора смотрим в ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID или имя программы} параметр UninstallString

Например, для установленной у меня версии OpenOffice

Ключь реестра будет
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{DD533DFE-EB4C-489D-A8F7-45AF68891C82}

А параметр удаления MsiExec.exe /X{DD533DFE-EB4C-489D-A8F7-45AF68891C82}

Можно добавить еще и /QN для полной автоматизации

beata08
18-10-2010, 16:04
А как можно забить в батник предварительный поиск ключа удаления по параметру displayname?
Т.е. вместо DD533DFE-EB4C-489D-A8F7-45AF68891C82 нужно подставить переменную, кот нужно проинициализировать предварительно значением ключа из той папки где displayname имеет нужное значение. Просто по гуиду неудобно производить удаление, поскольку при смене версии он меняется, а название приложения нет.

beata08
20-10-2010, 11:11
неужели никто не знает как это сделать?

cameron
21-10-2010, 11:44
for /f "tokens=7 delims=\" %%i in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall ^| FIND "{"') do
(
for /f "tokens=2,*" %%j in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\%%i /v DisplayName') do
(
set dn=%%k
if "!dn:~0,33!"=="Windows Live ID Sign-in Assistant"
(
echo Uninstalling Windows Live ID Sign-in Assistant
msiexec /promptrestart /qb /x %%i /L+*v %TEMP%\wlidsvc.log
if %ERRORLEVEL% NEQ 0 echo Uninstallation failed. Check the log %TEMP%\wlidsvc.log
)
)
)
(с) хабра

yurgers
11-02-2013, 13:05
Все привет.

есть необходимость массово удалить ПО со всех ПК.
хотелось бы, не надоедать тем у кого уже оно удалено.
Подскажите как можно узнать установлено ли ПО по его ID, используя скрипты?
А потом бы я его удалил через msiexec.




© OSzone.net 2001-2012