Обновление Adobe Reader с удалением старых версий средствами ConfigMgr

Adobe Reader XIПри установке новой версии Adobe Reader (на данный момент Adobe Reader XI) не всегда удаляются старые версии. При установке программы руками нет сложности с обновлением. Сначала удаляется старая версия, а потом устанавливается новая.

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

Для начала нам необходимо определить какие версии ПО у нас присутствуют. Из отчетов SCCM 2012 выяснилось, что установлены английские и русские редакции Adobe Reader 6.0 и выше, вплоть до 11. Остается выяснить все коды удалений старых приложений и добавить их скрипт по замене Adobe Reader.

Для меня проще всего было провести эту процедуру с помощью виртуальной машины, CCleaner и Process Monitor. Устанавливается программа. С помощью CCleaner производится её удаление, а Process Monitor отслеживает активность процесса CCleaner.

Мониторинг удаления Adobe Reader с помощью CCleaner и ProcMon

Конечно же можно было и напрямую в реестре смотреть коды удаления программ:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Некоторые предыдущие релизы и обновления Adobe Reader можно найти на ftp сервере Adobe: ftp://ftp.adobe.com/pub/adobe/reader/win/

Устанавливаем русскую и английскую версию Adbobe Reader 6.0. Смотрим строки удаления и находим закономерности:

msiexec /X{AC76BA86-7AD7-1033-7B44-000000000001}
msiexec /X{AC76BA86-7AD7-1049-7B44-000000000001}

1033 — английская редакция программы.
1049 — русская редакция.

Третий параметр в коде продукта MSI отвечает за локализацию.

Устанавливаем английскую версию Adbobe Reader 6.0.1 и 6.0.2. И русскую редакцию 6.0.2 CE. Других версий на ftp нет.

msiexec /X{AC76BA86-7AD7-1033-7B44-A00000000001}
msiexec /X{AC76BA86-7AD7-1033-7B44-A00000000002}
msiexec /X{AC76BA86-7AD7-1049-7B44-CEA000000001}

По данной методике был накоплен ряд строк удаления всех продуктов предыдущих версий и сформирован итоговый скрипт:

@ECHO OFF

REM  Убить все процессы AcroRd32.exe для корректного обновления
taskkill /F /IM AcroRd32.exe /T

REM  Adobe Reader 6.0
msiexec /X{AC76BA86-7AD7-1033-7B44-000000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-000000000001} /QN /NORESTART

REM  Adobe Reader 6.0.1-2
msiexec /X{AC76BA86-7AD7-1033-7B44-A00000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A00000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A00000000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A00000000002} /QN /NORESTART

REM  Adobe Reader 6.0.2 CE
msiexec /X{AC76BA86-7AD7-1033-7B44-CEA000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-CEA000000001} /QN /NORESTART

REM  Adobe Reader 7.0.0-9
msiexec /X{AC76BA86-7AD7-1033-7B44-A70000000000} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70000000000} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A70100000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70100000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A70200000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70200000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A70300000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70300000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A70400000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70400000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A70500000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70500000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A70600000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70600000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A70700000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70700000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A70800000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70800000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A70900000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A70900000002} /QN /NORESTART

REM  Adobe Reader 7.1.0-4
msiexec /X{AC76BA86-7AD7-1033-7B44-A71000000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A71000000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A71100000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A71100000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A71200000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A71200000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A71300000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A71300000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A71400000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A71400000002} /QN /NORESTART

REM  Adobe Reader 8.0.0-2
msiexec /X{AC76BA86-7AD7-1033-7B44-A80000000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A80000000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A80100000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A80100000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A80200000002} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A80200000002} /QN /NORESTART

REM  Adobe Reader 8.1.0-7
msiexec /X{AC76BA86-7AD7-1033-7B44-A81000000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A81000000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A81100000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A81100000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A81200000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A81200000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A81300000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A81300000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A81400000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A81400000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A81500000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A81600000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A81600000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A81600000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A81700000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A81700000003} /QN /NORESTART

REM  Adobe Reader 8.2.0-6
msiexec /X{AC76BA86-7AD7-1033-7B44-A82000000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A82000000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A82100000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A82100000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A82200000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A82200000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A82300000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A82300000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A82400000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A82400000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A82500000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A82500000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A82600000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A82600000003} /QN /NORESTART

REM  Adobe Reader 8.3.0-1
msiexec /X{AC76BA86-7AD7-1033-7B44-A83000000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A83000000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1033-7B44-A83100000003} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A83100000003} /QN /NORESTART

REM  Adobe Reader 9
msiexec /X{AC76BA86-7AD7-1033-7B44-A90000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A90000000001} /QN /NORESTART

REM  Adobe Reader 9.1.0-3
msiexec /X{AC76BA86-7AD7-1033-7B44-A91000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A91000000001} /QN /NORESTART

REM  Adobe Reader 9.2
msiexec /X{AC76BA86-7AD7-1033-7B44-A92000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A92000000001} /QN /NORESTART

REM  Adobe Reader 9.3.0-4
msiexec /X{AC76BA86-7AD7-1033-7B44-A93000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A93000000001} /QN /NORESTART

REM  Adobe Reader 9.4.0-7
msiexec /X{AC76BA86-7AD7-1033-7B44-A94000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A94000000001} /QN /NORESTART

REM  Adobe Reader 9.5.0-4
msiexec /X{AC76BA86-7AD7-1033-7B44-A95000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-A95000000001} /QN /NORESTART

REM  Adobe Reader X
msiexec /X{AC76BA86-7AD7-1033-7B44-AA1000000001} /QN /NORESTART
msiexec /X{AC76BA86-7AD7-1049-7B44-AA1000000001} /QN /NORESTART

REM  Установка Adobe Reader XI
adberdr11000_ru_ru.exe /sALL /rs /msi /qn ALLUSERS=1 EULA_ACCEPT=YES
SET ExitCode=%ErrorLevel%
REM  Установка пакетов обновлений для Adobe Reader XI
msiexec /update AdbeRdrUpd11003.msp /qn

REM  Удаление ярлыка Adobe Reader XI с рабочего стола
IF EXIST "%ALLUSERSPROFILE%\Desktop\Adobe Reader XI.lnk" DEL /q "%ALLUSERSPROFILE%\Desktop\Adobe Reader XI.lnk"
IF EXIST "%ALLUSERSPROFILE%\Рабочий стол\Adobe Reader XI.lnk" DEL /q "%ALLUSERSPROFILE%\Рабочий стол\Adobe Reader XI.lnk"
IF EXIST "%PUBLIC%\Desktop\Adobe Reader XI.lnk" DEL /q "%PUBLIC%\Desktop\Adobe Reader XI.lnk"

REM  Удаления из автозапуска Adobe Reader Speed Launcher и Adobe ARM, удаление службы автоматического обновления - AdobeARMservice
regedit /S setup_reg.reg

EXIT %ExitCode%

Содержимое файла setup_reg.reg

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader\11.0\AdobeViewer]
"EULA"=dword:00000001
"EULAAcceptedForBrowser"=dword:00000001

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AdobeARMservice]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Adobe Reader Speed Launcher"=-
"Adobe ARM"=-

Если у кого-то еще есть Acrobat Reader 5, то строка деинсталляции выглядит так:

C:\WINDOWS\ISUNINST.EXE -f"C:\Program Files\Common Files\Adobe\Acrobat 5.0\NT\Uninst.isu" -c"C:\Program Files\Common Files\Adobe\Acrobat 5.0\NT\Uninst.dll" -a

Теперь можно собрать пакет в System Center Configuration Manager и запустить обновление на коллекцию компьютеров со старым Adobe Reader. Коллекцию со старыми версиями Adobe Reader можно сформировать QUERY запросом следующего содержания:

SELECT SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client 
FROM SMS_R_System 
INNER JOIN SMS_G_System_INSTALLED_SOFTWARE ON SMS_G_System_INSTALLED_SOFTWARE.ResourceID = SMS_R_System.ResourceId 
WHERE 
 SMS_G_System_INSTALLED_SOFTWARE.ProductName LIKE "%Adobe Reader XI%" 
 -- В коллекцию не должны попасть системы с уже установленным обновлением
 AND SMS_G_System_INSTALLED_SOFTWARE.ResourceId NOT IN (
 SELECT SMS_G_System_INSTALLED_SOFTWARE.ResourceId 
 FROM SMS_G_System_INSTALLED_SOFTWARE 
 WHERE SMS_G_System_INSTALLED_SOFTWARE.ProductVersion = "11.0.03" 
 )
 -- В коллекции должны быть только рабочие станции без серверов
 AND SMS_R_System.OperatingSystemNameAndVersion LIKE "Microsoft Windows NT%Workstation%"
 -- В коллекцию не должны входить системы, которые включены в коллекцию PRI000D6 (Исключения для установки обновлений)
 AND SMS_R_System.ResourceId NOT IN (SELECT ResourceID FROM SMS_CM_RES_COLL_PRI000D6)
 -- В коллекции должны присутствовать только системы с установленным агентом ConfigMgr
 AND SMS_R_System.Client = 1

В System Center Configuration Manager 2012 SP1 строка » AND SMS_R_System.ResourceId NOT IN (SELECT ResourceID FROM SMS_CM_RES_COLL_PRI000D6)» теряет актуальность, поскольку в правилах формирования коллекции есть возможность задать исключающие коллекции.

Дополнительная информация

Adobe Reader for Windows — Обновления для Adobe Reader с официального сайта adobe.com

FTP сервер adobe.com — Старые версии Adobe Reader и обновления с официального FTP сервера adobe.com