Установка программного обеспечения средствами групповой политики. Часть 6

Об установке программного обеспечения при помощи возможностей групповой политики на моем блоге уже можно найти достаточно много статей. Как видно из самого заголовка, это уже 6-я статья данного цикла. В предыдущих статьях было рассмотрено большинство возможностей расширения клиентской стороны, отвечающего за процесс централизованной инсталляции программного обеспечения. То есть вы узнали о том, как можно устанавливать программные продукты при помощи MSI- и ZAP-файлов, какая разница между этими типами установки, а также немного о том, как можно указать дополнительные настройки для установщика Windows. Какая же тема еще ни разу не была затронута?

Практически каждый программный продукт после своего релиза не стоит на месте. Команды разработчиков стремятся к тому, чтобы привести свое детище к максимально стабильному состоянию, периодически добавляют своим продуктам новые специфические возможности, да и вообще стараются на регулярной основе обновлять тот или иной продукт. И получается, что обновление программного обеспечения позволит реализовать более стабильную, безопасную и функциональную работу. Следовательно, обновление программного обеспечения относится к одному из важнейших этапов жизненного цикла приложения. Ну а когда выходят обновления для программ, системный администратор должен быстро отреагировать и проинсталлировать такие обновления сначала для пилотной группы пользователей, а потом уже и для всех остальных сотрудников организации.

Следовательно, мы еще не рассмотрели процедуру обновления программных продуктов средствами групповой политики. Обязательно нужно это исправить. А значит, в этой статье вы узнаете о том, каким образом можно обновлять программные продукты при помощи расширения CSE «Установка программ».

Установка устаревшего программного продукта

Для того чтобы обновить программный продукт, естественно, для начала нужно проинсталлировать его устаревшую версию. Так как согласно материалу третьей статьи настоящего цикла программа устанавливалась средствами назначения программного обеспечения, сейчас следует разобрать метод установки при помощи публикации. Устанавливать средствами публикации для пользователя и обновлять в данном случае будем великолепный бесплатный анализатор пакетов и инструмент захвата фреймов от корпорации Microsoft, который называется Network Monitor. Для этого будет использоваться не один, а целых два объекта групповой политики. При помощи первого объекта групповой политики будет опубликован Network Monitor версии 3.3.

Затем, исключительно в качестве примера, будет продемонстрирован процесс ассоциации файлов с расширением «.cap» с данным программным продуктом. То есть, ввиду некоторых изменений в последних операционных системах от Microsoft, у вас не получится установить программный продукт по двойному клику по файлу, который будет ассоциирован с сетевым монитором. Именно по этой причине установка сетевого монитора будет выполняться непосредственно из панели управления. Но об этом немного позже.

После этого данное программное обеспечение будет обновлено при помощи второго объекта групповой политики. Об этих действиях вы узнаете из следующих разделов.

Сразу хочу обратить ваше внимание на то, что инсталлятор данного продукта предоставляется в виде EXE-файла. Как вы знаете из предыдущих статей данного цикла, расширение клиентской стороны «Установка программ» не позволяет выполнять установку программных продуктов при помощи этого типа инсталляторов. В данном случае это не страшно, так как внутри инсталляционного exe-файла расположено по 2 MSI-пакета, которые, в принципе, нас и интересуют. Один из них – непосредственно инсталлятор сетевого монитора, а второй – парсер. На парсер пока не будем обращать внимания, а проинсталлируем только сам сниффер. Файлы, с которыми далее будем работать, я заранее распаковал и переименовал. Полагаю, все, что нужно было выполнить заранее, уже оговорено и сделано, поэтому можно начинать.

Публикация программного продукта

Для создания первого объекта групповой политики следует открыть оснастку «Управление групповой политикой» (Group Policy Management) и создать таковой. Например, в данном примере это будет объект «GPSI — SoftwareInstallation». После этого нужно связать его с требуемым подразделением и вызвать для него редактор управления групповыми политиками. Уже находясь в окне редактора следует перейти к узлу «Установка программ» (Software installation) конфигурации пользователя и создать новый пакет. В отобразившемся диалоговом окне выбирается требуемый MSI-пакет, то есть файл netmon_33.msi. Думаю, не очень удобно по нескольку раз открывать различные диалоговые окна, поэтому при создании данного пакета в диалоговом окне «Развертывание программ» (Deploy Software), как видно на следующей иллюстрации, будет выбрана опция «особый» (Advanced).

Рис. 1. Диалоговое окно развертывания программ

В диалоговом окне расширенного создания инсталляционного пакета на вкладке «Общие» (General), как обычно, ничего информативного мы сделать не можем, поэтому сразу ее пропускаем. А вот на вкладке «Развертывание» (Deployment) необходимо указать, что данный программный продукт будет публиковаться. То есть следует в группе «Тип развертывания» (Deployment type) установить переключатель на опцию «Публичный» (Published), что, в принципе, и выбрано по умолчанию. Далее необходимо убедиться в том, что на данной вкладке установлен флажок «Автоматически устанавливать приложение при обращении к файлу с соответствующим разрешением» (Auto-install this application by file extension activation), что, согласно задумке Microsoft, должно позволить устанавливать приложение в том случае, если пользователь попробует открыть файл, ассоциированный с данным расширением. В случае с публикацией это важно. Также для того, чтобы сетевой монитор мог удалиться за ненадобностью, следует установить еще флажок на опции «Удалять это приложение, если его использование выходит за рамки, допустимые политикой управления» (Uninstall this application when it falls out of the scope of management). Больше на этой вкладке нам делать особо нечего, как и в текущем диалоговом окне в целом, поэтому сразу сохраним внесенные в этот инсталляционный пакет изменения. Данная вкладка изображена на следующей иллюстрации:

Рис. 2. Вкладка «Развертывание» диалогового окна настроек инсталляционного пакета

По логике вещей, все действия, требуемые для того, чтобы программа опубликовалась, уже были выполнены, но из-за ограниченных возможностей опубликованных приложений пользователь сможет установить опубликованное нами программное обеспечение только в том случае, если он зайдет в окно апплета «Программы и компоненты» (Programs and Features) панели управления и перейдет по ссылке «Установка новой программы из сети» (Install a program from the network). А я могу со стопроцентной уверенностью сказать, что это смогут сделать единицы, что нас, естественно, совершенно не устраивает. Получается, крайне желательно сделать так, чтобы программа устанавливалась при открытии файла с требуемым программе расширением. Что же нам следует в этом случае сделать?

Создание ассоциации для файлового типа

  1. Прежде всего, необходимо локализовать изменяемый объект групповой политики. Как это можно сделать? Следует перейти в папку SYSVOL. Как вы знаете, она находится в расположении %windir%\SYSVOL. Теперь, уже находясь в SYSVOL, необходимо открыть папки domain и policies. Здесь необходимо локализовать искомый объект групповой политики. Проще всего это сделать так: посмотреть на дату изменения папки. Если она хоть приблизительно совпадает с текущей датой и временем – мы нашли то, что нам сейчас нужно;
  2. После этого нужно открыть «Редактор ADSI» (ADSI Editor). Сделать это просто: достаточно всего лишь в диалоговом окне «Выполнить» (Run) ввести adsiedit.msc;
  3. В отобразившейся оснастке выбираем меню «Действие» (Action), а затем команду «Подключение к» (Connect);
  4. Будучи в диалоговом окне «Параметры подключения» (Connection Settings), следует убедиться, что в раскрывающемся списке «Выберите известный контекст именования» (Select a well-known Naming Context) выбрано «Контекст именования по умолчанию» (Default Naming Context). При желании в текстовом поле «Имя» (Name) можно задать какое-то читабельное имя, например, «GPSI Fixes» и из раскрывающегося списка «Выберите или введите имя домена или сервера» (Select or type a domain or server) выбрать требуемый контроллер домена. Диалоговое окно параметров подключения смотрите на следующей иллюстрации:

    Рис. 3. Диалоговое окно параметров подключения

  5. Теперь нужно перейти в следующее расположение: раскрываем наш домен, CN=System, CN=Policies, CN=найденный объект групповой политики, CN=User, CN=Class Store, CN=Packages;
  6. Здесь нужно найти инсталляционный пакет с устанавливаемым приложением. Если их много, то найти требуемый пакет можно очень просто. Для этого следует открыть свойства параметра политики и посмотреть на значение атрибута «DisplayName». Если его значение, как видно на следующей иллюстрации, совпадает с нашим пакетом – мы открыли правильный параметр политики:

    Рис. 4. Свойства параметра политики в редакторе ADSI

  7. Уже после того, как требуемый параметр будет локализован, следует перейти к атрибуту «FileExtPriority» и дважды на нем кликнуть. Здесь, в отобразившемся диалоговом окне «Multi-Valued String Editor», необходимо в раскрывающемся списке «Добавляемое значение» (Value to add) указать расширение файла, по открытию которого должно устанавливаться наше приложение, а затем поставить двоеточие и через пробел указать 0. То есть в данном примере, как показано на соответствующем изображении, это будет выглядеть как «.cap: 0».

    Рис. 5. Определение значения для атрибута FileExtPriority

  8. После этого значение можно сохранять, а редактор ADSI закрывать.
  9. Обязательным требованием является повторное открытие оснастки «Редактор управления групповыми политиками» (Group Policy Management Editor). В открывшейся заново оснастке редактора следует перейти к узлу «Установка программ» (Software Installation) конфигурации пользователя и открыть диалоговое окно свойств данного расширения клиентской стороны;
  10. Теперь осталось перейти на вкладку «Расширения файлов» (File Extension) и, как видно на иллюстрации ниже, теперь в данном раскрывающемся списке уже появилось первое расширение с ассоциацией на необходимую программу. Вот так просто и интуитивно понятно добавляются ассоциации для файловых расширений 🙂

    Рис. 6. Вкладка «Расширения файлов» диалогового окна свойств расширения CSE

Теперь уже можно выполнять команду gpupdate /force, выход и повторный вход в систему. Далее следует локализовать файл с расширением «CAP» и дважды на нем кликнуть. К сожалению, как я и упоминал ранее в этой статье, из-за некоторых нововведений, связанных с Windows Store, приложение не стало устанавливаться. Однако, как можно заметить ниже, такое приложение спокойно устанавливается из панели управления. Готово, приложение удачно установилось.

Рис. 7. Найденное устанавливаемое приложение в панели управления

Обновление проинсталлированного приложения

Теперь можно попробовать обновить этот инструмент. Для этого, как я уже отмечал ранее, будет использоваться второй объект групповой политики. Следовательно, создается в оснастке «Управление групповой политикой» (Group Policy Management) еще один объект GPO, который будет называться, скажем, «GPSI – SoftwareUpdates», и связываться в этом примере с уровнем домена. Теперь нужно вызвать для созданного объекта GPO редактор управления групповыми политиками.

Так как будет обновляться программное обеспечение, которое ранее было опубликовано для пользователя, сейчас инсталляционный пакет следует создавать тоже в узле конфигурации пользователя. Здесь при создании нового инсталляционного пакета локализуем инсталляционный MSI-файл, при помощи которого будет обновляться данный программный продукт, а в соответствующем диалоговом окне следует выбрать метод «особый» (Advanced).

Как обычно, первая вкладка нас не сильно волнует, так как на ней мы лишь можем добавить URL-адрес службы поддержки.

Так как желательно, чтобы приложение обновилось автоматически, а в предыдущем объекте групповой политики оно было опубликовано, на вкладке «Развертывание» (Deployment) диалогового окна свойств создаваемого пакета, чтобы не пришлось возвращаться в панель управления, следует выбрать метод «Назначенный» (Assigned). После этого можно, как показано на следующей иллюстрации, установить флажки на опциях «Удалять это приложение, если его использование выходит за рамки, допустимые политикой управления» (Uninstall this application when it falls out of the scope of management) и «Устанавливать это приложение при входе в систему» (Install this application at logon), а затем уже перейти к следующей вкладке.

Рис. 8. Вкладка «Развертывание» инсталляционного пакета второго объекта групповой политики

Вот теперь при создании данного пакета нас интересуют возможности вкладки «Обновления» (Upgrade). На этой вкладке следует указать, какой именно программный продукт будет подлежать обновлению. Для этого в группе «Приложения, обновляемые данным пакетом» (Packages that this package will upgrade) необходимо нажать на кнопку «Добавить» (Add). Так как обновляемое приложение создавалось в другом объекте групповой политики, в отобразившемся диалоговом окне «Добавление обновления» (Add upgrade package) следует установить верхний переключатель на опцию «из указанного объекта групповой политики» (A specific GPO) и при помощи соответствующего диалогового окна выбора объекта групповой политики локализовать тот объект, в котором создавался пакет для публикации Network Monitor. То есть, в нашем примере, это объект «GPSI — SoftwareInstallation».

Как видите на следующей иллюстрации, теперь в области «Обновляемое приложение» (Package to upgrade) появилось приложение Network Monitor. Нужно просто выбрать сниффер и установить нижний переключатель на опцию «Удалить приложение, затем установить его обновление» (Uninstall this existing package, then install the upgrade package). Это очень важно, так как данная опция позволяет перед установкой последней версии программного продукта удалить прежнюю версию. В случае, если с обновлением какого-либо специализированного программного обеспечения в удалении приложения нет никакой необходимости, нужно будет остановиться на опции «Обновление возможно поверх имеющегося приложения» (Package can be upgrade over the existing package), что позволит только выполнить обновление поверх уже установленного продукта. Для того чтобы обновленный программный продукт однозначно установился, следует установить флажок на опции «Обязательное обновление для уже установленных приложений» (Required upgrade for existing packages). Ввиду того, что здесь опций не так много, после того как будет установлено значение последнего переключателя, можно сохранять все внесенные изменения. Так как все оставшиеся вкладки диалогового окна создаваемого пакета нас совершенно не интересуют, можно сохранять все изменения и переходить к редактору управления групповыми политиками.

Рис. 09. Вкладка «Обновления»

На всякий случай, чтобы быть уверенными, что данный объект групповой политики будет обработан, следует сделать этот объект принудительным. Другими словами, в оснастке «Управление групповой политикой» (Group Policy Management) из контекстного меню данного объекта выбирается команда «Принудительно» (Enforced).

Теперь можно проверить, получилось ли у нас обновить программный продукт или нет. Для этого обновляются параметры групповой политики на целевой машине с параметрами /force /boot /logoff, но так как назначенное приложение должно установиться только при выполнении пользователем входа в систему, нам сейчас придется даже не просто выйти из системы, а на всякий случай перезагрузить компьютер. Во время перезагрузки машины у вас на экранах должен красоваться текст «Удаление управляемого программного обеспечения Microsoft Network Monitor 3.3» (Removing managed software Network Monitor), а затем «Установка управляемого программного обеспечения Microsoft Network Monitor 3.4» (Installing managed software Network Monitor).

Рис. 10. Процесс удаления программного продукта

Компьютер перезагрузился, и можно проверить, удалось ли обновить этот программный продукт. Это видно сразу по иконке. Так как написано, что Network Monitor версии 3.4, можно сделать вывод, что все прошло удачно и можно не волноваться о том, что объект как-то неправильно обработал.

Заключение

Из этой статьи вы узнали о том, как можно опубликовать приложения для пользователей, как можно создать ассоциацию для файлового расширения и инсталлируемого программного продукта, а также о том, как можно обновлять установленные программы. Используя все эти возможности, вы можете гораздо эффективнее управлять программными продуктами, с которыми работают ваши пользователи. В следующей, заключительной статье этого цикла, вы узнаете о том, как можно удалять проинсталлированные программные продукты, а также вас еще ждет небольшой бонус 🙂

VN:F [1.9.22_1171]
Rating: 5.8/10 (4 votes cast)
Установка программного обеспечения средствами групповой политики. Часть 6, 5.8 out of 10 based on 4 ratings

4 комментария

  1. А как отключить установку программ из доменных политик? Новый админ всяку ***ню в политиках домена наставил, мне как программисту на***й не нужное, а то и вредное. Как отключить установку программ? Длл-ку scecli.dll удалил, а программы после перезагрузки все равно ставятся.

    VA:F [1.9.22_1171]
    Rating: +1 (from 1 vote)
    1. Прежде всего, можно предложить администратору перевести Вас в Active Directory в другое подразделение (OU), где не будут распространяться настроенные параметры групповой политики. Можно для этого работать в изолированном лесе (об этом я здесь писал: http://gpo-planet.com/?p=3355), но с таким подходом может быть множество различных нюансов. В принципе, если интересно, могу как-то написать статейку про различных «обходные пути» от распространения политик..

      VN:F [1.9.22_1171]
      Rating: +1 (from 1 vote)
  2. Добрый день!
    Сколько звеньев должно быть в цепочке обновлений, если обновляющих пакетов уже накопилось больше одного?
    Можно ли оставить только обновляющий и обновляемый им пакеты (последний и предпоследний) или необходимо все пакеты установки и соответствующие им дистрибутивы «хранить вечно»?

    VA:F [1.9.22_1171]
    Rating: +6 (from 8 votes)

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *