Показать полную графическую версию : Удаление и установка msi
Есть старая версия программы, которую нужно снести и новая, которую нужно поставить. В виду большого количества серверов, тратится много времени на удаление через "установку и удаление программ" и потом запуск 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 для полной автоматизации
А как можно забить в батник предварительный поиск ключа удаления по параметру displayname?
Т.е. вместо DD533DFE-EB4C-489D-A8F7-45AF68891C82 нужно подставить переменную, кот нужно проинициализировать предварительно значением ключа из той папки где displayname имеет нужное значение. Просто по гуиду неудобно производить удаление, поскольку при смене версии он меняется, а название приложения нет.
неужели никто не знает как это сделать?
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
)
)
)
(с) хабра
Все привет.
есть необходимость массово удалить ПО со всех ПК.
хотелось бы, не надоедать тем у кого уже оно удалено.
Подскажите как можно узнать установлено ли ПО по его ID, используя скрипты?
А потом бы я его удалил через msiexec.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.