ShS's Blog

Just another sysadmin's weblog

Установка приложения в корпоративной среде при помощи групповых политик (на примере Adobe Acrobat Reader).

Posted by shs на 2010/09/28

В продолжение темы борьбы с «дырками» в продуктах третьих фирм вообще (и в Adobe Acrobat Reader  в частности), решил написать для себя небольшую заметку-инструкцию по установке и обновлению этого ПО в корпоративной среде при помощи подручных средств. Т.к. из подручных средств у меня имеется только GP (Групповые политики), то речь пойдет именно о них. И так, общая схема работы такова:

  1. надо где-то раздобыть приложение в формате msi
  2. создаем общую папку на сетевом ресурсе для размещения файлов административной установки.
  3. выполняем административную установку приложения в папку, созданную в п.2
  4. выполняем настройку пакета инсталляции (msi), путем его редактирования и/или создания файла модификации/преобразования (mst)
  5. создание/редактирование GPO для добавления пакета инсталляции.

 

Рассмотрим, каким образом мы можем выполнить каждый из вышеперечисленных пунктов на примере создания объекта Групповой политики, предназначенной для выполнения установки Adobe Acrobat Reader’а в корпоративной среде.

1) Как добыть инсталлятор  Acroreader’а? Как выяснилось это не просто, а очень просто. Сначала нам придется скачать с сайта производителя инсталлятор Acroreader’а, представляющий обычный исполняемый exe-файл. Сделать это можно одним из следующих способов: посетить сайт www. adobe.com, потыркать по ссылочкам и добраться, наконец, до страницы со ссылкой на файл-дистрибутив, либо, сократив количество телодвижений, непосредственно забрать оный инсталлятор с ftp-сервера производителя. Последняя (на момент написания этих строк) версия инсталлятора 9.3.4 доступна для скачивания по следующему адресу: ftp://ftp.adobe.com/pub/adobe/reader/win/9.x/9.3.4/enu/AdbeRdr934_en_US.exe. И так, мы добыли инсталлятор в виде исполняемого файла. К нашему счастью этот инсталлятор есть не что иное, как, своего рода, самораспаковывающийся архив, который содержит в себе нужный нам msi-пакет. Поэтому нам не придется заниматься самостоятельной изготовкой msi-пакета. Все, что нам нужно сделать, это распаковать полученный «архив». Для этого обратимся к документации от производителя (Deploying Adobe Reader 9). Для того, чтобы извлечь содержимое exe-файла в папку AR9, необходимо дать команду:

AdbeRdr934_en_US.exe -nos_o"AR9" -nos_ne

 В результате в папке AR9 будет создан следующий набор файлов:

PS > dir -Recurse

     Каталог: Microsoft.PowerShell.Core\FileSystem::C:\ar9
 Mode           LastWriteTime       Length Name
—-           ————-       —— —-
d—-    22.09.2010    15:22        <DIR> Reader9
-a—    20.06.2010     2:05       308656 Setup.exe
-a—    14.08.2010    16:02          769 setup.ini

    Каталог: Microsoft.PowerShell.Core\FileSystem::C:\ar9\Reader9
Mode           LastWriteTime       Length Name
—-           ————-       —— —-
-ar—    12.12.2007     1:29         1728 abcpy.ini
-ar—    04.01.2010    21:41      3972608 AcroRead.msi
-a—    04.04.2010    10:54     11850240 AdbeRdrUpd932_all_incr.msp
-a—    20.06.2010    12:01      8040960 AdbeRdrUpd933_all_incr.msp
-a—    13.08.2010    22:09     12263936 AdbeRdrUpd934_all_incr.msp
-ar—    04.01.2010    21:39    109673432 Data1.cab
-ar—    22.12.2009     7:16       345520 Setup.exe
-a—    14.08.2010    16:02          382 setup.ini

Из полученного набора нас интересует файл AcroRead.msi, это, собственно говоря, и есть наш пакет.

2) Со вторым пунктом нашего плана, думаю у нас проблем возникнуть не должно. Все мы умеем папки создавать да права на них выдавать. Единственный нюанс: права на папку должны быть таковы, чтобы доступ к папке имели  компьютеры домена (т.к. мы собираемся прописать пакет установки в разделе «Конфигурация компьютера» групповых политик). Для этих целей можно, например, предоставить доступ на чтение для группы «Компьютеры домена» или «Прошедшие проверку».

3) Выполняем административную установку. Для этого нам потребуется полученный в п. 1 настоящей инструкции пакет AcroRead.msi. Выполняем команду msiexec /a <Full_path_to_AcroRead.msi>

, где  <Full_path_to_AcroRead.msi> — это полный путь (включая имя файла) к пакету AcroRead.msi . Для вышеприведенного примера эта команда будет выглядеть так: msiexec /a C:\ar9\Reader9\ AcroRead.msi. В результате на экране появится «визард», в котором необходимо будет указать полный путь к папке, в которую мы хотим поместить административную установку (эта папка была создана нами на предыдущем шаге). 

4) Настройка пакета инсталляции, создание «модификации» (mst-файла).

Для настройки пакета установки мы воспользуемся «Adobe Customization Wizard 9» (ACW), любезно предоставленного для этого производителем: запускаем ACW, открываем msi-пакет, находящийся в папке административной установки. Вносим следующие изменения:

а) в разделе «Installation options» выбираем Unattended установку (установка без вмешательства пользователя), а так же «Suppress reboot» (запрещаем перезагрузку после установки)

б)  «В разделе EULA and Document Status» взводим галку «Suppress display of EULA» (подавление отображения  лицензионного соглашения)

рис.3

в) В разделе «Online and Acrobat.com features» запрещаем выполнять любые обновления, т.к. обновление будет выполняться администратором централизовано (об этом речь пойдет ниже).

В целях безопасности взводим «галку» «When launching PDF in Internet Explorer, prompt user in open|save dialog», тем самым не позволяя открывать pdf-документ в окне браузера (вместо этого пользователю будет предложено открыть/сохранить файл).

Запрещаем доступ к Adobe.com features.

рис.4

Если есть желание, можно осуществить более тонкую настройку путем «непосредственного редактирования» в разделе «Direct Editor». Так, например, если вы хотите отключить  установку «Быстрого запуска Acrobat Reader’а» (“Adobe Reader Speed Launcher”), то для этого вам потребуется удалить элемент таблицы Registry838 (о некоторых других параметрах тонкой настройки инсталляционного пакета Adobe Acrobat Readerа можно прочитать здесь: “Deploying Adobe Reader 9 for Windows”

рис.5

Затем, сохраняем выполненные настройки в новом файле модификации (mst-файл): для этого выполняем Transform->Generate Transform

5)Создание/редактирование GPO для добавления пакета инсталляции

а) В редакторе групповых политик щелкаем правой кнопкой по узлу «Установка программ»

рис.6

б) В появившемся окне диалога открытия файла находим и выбираем  на сетевом ресурсе с административной установкой msi-пакет. После открытия этого пакета мы увидим следующее окно:

рис.7

В этом окне мы должны выбрать «особый» метод развертывания, т.к. мы собираемся использовать файл модификации (mst-файл).

в) на вкладке «Модификации» добавляем созданный нами при помощи  ACW файл модификации  Acroread.mst.

рис.8

Не забудьте прилинковать созданную политику к нужному OU.

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

Обновления выпускаются фирмой Adobe в виде patch-файлов, имеющих расширение msp. С помощью этих файлов мы можем выполнять обновление административной установки. Обновление выполняется в 2 этапа:

a)      собственно обновление, т.е. применение patch’а к административной установке.
После того, как мы скачали с сайта производителя очередной инкрементальный файл патча, применим его к административной установке при помощи следующей команды:  

msiexec /a <Full_path_to_AcroRead.msi_on_share_with_admin_install> /p <Full_path_to_patch_file>

<Full_path_to_AcroRead.msi_on_share_with_admin_install> — полный путь к msi-пакету административной установки AcroRead.msi
<Full_path_to_patch_file> — полный путь к файлу patch’а.
Для вышеприведенного примера команда будет выглядеть следующим образом:
msiexec /a \\Server\Deploy\Acrobat\AcroReadd.msi  /p C:\ar9\Reader9\ AdbeRdrUpd932_all_incr.msp

b)      распространение обновления на клиентские компьютеры.
Для того чтобы клиентские компьютеры выполнили обновление ПО, ранее установленное при помощи групповых политик, необходимо, открыв соответствующую политику на редактирование, дать команду «Развернуть приложение заново» (см. рисунок ниже)

рис.9

При написании данной заметки были использованы следующие источники информации:

Adobe Acrobat 9 Deployment on Microsoft Windows Group Policy and the Active Directory Service

Deploying Adobe Reader 9

“Deploying Adobe Reader 9 for Windows”

[Upd 2010.10.27]

 Добавлю еще немного полезных настроек, которые могут быть сохранены в файле-модификации (*.mst):

 Добавляем параметры реестра, отключающие JavaScript (встроенный в Acrobat):

рис. 11

Обратите внимание, что раздел реестра JSPrefs с параметром bEnableJS может быть добавлен, как в куст HKCU, так и в HKLM. Думаю, что лучше будет добавить эти параметры в оба куста и вот почему: как я уже писал ранее, этот параметр действует в обоих случаях, но приоритетнее параметр, заданный в ветке HKCU. С другой стороны, параметр из куста HKLM полезен тем, что он задает дефолтное значение  (JavaScript вкл/выкл)  для любого пользователя компьютера (в том числе и локального).
Не смотря на то, что мы может отключить встроенный JavaScript в пакете msi, после установки приложения пользователь может снова его включить (взведя соответствующий checkbox в меню Acrobat Reader’а). Поэтому настоятельно рекомендую прикрутить в политику, которая бы постоянно выполняла отключение встроенного интерпретатора JavaScript.

Кроме того, из соображений безопасности стоит запретить документу PDF открытие других файлов и запуск приложений:

рис. 12

Реклама

комментариев 15 to “Установка приложения в корпоративной среде при помощи групповых политик (на примере Adobe Acrobat Reader).”

  1. Баф said

    Спасибо за статью! Всё очень просто и понятно. Сохраню для будущих опытов с GPO :)

    • shs said

      Всегда рад помочь ;)
      Заходил на ваш блог, хотел оставить пару коментов — ничего не вышло: при нажатии на кнопку «отправить» получаю сообщение об ошибке «Intrenal Server Error 500»

      • Баф said

        а можно ещё потестить? Я просил друзей, оставляли комменты — я их получаю. Может быть Akismet зарезал? Если можно, свяжитесь со мной по аське 141215 — не отказался бы от вашего чтения и комментирования :)

  2. Diesel315 said

    Совсем недурно. Тут правда некоторые моменты более подробно http://amaksimov.wordpress.com/2010/04/26/обновление-и-кастомизация-пакета-adobe-reader/
    И еще совет картинки сделай побольше: удобнее сразу их видеть а не нажимать для увеличения.

    • shs said

      Что касается картинок, я согласен (попробую в следующий раз сделать покрупнее). Касательно информации — не совсем согласен: дать набор параметров не объясняя, что они означают, и почему автор рекомендует их применять, IMHO, не есть правильно. Я решил, что будет лучше привести, в качестве примера, описание одного из примеров «тонкой настройки» и дать ссылку на источник информации, где аналогичные настройки подробно расписаны (а не копипастиь их к себе в блог, не снабдив комментариями).

      • Diesel315 said

        Кстати вопрос по указанной мной ссылке, автор расписал что нужно сперва взять голую версию 9.3, а потом уже дополнить его обновлениями 9.3.1 — 9.3.2 — 9.3.3 — 9.3.4.
        Хотелось бы услышать от вас комментарии по этому поводу. Я то уже ставил версию 9.4. Меня вот поэтому интересует когда будет 9.4.1. Как поступать?

        • shs said

          Это все из-за того, что Adobe не выпускает для каждой минорной версии новый msi-пакет. Новый msi-пакет выходит только при крупных изменениях (при изменении 2й цифры в номере версии продукта). Для каждого минорного изменения (изменение 3й цифры в номере версии) выходит только инкрементальный патч.

  3. Diesel315 said

    В статье указанной выше автор сделал упор что нужно сперва скачать голый 9.3.0 а потом уже файлы обновлений. Интересно ваше мнение по этому поводу. Я то устанавливал уже 9.4.0, но потом то будут выходить новые обновления как быть?

    • shs said

      Дистрибутив последней версии, доступный для скачивания на оф. сайте, представляет из себя архив. Этот архив содержит в себе пакет msi и патчи к нему.
      Так, например, дистрибутив AdbeRdr934_en_US.exe, содержит в себе пакет установки: AcroRead.msi (v 3.0)
      и набор инкрементальных патчей:
      AdbeRdrUpd932_all_incr.msp
      AdbeRdrUpd933_all_incr.msp
      AdbeRdrUpd934_all_incr.msp

      (Я об этом писал в инструкции, см. выше)

      Соответственно ваши действия таковы: качаете последний доступный дистрибутив, выполняете административную установку, патчите ее патчами, добытыми из инсталятора (или скаченными с оф. сайта). По мере выхода новых патчей, закачиваете их с оф сайта, патчите административную установку и даете команду на редеплой в редакторе политик (об этом я так же написал в инструкции. см. выше).

    • shs said

      >Хотелось бы услышать от вас комментарии по этому поводу. Я то уже ставил версию 9.4. Меня вот поэтому интересует когда будет 9.4.1. Как поступать?

      v 9.4.1, если Adobe будет придерживться традиций, должна представлять из себя инкрементальный патч. Поэтому все, что вам потребуется, — это применить его к имеющей место быть административной установке v 4.0 и дать команду на redeploy приложения.

  4. Подробно и без излишеств. Хочу порекомендовать ресурс: . Множество практических советов по развёртыванию продуктов. А также (оттуда):

    The following message was posted by TAiNiUM in the Package Development forum:
    Subj: Adobe 9.3 Standard Package

    I am trying to create an adobe 9.3 install package without Adobe Updater. I tried the instructions from the 9.1 with ORCA and keep getting errors about missing references.

    These are the instructions I am trying to follow:
    After you download it, copy it to a temporary folder such as c:\R9. Then execute the installer with this command line:
    C:\R9\AdbeRdr90_en_US_Std.exe -nos_o»./InstallFiles» -nos_ne Note the lack of a space between -nos_o»./InstallFiles»
    This will cause the installer files to be extracted to C:\R9\InstallFiles Open AcroRead.msi in Orca and then do the following:
    — In the Component table, drop any row containing ‘AdobeUpdater’ or ‘Adobe_Updater’
    — In the Feature table, drop any row containing ‘AUM’ or ‘Updater’
    — In the FeatureComponents table, drop any row containing ‘AUM’ or ‘Updater’
    — In the File table, drop any row containing ‘AdobeUpdater’ or ‘Adobe_Updater’
    — In the ModuleComponents table, drop any row containing ‘AdobeUpdater’ or ‘Adobe_Updater’
    — In the MsiFileHash table, drop any row containing ‘AdobeUpdater’
    — In the Registry table, drop any row containing ‘Adobe_Updater’
    — In the Registry table, drop the row containing ‘Registry838’
    — In the Shortcut table, drop the row containing ‘SC_READER_DT’
    — In the Property table, set the value for SYNCHRONIZER to YES
    — In the Property table, set the value for EULA_ACCEPT to YES Also in the Property table, you could set the value of DISABLE_BROWSER_INTEGRATION to YES, to prevent Reader from opening within the browser. This would be beneficial in Terminal Server environments. When a PDF file is opened within the browser and the user then browses to a different page, the Reader components are stay in memory until the browser is closed.
    Save the new MSI.

    Идти можно разными путями, выше предложен один из них. Я сделал иначе, изменил INSTALLLEVEL для «ненужных» компонент.

  5. shs said

    Про appdeploy.com знаю (полезный ресурс). При написании своей заметки-инструкции, как раз руководствовался похожим описанием (на нее приведена ссылка в конце заметки).
    Для выполнения вышеприведенных настроек вместо Orca, вполне, можно пользовать предлагаемый Adobe’ом ACW. Но, вот никакого InstallLevel в ACW (при беглом осмотре) мне обнаружить не удалось.
    Мои знания о структуре пакетов msi (мягко говоря) далеки от совершенства, посему за InstallLevel мне трудно что-либо сказать (не подскажете, где и при помощи какого инструментария можно подправить этот параметр?)

    ЗЫ начинаю читать описание WiX с вашей подачи ;)

    • Рад, что Вы приступили к изучению WiX. Плюсы его в том, что он «открытый». Ну и собирать дистрибутив гибко и удобно, работая при этом в Visual Studio. При этом можно собрать «чистый» msi (без всяких InstallShield) даже с интерфейсом с локализацией без особых проблем. Если есть интерес — сообщите, выложу исходники простейшего msi для публикации ЯРЛЫКА (типа — развернули сервис). Могу и посложнее выложить — уже с приложениями на примере той же 1С 7.7 либо на примере Tops System TFlex CAD 3D, WinRAR (собственная сборка).
      Касательно InstallLevel. Этот аттрибут через Orca следует искать в таблице Features. Feature — компонент (не путать с Component, не знаю, как иначе здесь перевести Feature на русский язык) верхнего уровня, параметрами установки которого мы даём возможность управлять пользователю. Для пользователя Feature — это атом. Он либо весь встаёт, либо весь не ставим. Для нас — Feature состоит из множества Component. Так вот, для каждого Feature в таблице Features мы можем переопределить InstallLevel. По умолчанию он — 100. Есть также связанное свойство в Properties — INSTALLLEVEL. Его значение по умолчанию также 100. И для конкретного Feature msi определяет ставить его или нет (что можно изменить) первоначально по InstallLevel. Если InstallLeve <=INSTALLLEVEL — ставим, иначе — не ставим.

      • shs said

        Спасибо большое. Честно говоря, как начал читать про WiX, так и закончил (руки не доходят). Если бы вы в вашем блоге сделали бы ряд статей с примерами его применния из вашего личного опыта, с удовольствием бы прочитал.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: