Управление виртуальным программным обеспечением с помощью SCCM 2012 SP1 в теории и на практике. В статье рассматриваются назначение и основные настройки виртуализации программ, преимущества и недостатки, трудности при создании и дальнейшем их распространении на пользовательские ПК. 

 

Зачастую программы доступны пользователям только на том компьютере, где они установлены, что вызывает немало сложностей с совместимостью или миграцией, а также восстановлением после сбоев ОС или ПО. Для устранения данной проблемы применяются различные решения, одним из которых является App-V - Application Virtualization (виртуализация приложений). Используя App-V, программы запускаются так, словно локально установлены, при этом не оказывают какого-либо влияния на используемый компьютер, не оставляют следов в операционной системе, что является главным преимуществом. В результате работа с пользовательскими ПК превращается в упрощённый и продуктивный процесс.

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

  • устранение конфликтов программ за счёт их изоляции; 
  • возможность запуска нескольких версий одного продукта одновременно;
  • сокращение времени на тестирование совместимости и обновление приложений;
  • экономия дискового пространства за счет переупаковки традиционных exe-файлов в .appv;
  • отсутствие привязки к рабочему месту.

Однако имеется и перечень недостатков:

  • требуется установка App-V-клиента даже при наличии клиентской части Configuration Manager;
  • сервер SСCM не имеет возможности создания виртуальных приложений, что влечёт за собой необходимость дополнительно использовать Sequencer;
  • нельзя виртуализировать программы, которые встроены в систему (Internet Explorer), устанавливают драйверы (DriverPack), начинают работу до загрузки ОС (PGP), используют COM+ (MS Visual C++, MS Visual Basic), а также антивирусы и обновления.

Для реализации такого направления требуется развертывание определенной инфраструктуры, основой является Application Virtualization из состава MDOP (Microsoft Desktop Optimization Pack) [http://cwer.ws/node/342697], включающая следующие компоненты: Sequencer, базу данных, клиентскую часть, сервер управления, потоковый сервер и консоль управления.

В нашем случае уже имеется установленный Configuration Manager 2012 SP1, управление серверной частью он берёт на себя. Дополнительно нам понадобятся только Sequencer, который создаёт из обычного дистрибутива виртуальное приложение и клиент App-V. Визуально последовательность действий по созданию и управлению виртуальными приложениями можно представить следующим образом (см. рис. 1).

Рисунок 1. Работа виртуальных приложений.

 

Способы доставки

Как и традиционные программы, виртуальное программное обеспечение выполняется на компьютере пользователя. Одной из отличительных черт App-V продуктов является наличие App-V Package Store (виртуального хранилища), а другая - их распределение от сервера клиентам. Так, Configuration Manager поддерживает два метода доставки виртуальных программ – потоковый и локальный. Чтобы понять отличия и места их применения, рассмотрим оба этих подхода.

Потоковый. В кэш SCCM-клиента загружается не App-V приложение, а только файлы динамической конфигурации, на основании которого происходит получение данных от сервера. Клиент App-V при первом запуске помещает некоторую часть программы в виртуальное хранилище. Таким образом происходит изначальная загрузка только нужных пользователю компонентов, а редко используемые функции доставляются по мере необходимости. Это приводит к снижению сетевой нагрузки. Данный способ доставки поддерживается по умолчанию и без дополнительных настроек, и является предпочтительнее для неперемещаемых сотрудников.

Локальный (скачать и выполнить). Клиент Configuration Manager сначала скачивает весь пакет виртуального приложения в кэш, а затем добавляет, публикует и монтирует приложение к системе, после чего, appv-файл помещается в виртуальное хранилище. Такой способ доставки приложения больше подходит для мобильных пользователей.

               

Как это работает?

По запросу пользователя клиент App-V получает список виртуальных приложений с сервера, отображает и выполняет их запуск [http://technet.microsoft.com/ru-ru/magazine/2008.10.appv.aspx] в собственной виртуальной области, которая включает в себя несколько компонентов, в том числе виртуальный реестр, виртуальную файловую систему и диспетчер виртуальных служб.

App-V клиент предоставляет виртуальному приложению доступ к локальной файловой системе при сохранении или изменении файлов, а также позволяет ему взаимодействовать с локальными службами (например, печать) при наличии полномочий пользователя. Любые внесённые изменения виртуальным приложением в файлы локальной системы перенаправляются в виртуальную область, поэтому данные на используемом компьютере остаются нетронутыми. Выполнение программ происходит в полностью изолированном виртуальном окружении, которое называют sandbox (песочницей).

Клиентская часть App-V располагается в C:ProgramDataApp-VClient. В процессе публикации программ выполняются действия по копированию файлов конфигурации, созданию ярлыков рабочего стола, папок меню «Пуск», ссылок «Отправить».

Для установки App-V клиента на Windows 8/8.1 никаких дополнительных компонентов не требуется, а для Windows 7 необходимо следующее:

  • Net Framework 4.0;
  • обновление KB2533623;
  • PowerShell 3.0 (KB2506143);
  • Visual C++ Redistributable 2010 (10.0.40219).

 

Создатель виртуальных приложений

Основой в App-V инфраструктуре является Sequencer. Он представляет собой упаковщик, отслеживающий все зависимости (файлы, папки, ключи и ветки реестра, системные библиотеки) и вносимые изменения по ходу установки программных продуктов, настройка параметров их доставки. Чтобы исключить проблемы с повреждением пакета или добавление ненужных в него данных, на компьютере с установленным Sequencer необходимо закрыть все запущенные программы и отключить некоторые службы (в частности Windows Defender, SMS Agent Host или другие). В идеале, процесс создания App-V приложения должен происходить на “голой” (эталонной) машине. Sequencer к ресурсам компьютера не требователен.

Итак, нам понадобится упаковщик последней версии (5.0), который поддерживает appv-расширение. Выполнение процедуры создания [http://support.microsoft.com/kb/939796] образа виртуального приложения обычно сложностей не вызывает и проходит в режиме “Выбрать-Далее-Готово”. К простым программам можно отнести DWG, Adobe Reader и Flash, Far, браузеры (Google Chrome, Mozilla Firefox, Opera) и другое.

В результате создаются несколько файлов, а именно:

  • .appv – основное виртуальное приложение; 
  • _DeploymentConfig.xml – определяет способ развёртывания созданного приложения на целевых компьютерах;
  • _UserConfig.xml – включает в себя пользовательские конфигурации и определяет способ выполнения виртуальной программы на распространяемой машине;
  • msi-файл используется для инсталляции виртуального приложения;
  • в report.xml – сохраняются предупреждения и ошибки, возникшие во время виртуализации программы.

 

Сложности и неудобства

C более мощным софтом случаются трудности, которые заключаются в дополнительных знаниях и соответствующих действиях. Например, необходимо указать лицензионный ключ, или отключить появление информационных (модальных) окон для пользователя.

К одним из самых востребованных и критичных с точки зрения доступности и совместимости относятся офисные приложения. Например, попытки виртуализировать Word Viewer 2003, Excel Viewer 2003, Visio 2003 или полностью весь пакет MS Office 2003 не вызывают каких-либо проблем и завершаются успешно.

При работе с 2010 версией офиса требуется Office Software Protection Platform (OSPP), что помогает управлять активациями и лицензиями (MAK, KMS, Volume License). Сервис OSPP использует ту же технологию активаций продукта, как и Windows Vista/7/8. [http://technet.microsoft.com/ru-ru/library/jj684298.aspx ,http://support.microsoft.com/kb/2828619 , http://support.microsoft.com/kb/2830069]. Также необходимо подключить к упаковщику Accelerator (ускоритель), с помощью которого и происходит создание appv-файла [4] при этом не отслеживается процесс установки приложения. Таким образом нет необходимости инсталлировать продукт локально. Ускоритель используется для больших и сложных приложений.

Для преобразования MS Office 2013 также придётся выполнить дополнительные действия: скачать и установить Office Deployment Toolkit (ODT) [http://technet.microsoft.com/ru-ru/library/dn481351.aspx , http://blogs.technet.com/b/odsupport/archive/2013/06/19/using-the-office-deployment-tool.aspx] на эталонный ПК. ODT помогает системному администратору управлять установкой файлов-источников и параметрами конфигураций развёртываний Office 2013, потому как создание appv-файла с помощью Sequincer в данном случае не поддерживается. ODT в командном интерпретаторе загружает с интернета необходимые файлы, а затем производит упаковку для получения виртуального приложения, при этом операционная система должна быть 64-разрядная.  

Внесём ещё немного ясности и с уверенностью скажем, что скорость установки виртуальных приложений увеличивается как минимум в 2 раза, потому как их размер уменьшается примерно в 2 раза. Например, Autodesk AutoCad 2013 составляет 2,7 Гб, а после его обработки упаковщиком уменьшается до 1,3 Гб. Adobe FineReader 11 – 800 Мб, а appv-файл стал занимать 470 Мб.

 

Распространение с помощью SCCM

Интеграция App-V с Configuration Manager 2012 SP1 позволяет отказаться от использования серверной части виртуальной инфраструктуры (сервера управления, потокового сервера и консоли управления), используя в работе такие роли как Primary Site (Основной сайт), Management Point (Точка управления), Distribution Point (Точка распространения), Application Catalog (Перечень программ).

 Для App-V приложений в SCCM предоставляются такие же возможности, как и для традиционного ПО. Перечислим основные из них: централизованное управление (exe-, msi-, appv-файлами), инвентаризация программ и устройств, доставка контента с использованием функции Wake-On-Lan, распространение ОС вместе с виртуальными приложениями и некоторые другие.

После инсталляции требуемых компонентов, приступаем к настройке развёртывания клиентской части App-V [http://blogs.technet.com/b/configmgr_geek_speak/archive/2013/04/23/getting-started-with-app-v-5-0-using-configuration-manager-2012.aspx]. Для этого заходим в Software Library->Overview->Application Management, жмём правой кнопкой мыши на Applications (Приложения) и выбираем пункт Create Application (Создать приложение). При наличии установочного msi-файла (App-V версии 5.0) выбираем автоматический способ с помощью Windows Installer, и следуем подсказкам мастера.

Для exe (App-V версии 5.0 SP1SP2) в первом окне останавливаемся на пункте Manually specify the application information. Затем создаём приложение, выбрав тип Script Installer. Здесь к основным вводимым данным относятся: путь к файлу, параметры “тихой” установки и деинсталляции, правило обнаружения (за определение списка опубликованных программ отвечают четыре класса: AppvClientApplication, AppvClientAsset, AppvClientConnectionGroup и AppvclientPackage) и получатель.

Теперь готовое App-V приложение нужно включить в доставку получателя: в разделе Software Library-> Application по нажатию на правую кнопку мыши выбираем Create application. Появляется мастер создания приложений, в первом окне отдаём предпочтение типу Microsoft Application Virtualization 5 и указываем путь к appv-файлу, а в следующем – заполняем необходимые поля (имя, версию, язык, описание и другие). Далее необходимо настроить Deployment Types (Типы распространения). Для этого заходим в его свойства и обращаем внимание на основные параметры, расположенные во вкладках:

  • Content (содержимое) – включает в себя настройки управления кэшем, а также способ доставки приложения; 
  • Publishing (публикация) предоставляет возможность выбрать установку только необходимых компонентов, а лишние отключить (см. рис. 2);
  • Requirements (требования) позволяет сделать более ограниченный список распространения данной программы, например, произвести отбор по характеристикам компьютера (память, дисковое пространство, операционная система, ветки реестра, файл, WMI-запрос либо запустить скрипт) и прочее;
  • в Dependencies (зависимости) определяются другие приложения, без которых требуемое не сможет установиться. Тут стоит выбрать App-V Client. После этого зависимости можно отобразить визуально, нажав кнопку View Relationships и выбрав пункт Dependency (см. рис. 3).

Рисунок 2. Отключение ненужных компонентов.

Рисунок 3. Визуальное отображение зависимых приложений.

Наконец необходимо распространить подготовленное приложение. Для этого выбираем из его контекстного меню пункт “Deploy”. Далее мастер поможет внести нужную информацию, а именно: Devices или Users (коллекцию устройств или пользователей), Distribution Point (Точку распространения), Available или Required (тип установки Доступно или По требованию), Scheduling (Расписание) и другое. Если было выбрано Available, то сотрудник компании самостоятельно может установить виртуальное приложение. Для этого ему нужно зайти в консоль SCCM (Пуск->Все программы->Microsoft System Center 2012->Microsoft Configuration->Software Center) и нажать кнопку Install (Установить).

 

Виртуальные среды SCCM

App-V Virtual Environments (Виртуальные среды) [http://blogs.technet.com/b/configmgrdogs/archive/2013/12/23/understanding-configmgr-2012-app-v-virtual-environments.aspx , http://technet.microsoft.com/ru-ru/library/jj713417.aspx] позволяют администратору определять набор правил, которые оповещают SCCM-клиента о создании группы соединений. Они объединяют 2 и более приложений в единую среду выполнения, устанавливая связь между программами для совместной работы, используя логические операторы ANDOR. Программы в общей виртуальной среде не изолированы друг от друга, что позволяет зависимым (Line of Business и JRE) или парным (MS Office и MS Visio) приложениям иметь полное взаимодействие. Группы соединений предоставляют возможность подключать и запускать виртуальное программное обеспечение в интерактивном режиме.

Виртуальные среды настраиваются следующим образом: в разделе Software Library->Overview->Application Management->App-V Virtual Environments по нажатию правой кнопки мыши выбираем Create Virtual Environment (Создать виртуальную среду). Даём название виртуальной среде и нажимаем кнопку Add, тем самым создавая группу для приложений, где программы имеют приоритет установки (см. рис. 4).

Рисунок 4. Создание виртуальной среды. 

 

Обновления

Как созданием, так и обновлением виртуальных приложений занимается Sequencer. На начальной стадии нужно выбрать второй пункт – Изменение пакета виртуального приложения. Из появившихся 3х вариантов (Обновить приложение в существующем пакете, Изменить пакет, Добавить приложение) выбрать необходимый и следовать подсказкам мастера. Далее модернизированный appv-файл нужно распространить.  

При обновлении [http://technet.microsoft.com/en-us/library/gg682071.aspx , http://technet.microsoft.com/ru-ru/library/jj713453.aspx] программ в SCCM используется функция переопределения. Для этого системному администратору необходимо сделать копию исходного приложения, обновить метаданные и источник развертывания, выбрав в меню Update Content (Обновить содержимое контента), чтобы отразить информацию новой версии. Затем из контекстного меню созданного файла выбрать Properties (Свойства), зайти во вкладку Supersedence (Переопределение), нажать кнопку Add (Добавить) и указать старую программу (см. рис. 5). При этом, если установить флажок Uninstall (Удалить), то Configuration Manager сначала произведёт удаление, затем приступит к развёртыванию “свежего” продукта, но пользовательские настройки будут утеряны. 

Рисунок 5. Переопределение приложения.

 

Как удалять?

Виртуальные приложения не удаляются с компьютера традиционным способом, потому как в Панели управления->Программы и компоненты они попросту отсутствуют.

Одним из вариантов деинсталляции (вручную) программы является консоль Configuration Manager на пользовательском ПК, то есть сотрудник предприятия может принимать участие не только в установке, но и удалении приложений, а эта возможность доступна во вкладке Установленное ПО (см. рис. 6).

Рисунок 6. Удаление программ из SCCM-консоли.

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

Приоритет по установке продукта выше, нежели чем у их деинсталляции. А если применено оба этих процесса, то приложение останется. Поэтому нужно первым делом отменить раздачу инсталляции в группе устройств (или пользователей), а затем настроить (автоматический) процесс удаления программы. Это делается в свойствах коллекции, зайдя в раздел Asset and Compliance->Device Collections. Во вкладке Membership Rules создать Query Rule (Правило запроса) с помощью выбора параметров из выпадающих списков, что в результате представляется в виде набора из строк (см. рис. 7).

Рисунок 7. Пример автоматического удаления App-V приложения.

 

Отчёты

Отчеты помогают системному администратору увидеть на какие компьютеры и какие виртуальные приложения были развернуты, а также информацию о состоянии виртуальных сред. Но по умолчанию App-V отчёты в SCCM отключены, а для их активирования необходимо проделать следующие шаги: заходим в свойства “Default Client Settings” раздела Administration->Client Settings и останавливаемся на Hardware Inventory. Далее жмём кнопку Set Classes, и в появившемся окне среди большого списка WMI-классов устанавливаем галочки AppV Client Application и AppV Client Package. Отчёты становятся доступными в мониторе ресурсов Monitoring->Overview->Reports (см. рис. 8).

Рисунок 8. App-V отчёт.

 

Работа над ошибками

Основными помощниками при наличии ошибок, конечно же, являются журналы, анализ которых позволяет глубоко изучить характер неполадок и предпринять необходимые действия по их устранению. Всю информацию относительно виртуальных приложений можно получить из файлов AppEnforce.log, AppvDiscovery.log, VirtualApp.log, хранящиеся в C:\WindowsCCMLogs, а также в журнале ошибок компьютера: Application and Services Logs->Microsoft->App-V->Client.

Перечислим некоторые ошибки, которые возникали во время работы:

Коды возврата – означают состояния операционной системы или программ и задают им необходимые действия [http://www.paflog.ru/tag/exit-codes/]. При создании виртуального приложения некоторые коды по умолчанию уже присутствуют, но иногда инсталляция софта завершается неудачей, выдавая в консоли SCCM номер ошибки 3010 (или 1603), а в журнале полное описание выглядит так: Unmatched exit code (3010) is considered an execution failure. Выходом из этой ситуации было добавление отсутствующего кода, а делается это в свойствах распространяемого продукта во вкладке Return Сodes.

0x87D00325 (-2016410843) - возникает в том случае, если инсталлятор запускает дочерний процесс, а сам вынужден остановиться. Одним из выходов является установка задержки запуска последующего процесса [http://slblogspot.wordpress.com/2013/07/10/sccm2012-software-installation-error-codes/ , http://sccm.com.ua/?p=2693].

0x87D00324 (-2016410844) – появляется, когда неправильно указаны какие-то параметры (неверный путь к программе или не та ветка реестра и так далее), например, во вкладке Detection Method либо при попытке установить софт на операционную систему с несоответствующей разрядностью [http://slblogspot.wordpress.com/2013/07/10/sccm2012-software-installation-error-codes/ , http://sccm.com.ua/?p=2693].

Существуют также некоторые известные проблемы при работе с MS Office 2010 [http://support.microsoft.com/kb/2481474 , http://blogs.technet.com/b/virtualworld/archive/2013/05/24/app-v-5-0-error-virtual-fonts-subsystem-failure-on-first-launch.aspx].

 

Вывод: Виртуальные приложения имеют большое значение для тех, кому необходима установка софта разных версий. Это позволяет решить основные проблемы с их взаимосовместимостью, дисковым пространством и тестированием. Естественно, потребуется развернуть и настроить App-V инфраструктуру. Такие действия предполагают наличие немалых знаний при планировании и дальнейшем администрировании данного направления. В результате работы с App-V ИТ-специалист получает для себя бесценный опыт, а пользователю создаёт более комфортные условия труда.