Установка Java Runtime Environment в корпоративной среде при помощи групповых политик

Небольшая заметка по мотивам поста ”Установка приложения в корпоративной среде при помощи групповых политик (на примере Adobe Acrobat Reader)” В этот раз будем устанавливать Java Runtime Environment (JRE). Как обычно, в первую очередь необходимо озаботиться получением дистрибутива, пригодного для offline-установки. Скачать такой дистрибутив можно на сайте java.com: “Скачать Java для всех операционных систем”. К сожалению, нам доступен для скачивания дистрибутив только в формате exe-файла, а для распространения при помощи групповых политик нам нужен msi-файл. Впрочем, после непродолжительного “гугления” выясняется, что, как и в случае с Adobe Acrobat Reader’ом, скачанный нами дистрибутив JRE содержит в себе необходимый нам msi-пакет. Все, что нам нужно сделать, – добыть этот пакет из скаченного дистрибутива. Для этого необходимо запустить скаченный offline-инсталлятор, который сам создаст папку в профиле пользователя и распакует в нее нужные нам файлы.Эта папка будет иметь имя вида jreV_U (где V – номер версии, а U – номер обновления JRE, так, например, для последней (на момент написания этих строк) версии JRE 1.6.0. update 24 папка получит название jre1.6.0_24) и будет располагаться по одному из следующих путей: либо в %USERPROFILE%\Application Data\Sun\Java, либо в %USERPROFILE%\Local Settings\Application Data\Sun\Java.

В принципе, на этом можно было бы и закончить (файлы, содержащиеся в папке jre1.6.0_24, уже пригодны для распространения JRE при помощи групповых политик), но “это же не наши методы” ;) Давайте внесем небольшие изменения в процесс установки: например, мы можем отключить бесполезную в корпоративной среде функцию проверки наличия обновления. Пользователи все равно не смогут воспользоваться возможностью обновить продукт в связи с отсутствием необходимых полномочий, а постоянное предложение выполнить обновление будет их только раздражать.  Для того, чтобы внести изменения в процесс установки, нам потребуется создать “модификацию” (mst-файл). Создать mst-файл можно при помощи редактора msi-файлов (например, Orca.exe). И так, скопируем содержимое папки jre1.6.0_24 (полученной на предыдущем этапе) на общедоступный сетевой ресурс, с которого будем выполнять распространение JRE при помощи групповых политик, а затем откроем содержащийся в ней файл jre1.6.0_24.msi на редактирование. Дадим команду на создание новой “модификации” (Transform->New Transform).

MST_for_ JREОтыщем в открытом пакете таблицу Property и отредактируем в ней некоторые свойства (см. скриншот). Для отключения автообновления можно установить в “0” значение для следующих свойств:

Все, работа по созданию “модификации” (файла mst) закончена, осталось его только сохранить (Transform->Generate Transform…), а затем “привинтить” результаты нашей работы в групповых политиках. Не буду повторяться и снова рассказывать, как это можно проделать, т.к. принципиально это ничем не отличается от случая с Adobe Acrobat Reader’ом, который я описывал раньше.

Несколько замечаний на последок:

JRE_with_Update_Tab Если вы хотите убрать вкладку Update в Java Control Panel, то и это можно проделать. Если присвоить параметру реестра EnableJJRE_without_Update_TabavaUpdate типа  REG_DWORD, расположенному в разделе HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy значение 0, то вкладка Update перестанет отображаться. Произвести эти изменения можно, например, при помощи групповых политик, прикрутив к ним административный шаблон. Но я не считаю нужным проделывать эти телодвижения, т.к., на мой взгляд, они бессмысленны. Если пользователь работает под ограниченной учетной записью, то он эту вкладку не увидит (а если бы и увидел, то все равно не смог бы ею воспользоваться из-за отсутствия полномочий для установки ПО). Администратора же, по большому счету, вообще, невозможно ничем ограничить, а потому такие “детские” методы неэффективны.

Будьте внимательны и осторожны при назначении политики, распространяющей JRE на компьютерах организации (не назначайте политику на все компьютеры организации одновременно, делайте это поэтапно). У меня, во время применения политики, установка назначенного программного обеспечения JRE на некоторых компьютерах никак не хотела завершаться (ждал около часа). При этом компьютером невозможно было пользоваться. После принудительной перезагрузки (нажатия на кнопку Reset) все повторялось снова: бесконечная установка назначенного программного обеспечения. В результате, для того чтобы выйти на окно приглашения входа в систему, пришлось выводить проблемный компьютер из под действия политики установки назначенного программного обеспечения. При последующих попытках выполнить установку JRE вручную на проблемных компьютерах, я  наблюдал появление сообщения об ошибке “Error 25099. Unzipping core files failed”. В базе знаний Java говориться о том, что причина возникновения этой ошибки неизвестна, а в качестве workaround’а предлагается удалить папку с установленной ранее JRE. Этот обходной манёвр работает, но оптимизма это почему-то не добавляет. Честно говоря, не знаю – возможно ли установить/изменить таймаут для попыток установки ПО средствами групповых политик? Буду благодарен за подсказки.

Install WinSDK Да, чуть не забыл написать пару строк о “добывании” редактора msi-пакетов Orca. Дело в том, что это процедура совсем не очевидна. Для начала нам придется скачать Microsoft Windows SDK, который представляет из себя web-инсталятор. После его запуска выбираем из опций (предложенных для установки) Developer Tools. Web-инсталлятор скачивает и устанавливает выбранные нами компоненты, но Orca в меню “Пуск” не появляется. Оказывается, что в процессе установки Windows SDK не происходит установка Orca, а всего лишь скачивается его дистрибутив (Orca.Msi). Этот дистрибутив сохраняется в папке, в которую устанавливается Windows SDK (в моем случае это была папка %programfiles%\Microsoft SDKs\Windows\v7.0\Bin). Ну, вот, собственно и все: переходим в эту папку и запускаем установку Orca.msi.

23 Comments

  1. Cпасибо за статью!
    Маленький вопрос. При установке через GPO, на локальных компьютерах выводится уведомление:
    Установка упр. программного обеспечения (расшифровка какого).
    Так вот, чаще всего – не видно что ставится, или какая версия ставится. Возможно ли как-то это исправить (cделать бегущую строку, расширить табличку)?

    • Боюсь, едиственное решение – написать свою gina. либо же банально укоротить строку “Установка управляемого программного обеспечения” в ресурсах (что не очень красиво). Безобидных решений так же не нашёл.

  2. А зачем делать файл трансформации? Если через ту же самую “орку” можно открыть msi пакет, изменить необходимые ключи и сохранить нажатием на иконку дискетки. Зачем еще засорять gpo файлом трансформации? Или этот файл трансформации можно будет использовать на все последующие обновления java?

    • Ну, во-первых, IMHO, штатное добавление одного единственного файла никак не тянет на “засорение”. А, во-вторых, вы правильно предположили: один и тот же файл “модификации” можно использовать и с последующими версиями msi-пакетов java. Кроме того, если потребуется отменить изменния, которые вы внесли, то достаточно удалить файл модификации и вы получите дефолтный msi-пакет и вам не придется мучительно вспоминать, в каких разделах пакета и какие исправления вы внесли. Ну, и еще один плюс: если изменния храняться в файле модификации, то Orca, после того, как вы подгрузите файл “модификации”, выделит цветом те изменения, которые внесены этим файлом “модификации”, что очень удобно.

    • 1) Кидать ничего не буду
      2) С чего вы взяли что вам придется скачать 240 Мб? (объем в разы меньше)
      3) Вы качаете мизерный web-инсталятор. После установки взводите нужные “галки”. Будет скачено только то, что вы отметили.

  3. потому что, когда отмечаю галками как у вас на скриншоте, то размер указыввается 240 мб.

  4. Pingback: Stas Vershinin » Установка Java через GPO

  5. Pingback: Установка 1с v8.2 в корпоративной среде при помощи групповых политик - ShS's Blog

  6. здраствуйте я удалил “jre1.6.0_24.msi” и немогу востановить а при установке явы он пишет што нужен “jre1.6.0_24.msi” уже и незнаю что делать помогите плз буду очень рад!

    • Честно говоря – не знаю, у меня как раз обратная задача – получить на целевом компьютере только свежую версию java. К сожалению, на некоторых компьютерах иногда новая версия устанавливается параллельно со старой. Почему такое происходит – не знаю.

    • Чтобы новый пакет обновил старый – разработчики пакета должны были об этом позаботиться. Можно и через mst добиться таких же результатов, но, уверяю Вас, для этого потребуется некоторое время.
      Исходим из того, что и предыдущий пакет был развёрнут через политику (а иного в корпоративной среде быть не должно). Тогда в ту же политику добавляем новый пакет, указываем в его свойствах что он ЗАМЕНЯЕТ (НЕ ОБНОВЛЯЕТ!) старый – и указываем на него. При применении политики старый будет автоматом деинсталлирован, новый – поставлен.

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

    • не знаю что такое файлики *.csr, но в любом случае для распространения файлов на пользовательские компьютеры политики можно использовать (см. GPP либо logon\startup scripts).

  7. Поправки:
    Делал msi для версии 7.60 (и более ранних) на Windows 7×64, так при установке msi появляется в папке C:\Users\_ВашеИмя_\AppData\LocalLow\Sun\Java\xxx
    (xxx – папка с устанавливаемой версией)
    Плюс при запуске msiexec /a программа не предлагает выбор папки для распаковки, а появляется на диске D (видимо т.к. исходный msi у меня лежит на D:\xxx).
    Верно? И можно ли как-то добиться чтобы был выбор папки для админ.установки?

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.