На протяжении четырех различных статей, опубликованных со значительным промежутков во времени я рассказывал вам о функциональных возможностях расширения клиентской стороны GPSI, позволяющего централизованно инсталлировать программные продукты для компьютеров и пользователей организации средствами групповой политики. Уже была рассмотрена чуть ли не большая часть возможностей, которые предоставляет это CSE. Сначала вы узнали о самом назначении этой функциональной возможности, об общих настройках узла установки программ и об отличиях между методами публикации и назначения программных продуктов. После этого речь шла об инсталляционных файлах, которые можно использовать для развертывания программного обеспечения средствами групповой политики. Напомню, что развернуть программный продукт вы сможете только в том случае, если используете файл инсталлятора .msi или .zap. После этого обсуждался сам процесс развертывания программного продукта из MSI-файла и при помощи специально созданного zap-файла. Так о чем же еще, в таком случае, можно сказать и что еще можно сделать для развертывания программного обеспечения?
Далее в этой статье вы узнаете о процессе настройки самого установщика Windows, то есть msi-файлов, о которых речь заходила в двух статьях этого цикла, а также об управлении самим процессом установки.
Процесс инсталляции приложений средствами MSI-установщиков
Процесс инсталляции пакетов MSI делится на два этапа, а именно: на сбор данных и на выполнение. В том случае, если во время инсталляции произошли какие-то сбои, выполняется откат. Рассмотрим каждый этап:
Сбор данных является самым первым, можно сказать, предварительным этапом, во время которого выполняется сбор инструкций, определенных самим приложением или пользователем. После этого инсталлятор последовательно просматривает все необходимые действия, указанные в таблицах установочной базы данных. Затем, согласно полученной информации, формируется скрипт, в котором уже будут указаны пошаговые процедуры выполнения инсталляции программного продукта.
Во время этапа выполнения инсталлятор передает собранную ранее информацию в процесс с повышенными привилегиями, а затем поэтапно проходит все процедуры, определенные при помощи сгенерированного ранее скрипта.
Ну а в том случае, если установка приложения заканчивается неудачей, то есть с какой-либо ошибкой, долгом установщика будет восстановление компьютера в исходное состояние. Во время обработки указанного ранее скрипта установщик Windows еще и создает специальный скрипт отката. А во время процесса самого выполнения установщик сохраняет все файлы, которые обязательно должны быть удалены по завершению установки приложения. Помещаются такие файлы в одну из системных папок и, в том случае, если инсталляция прошла без проблем, на компьютере должны быть удалены как исходные файлы, так и сценарий отката.
При выполнении инсталляции приложений в терминологии установщика Windows есть такое понятие, как «Установка по требованию». Давайте же рассмотрим, что это такое.
Во время выполнения установки обычных exe-приложений для добавления каких-либо дополнительных компонентов или изменения какой-либо определенной настройки при установке, как правило, нужно было выходить из инсталляционного процесса и перезапускать его заново. Как вы понимаете, такой подход просто невозможно назвать удобным, так как занимает все это много времени, а от конечных пользователей требуется выполнение дополнительных действий.
Так вот как раз установка по требованию предоставляет пользователям или приложениям возможность доустанавливать недостающие компоненты при отсутствии самих файлов. Такой подход называется объявлением. Как это все выглядит? Установщик Windows создает объявления для некоторых дополнительных компонентов приложения и может сделать установку по требованию при вызове определенных функций при работе уже установленного приложения. Такой подход значительно сокращает конфигурационный процесс, так как дополнительные компоненты программного обеспечения можно проинсталлировать без выхода из приложения и повторного запуска инсталлятора.
Когда вызывается сам установщик, пользователю предоставляется возможность выбора инсталлируемых компонентов, которые заранее были объявлены. В том случае, если пользователь будет запрашивать еще не установленные объявленные компоненты при запуске программного обеспечения, само приложение моментально вызовет инсталлятор, предоставляющий возможность установить исключительно дополнительные компоненты. Ну а если пользователь попробует вызвать еще не установленный объявленный продукт, то в таком случае инсталлятор вызовет сама операционная система, однако, на этот раз основной задачей установщика Windows будет инсталляция самого приложения.
Как объявления, так и установка по требованию способствует упрощению управления инфраструктурой, позволяя системным администраторам управлять установкой приложений, развертывая их для специфических групп либо предоставляя устанавливаться исключительно при возникновении необходимости у пользователей. Как вы знаете, эти методы называются назначением и публикацией.
Рассмотрим еще раз такое понятие, как административная установка, то есть установка продукта в сети. По сути, установщик Windows также предоставляет возможность выполнения административной установки приложений, расположенных в сети. Получается, административным пакетом установки называется элемент установщика Windows, который позволяет устанавливать исходный образ приложения на сетевой общий ресурс. При этом установка уже будет включать в себя ряд специфических для организации параметров, которые введет администратор в процессе реализации (например, это может быть название организации, серийный номер и т. п.) и которые будут повторены для каждого пользователя. Пользователи, которые имеют доступ к этому сетевому ресурсу, смогут затем установить приложение из исходного образа. В свою очередь, приложение должно быть общедоступным, то есть пользователь или его компьютер, в зависимости от метода развертывания, должны иметь доступ к расположению этих файлов, хотя бы только на чтение и выполнение. Так как пользователь будет загружать приложение из общедоступного сетевого ресурса, следует удостовериться в том, что общедоступное расположение всегда будет оставаться в сети.
Редактор пользовательского интерфейса позволяет задать альтернативный набор диалоговых окон установки, который будет отображаться в том случае, если администратор устанавливает приложение на сетевой ресурс с помощью командной строки, используя параметр /a. Вместе с этой командой принято использовать некоторые параметры, например:
- Admin. Этот параметр используется для инициирования административной установки. Для выполнения этих действий необходимо, чтобы в базе данных инсталлируемого пакета присутствовали таблицы AdminExecuteSequence и AdminUISequence;
- AdminProperties. Данный параметр позволяет указать перечень дополнительных свойств, разделенных точкой с запятой. Все эти свойства будут применяться сразу после того, как административная установка из административного пакета будет подходить к завершающему этапу;
- ShortfileNames. Этот параметр отвечает за действия, которые могут понадобиться в будущем, то есть во время повторной установки приложения пользователем, будь то инсталляция какого-то патча или дополнительного компонента программного обеспечения. Для того чтобы корректно применить патч, установщик автоматически проставляет свойство ShortfileNames на тот случай, если административный пакет использует короткие имена файлов.
Теперь рассмотрим такой момент, как создание ярлыков для проинсталлированных программ. Для того чтобы разобраться с этим моментом, рекомендую почитать статью Криса Корио о работе UAC в операционной системе Windows Vista. Вот фрагмент из этой статьи, который имеет отношение к ярлыкам проинсталлированных программных продуктов: «Чтобы определить, будет ли файл MSI выполнять установку ярлыков приложения в каталог для конкретного пользователя или для всех пользователей на данном компьютере, еще до появления такой операционной системы, как Windows Vista использовалось свойство ALLUSERS (что, естественно, означает «все пользователи»). Эти ярлыки включали в себя DesktopFolder, то есть папку рабочего стола, ProgramMenuFolder (папку меню программ), StartMenuFolder (папку меню «Пуск») и StartupFolder (что означает, «папка автозагрузки»). Поскольку не существовало каталога, предназначенного для конкретного пользователя, аналогичного каталогу Program Files, двоичные файлы приложений в основном записывались в каталог Program Files.
К сожалению, по причинам, связанным с обеспечением совместимости приложений, установщик Windows не мог определить, нужно ли запрашивать у пользователя учетные данные, основываясь только на свойстве ALLUSERS. Вместо этого в последних версиях установщика в файле MSI был выделен дополнительный бит, определяющий, нужно ли выдавать запрос пользователю. Это бит третьего свойства, именуемый Word Count Summary, что означает «сводка о количестве слов». Если этот бит равняется 1, предполагается, что пакет предназначен для конкретного пользователя, и запрос на ввод маркера администратора не будет выводиться.
Чтобы указать, что установка пакета может выполняться только в общий профиль, администраторам нужно установить ALLUSERS=»1″ или ALLUSERS=»2″, а бит третьего свойства Word Count Summary следует установить равным 0. Чтобы указать, что установка пакета предназначена для конкретного пользователя и может выполняться пользователем с обычным доступом, необходимо установить ALLUSERS=»» или не определять значение этого свойства, а бит третьего свойства Word Count Summary установить равным 1».
Что еще можно делать при помощи команды административной установки? Например, файлы, расположенные в установочном пакете msi, можно просмотреть, предварительно распаковав такой пакет при помощи команды msiexec /a %путьк_MSIфайлу% /qb TARGETDIR=%конечная папка%.
Данная утилита командной строки предоставляет еще несколько интересных параметров и аргументов, а именно:
- /Quiet. Данный параметр предоставляет возможность тихой установки программного продукта. Другими словами, программа установщика запускается без единого отображения пользовательского интерфейса. В таком случае пользователь также не сможет отменить установку. Помимо этого, вместе с этим параметром еще следует использовать несколько дополнительных аргументов. Например, вы можете использовать этот параметр, указав просто /q со следующими аргументами:
- /qn. При использовании этого аргументf вы запретите отображение пользовательского интерфейса;
- /qb. В свою очередь, использование данного аргумента выполнит обратные действия, то есть разрешит отображение основного пользовательского интерфейса;
- /qr. Этот аргумент отвечает за отображение сокращенного пользовательского интерфейса с выводом модального диалогового окна в конце установки;
- /qf. Еще более «продвинутый режим», позволяющий отобразить полноценный пользовательского интерфейс, но уже с выводом модального диалогового окна в конце;
- /qn+. Представляет собой запрет на отображение пользовательского интерфейса за исключением вывода в самом конце того же модального диалогового окна, о котором только что шла речь;
- /qb+. Это уже отображение не полного, а просто основного пользовательского интерфейса с выводом в самом конце модального диалогового окна;
- /qb-. Этот последний аргумент, как очевидно, отвечает за отображение основного пользовательского интерфейса без каких-либо модальных диалоговых окон.
- /Passive. Автоматический режим, то есть только указание хода выполнения установки программного обеспечения. Для пользователя отображается лишь прогресс-бар, чтобы пользователь знал, что в данный момент выполняется процесс установки. Причем не отображаются ни сообщения об ошибках выполнения, ни какие-либо другие подсказки. Как и в случае с параметром тихой установки, этот параметр рекомендуется совмещать с одним из следующих двух параметров;
- /Norestart. Это параметр, отвечающий за то, что не следует перезагружать компьютер после завершения процесса установки;
- /Forcestart.В этом случае, наоборот, по завершению инсталляции программного продукта компьютер в обязательном порядке будет перезагружен;
- /Promptrestart. Параметр, отвечающий за вывод определенного запроса на перезапуск при необходимости. В этом случае будет отображаться сообщение, свидетельствующее о том, что для корректного завершения установки программного обеспечения требуется полная перезагрузка компьютера. Следовательно, пользователь может по своему усмотрению ответить на предоставленный запрос. По вполне понятным причинам этот параметр нельзя использовать совместно с параметром /quiet;
- /Package. Весьма полезный параметр, отвечающий за установку или дополнительную настройку программного продукта. Вместе с этим параметром следует указывать имя файла пакета установщика Windows, то есть код_продукта, либо глобальный уникальный идентификатор (GUID) пакета установщика Windows;
- /Update. Параметр, предназначенный для применения обновлений программного обеспечения в виде *.msp-файлов;
- /Uninstall. Параметр, не требующий каких-либо дополнительных разъяснений. Здесь все понятно. С его помощью вы можете удалять установленное ранее программное обеспечение.
Настройка установщика Windows
Так как на процесс установки и сами MSI-файлы я уже успел немного пролить свет, в этом разделе данной статьи мне хотелось бы вам рассказать о том, каким образом можно предопределять настройки установщика Windows средствами групповой политики. Итак, чтобы указать дополнительные настройки установщика Windows, нужно будет выполнить следующие действия:
- В первую очередь, так как за большинство настраиваемых в операционных системах Windows параметров отвечают групповые политики, нужно перейти к оснастке «Управление групповой политики» (Group Policy Management) и создать новывй либо воспользоваться существующим объектом групповой политики. Например, пусть в данном примере такой объект называется «GPSI-Settings» и пускай он будет связан со всем доменом. Опять же, в производственной среде я предлагаю связывать такие объекты непосредственно с тем подразделением, на которое должны распространяться параметры политики, изменяемые в текущем объекте. После того как вы определитесь с наименованием и областью действия вашего объекта GPO, можно переходить к редактору управления групповыми политиками;
- Теперь, находясь в оснастке редактора управления групповыми политиками, для определения параметров, отвечающих за работу установщика Windows на клиентских компьютерах, нам следует развернуть узел Конфигурации компьютера, а затем перейти к узлу ПолитикиАдминистративные шаблоныКомпоненты WindowsУстановщик Windows (Computer configurationPoliciesAdministrative TemplatesWindows ComponentsWindows Installer). После того как вы окажетесь в указанном узле, вы сможете обнаружить целых 23 параметра политики, которые в той или иной степени позволяют кастомизировать возможности установщика Windows. Рассматривать каждый параметр не имеет смысла, но можно подробно рассмотреть самые важные из них:
- Прежде всего, это параметр «Отключение установщика Windows» (Turn off Windows Installer). Используя этот параметр политики, вы можете ограничить использование установщика Windows в свой организации. Другими словами, вы можете либо полностью запретить пользователям устанавливать приложения на свои компьютеры, либо разрешить устанавливать только те программы, которые были предложены вами при помощи расширения клиентской стороны «Установка программ». Следовательно, как видно на следующей иллюстрации, включив данный параметр, вы можете выбрать одну из трех доступных опций. Остановившись на опции «Только для необслуживаемых программ», вы тем самым разрешите пользователям устанавливать только те программы, которые были вами назначены или опубликованы. Указав опцию «Всегда», вы полностью запретите использование установщика Windows на пользовательских компьютерах. Если вы выберете опцию «Никогда», то, соответственно, использование установщика Windows будет полностью разрешено. Установим в данном случае переключатель на опцию «Только для необслуживаемых программ»:
Рис. 1. Диалоговое окно свойств параметра политики отключения установщика Windows - Следующий параметр, который будет сегодня рассматриваться, называется «Всегда устанавливать с повышенными правами» (Always install with elevated privileges). Судя по названию, данный параметр отвечает за выполнение инсталляционного процесса программ установщиком Windows с наивысшими привилегиями. При включении параметра повышение прав будет применяться для любого инсталлируемого продукта, и именно поэтому с данным параметром следует быть особо осторожными. Почему так? Смотрите: зачастую, повышенные права зарезервированы для приложений, которые назначены пользователю, компьютеру или же доступны в окне «Программы и компоненты» панели управления. А опасен этот параметр тем, что он позволяет пользователям устанавливать программы, требующие доступа к папкам, на просмотр или изменение которых у пользователя просто не должно быть разрешений. Если вы все-таки решите включить данный параметр, то обязательно убедитесь, что он будет включен как в узле конфигурации компьютера, так и в конфигурации пользователя. В данном случае мы просто не будем трогать этот параметр и дальше продолжим рассматривать параметры установщика Windows;
- Следующий параметр, который называется «Запретить откат» (Prohibit rollback), отвечает за дополнительный этап инсталляции приложения, то есть за восстановление операционной системы к исходному состоянию после прерванной или неудачной установки приложений. Активировав данный параметр, вы тем самым запретите установщику Windows записывать исходное состояние системы и, как следствие, запретите записывать последовательность изменений, которые будут выполняться в процессе установки программных продуктов. Помимо этого, вы также запрещаете установщику сохранять файлы, подлежащие последующему удалению, о которых шла речь в предыдущем разделе данной статьи, что повлечет за собой невозможность восстановления операционной системы в исходное состояние на тот случай, если установка не будет завершена. Как и в случае с предыдущим параметром, этот параметр можно настраивать как в узле конфигурации компьютера, так и конфигурации пользователя, только разница в том, что если предыдущий параметр корпорация Microsoft настоятельно рекомендует настраивать в обеих инстанциях, то в случае с этим параметром настройка во всех расположениях является просто рекомендацией. В данном примере в обоих узлах, как видно на следующей иллюстрации, устанавливается переключатель на опцию «Отключено» (Disabled), и мы можем переходить к очередному параметру настройки установщика Windows;
Рис. 2. Разрешение отката параметров для некорректно установленных приложений - Продолжая рассматривать запрещающие параметры политики, перейдем к параметру «Удалить диалоговое окно обзора нового источника» (Remove browse dialog box for new source). Что дает этот параметр? Используя возможности данного параметра политики, вы запретите пользователям выполнять поиск файлов установки при попытке добавления новых компонентов в установленные программные продукты. Активировав текущий параметр политики, в диалоговом окне установщика Windows будет отключена кнопка «Обзор», расположенная возле списка «Использовать функцию», а пользователям придется выбирать источник из списка, определенного системным администратором. Так как данный параметр может оказаться крайне полезным, в данном примере активируем его;
- Перед нами очередной «жесткий» параметр политики, который называется «Отключение создания контрольных точек восстановления системы» (Turn of creation of System Restore Checkpoints). Как я уже говорил немного ранее, по умолчанию при установке каждого приложения установщик Windows каждый раз автоматически создает контрольную точку восстановления системы специально для того, чтобы пользователи могли в случае необходимости восстанавливать состояние компьютера на момент, предшествовавший установке, причем без потери файлов с личными данными. А вот если вы включите данный параметр политики, то вы тем самым запретите установщику Windows создавать такие контрольные точки при установке приложений. Так как их крайне необходимо создавать на регулярной основе, следует установить переключатель на опцию «Отключено» (Disabled);
- Следующий параметр называется «Разрешить применение пакетов исправлений при установке с повышенными правами» (Allow users to patch elevated products). Согласно наименованию данного параметра можно сделать вывод, что, включив его, вы разрешите всем пользователям устанавливать пакеты исправлений даже в том случае, если программа установки запущена с повышенными системными правами. Однако не стоит забывать и о том, что злоумышленники могут внедрять в такие пакеты вирусные файлы и тем самым наносить вред как компьютеру жертвы, так и всем компьютерам компании в целом. Оптимальным вариантом будет отключение текущего параметра, так как в этом случае применять пакеты исправлений при установке с повышенными правами смогут только системные администраторы, публикуя или назначая последние. Этот вариант и выберем, то есть, как видно на следующей иллюстрации, в данном примере останавливаемся на опции «Отключено» (Disabled):
Рис. 3. Запрещаем обычным пользователям применять пакеты исправлений при установке с повышенными правами - Далее по программе у нас параметр «Разрешить пользователям изменять параметры установки» (Allow user control over installs). Это тоже весьма полезный параметр политики, позволяющий разрешать пользователям изменять параметры установки, которые по умолчанию доступны только системным администраторам. Включив этот параметр, некоторые важные средства безопасности установщика Windows, которые работают тогда, когда программа установки запущена в контексте безопасности с повышенными правами и имеет доступ к каталогам, запрещенным для пользователя, будут попросту игнорироваться, что может повлечь за собой самые непредсказуемые последствия. В качестве примера применения этих средств безопасности можно взять сценарий, когда включаются соответствующие разрешения: установочный пакет программного обеспечения разрешает пользователю изменять какой-либо защищенный параметр, в то время как по умолчанию установка уже прервалась бы с соответствующей ошибкой. Если в вашей компании серьезно относятся к безопасности и отключают возможности настоящего параметра, установщик Windows обнаруживает попытку выполнения таких действий, после чего прерывает процесс инсталляции, отображая соответствующее сообщение. В данном примере переключатель также устанавливается на опцию «Отключено» (Disabled);
- Рассмотрим еще несколько параметров. Например, один из них – это параметр «Сохранить копии файлов преобразования в безопасном месте на рабочей станции» (Save copies of transform files in a secure location on workstation). По большому счету, данный параметр предназначен для предотвращения несанкционированного изменения файлов преобразования на предприятиях. Файлы преобразования, или, иначе говоря, трансформации, состоят из неких инструкций, предназначенных для изменения или настройки приложения во время установки. Следовательно, при включении этого параметра файлы трансформации на компьютерах пользователей будут сохраняться в безопасных расположениях. При отключении параметра все файлы трансформации будут сохраняться в папке AppData, которая находится в пользовательском профиле, что считается крайне небезопасно. Поэтому в данном случае переключатель устанавливается на опцию «Включено» (Enable), после чего можно переходить к следующему параметру;
- Последний параметр политики установщика Windows, который мы сегодня с вами рассмотрим, называется «Задать типы событий, записываемых установщиком Windows в журнал транзакций» (Specify the types of events Windows Installer records in its transaction log). При помощи этого параметра политики вы можете определять типы событий, которые будут записываться установщиком Windows в журнал транзакций для установки каждого программного продукта. Записывается эта информация в журнал Msi.log, который можно найти в папке с временными файлами Temp. Для того чтобы указать требуемые режимы, вам следует включить данный параметр и в соответствующем текстовом поле указать такие режимы в виде соответствующих букв. Несмотря на то, что открыв диалоговое окно данного параметра, вы можете их просмотреть, кратко опишу назначение каждого режима:
- I – сообщение о состоянии;
- W – некритические предупреждения;
- E – все сообщения об ошибках;
- A – запуск действий;
- R – записи, специфические для действий;
- U – запросы пользователя;
- C – начальные параметры интерфейса пользователя;
- M – недостаточно памяти;
- P – свойство терминала;
- V – подробный вывод;
- O – сообщение о нехватке свободного места на диске;
- X – дополнительные данные об отладке.
Все эти режимы следует указывать без пробелов и каких-либо прочих разделителей. Например, если вы в соответствующем текстовом поле укажите iwearucmpvox, то в журналы будут регистрироваться все типы событий. Естественно, время установки из-за этого по вполне понятным причинам увеличится. На диалоговое окно данного параметра политики вы можете посмотреть на следующей иллюстрации:
Рис. 4. Определение типов событий для журнала транзакций устанавливаемых приложений
- Прежде всего, это параметр «Отключение установщика Windows» (Turn off Windows Installer). Используя этот параметр политики, вы можете ограничить использование установщика Windows в свой организации. Другими словами, вы можете либо полностью запретить пользователям устанавливать приложения на свои компьютеры, либо разрешить устанавливать только те программы, которые были предложены вами при помощи расширения клиентской стороны «Установка программ». Следовательно, как видно на следующей иллюстрации, включив данный параметр, вы можете выбрать одну из трех доступных опций. Остановившись на опции «Только для необслуживаемых программ», вы тем самым разрешите пользователям устанавливать только те программы, которые были вами назначены или опубликованы. Указав опцию «Всегда», вы полностью запретите использование установщика Windows на пользовательских компьютерах. Если вы выберете опцию «Никогда», то, соответственно, использование установщика Windows будет полностью разрешено. Установим в данном случае переключатель на опцию «Только для необслуживаемых программ»:
- После того как все необходимые параметры будут настроены, можно закрывать редактор управления групповыми политиками и обновлять на целевых компьютерах параметры групповой политики.
Заключение
В этой статье я продолжил рассматривать возможности централизованной инсталляции программных продуктов средствами групповой политики. Была рассмотрена реализация дополнительной кастомизации установщика Windows при помощи предустановленных административных шаблонов. В следующей статье вы узнаете о том, как работает обновление программных продуктов при помощи расширения клиентской стороны «Установка программ». До новых встреч!