Публикация приложений и взаимодействие с клиентом

В этой статье содержатся технические сведения о распространенных операциях клиента App-V и их интеграции с локальной операционной системой.

Дополнительные справочные сведения см. на странице загрузки ресурсов документации по Microsoft Application Virtualization (App-V).

Файлы пакета App-V, созданные Sequencer

Sequencer создает пакеты App-V и виртуализированное приложение. Процесс виртуализации создает следующие файлы:

Файл Описание

APPV-файл

  • Основной файл пакета, который содержит захваченные ресурсы и сведения о состоянии из процесса виртуализации.

  • Архитектура файла пакета, сведений о публикации и реестра в форме с маркерами, которую можно повторно применить к компьютеру и конкретному пользователю после доставки.

.MSI

Исполняемая оболочка развертывания, которую можно использовать для развертывания APPV-файлов вручную или с помощью сторонней платформы развертывания.

_DeploymentConfig.XML

Файл, используемый для настройки параметров публикации по умолчанию для всех приложений в пакете, развернутом глобально для всех пользователей на компьютере с клиентом App-V.

_UserConfig.XML

Файл, используемый для настройки параметров публикации для всех приложений в пакете, развернутом для определенного пользователя на компьютере с клиентом App-V.

Report.xml

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

.CAB

Дополнительные: Файл акселератора пакетов, используемый для автоматического перестроения ранее виртуалированного пакета виртуального приложения.

.appvt

Дополнительные: Файл шаблона Sequencer, используемый для хранения часто используемых параметров Sequencer.

Сведения о виртуализации см. в руководстве по виртуализации приложений 5.0.

Что находится в файле appv?

Файл appv — это контейнер, в котором xml-файлы и файлы, отличные от XML, хранятся в одной сущности. Этот файл создан на основе формата AppX, основанного на стандарте Open Packaging Conventions (OPC).

Чтобы просмотреть содержимое файла appv, создайте копию пакета, а затем переименуйте скопированный файл в расширение ZIP.

Файл appv содержит следующие папки и файлы, которые используются при создании и публикации виртуального приложения:

Имя Тип Описание

Корень

Папка файла

Каталог, содержащий файловую систему для виртуализированного приложения, записанного во время виртуализации.

[Content_Types].xml

XML-файл

Список основных типов контента в файле appv (e.g. DLL, EXE, BIN).

AppxBlockMap.xml

XML-файл

Макет файла appv, в котором используются элементы File, Block и BlockMap, которые обеспечивают размещение и проверку файлов в пакете App-V.

AppxManifest.xml

XML-файл

Метаданные для пакета, содержащего необходимые сведения для добавления, публикации и запуска пакета. Включает точки расширения (сопоставления типов файлов и ярлыки), а также имена и идентификаторы GUID, связанные с пакетом.

FilesystemMetadata.xml

XML-файл

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

PackageHistory.xml

XML-файл

Сведения о компьютере виртуализации (версия операционной системы, версия интернет-Обозреватель, версия .NET Framework) и процессе (обновление, версия пакета).

Registry.dat

DAT-файл

Разделы реестра и значения, зафиксированные в процессе виртуализации пакета.

StreamMap.xml

XML-файл

Список файлов для основного блока компонентов и блока компонентов публикации. Блок функций публикации содержит файлы ICO и необходимые части файлов (EXE и DLL) для публикации пакета. При наличии основной функциональный блок включает файлы, оптимизированные для потоковой передачи во время процесса виртуализации.

Расположения клиентских хранилищ данных App-V

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

Имя Расположение Описание

Хранилище пакетов

%ProgramData%\App-V

Расположение по умолчанию для файлов пакета только для чтения

Каталог компьютеров

%ProgramData%\Microsoft\AppV\Client\Catalog

Содержит документы по конфигурации для каждого компьютера.

Каталог пользователей

%AppData%\Microsoft\AppV\Client\Catalog

Содержит документы конфигурации для каждого пользователя

Сочетания резервных копий

%AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups

Сохраняет предыдущие точки интеграции, которые обеспечивают восстановление при отмене публикации пакета

Копирование в роуминге для записи (COW)

%AppData%\Microsoft\AppV\Client\VFS

Перемещаемое расположение с возможностью записи для изменения пакета

Копирование при записи (COW) local

%LocalAppData%\Microsoft\AppV\Client\VFS

Записываемое не перемещаемое расположение для изменения пакета

Реестр компьютеров

HKLM\Software\Microsoft\AppV

Содержит сведения о состоянии пакета, включая VReg для компьютерных или глобально опубликованных пакетов (куст компьютера)

Реестр пользователей

HKCU\Software\Microsoft\AppV

Содержит сведения о состоянии пользовательского пакета, включая VReg.

Классы реестра пользователей

HKCU\Software\Classes\AppV

Содержит дополнительные сведения о состоянии пользовательского пакета.

Дополнительные сведения о таблице приведены в разделе ниже и во всем документе.

Хранилище пакетов

Клиент App-V управляет ресурсами приложений, подключенными в хранилище пакетов. Хранилище по умолчанию — %ProgramData%\App-V, но его можно настроить во время или после установки с помощью Set-AppVClientConfiguration команды PowerShell, которая изменяет локальный реестр (PackageInstallationRoot значение в HKLM\Software\Microsoft\AppV\Client\Streaming разделе). Хранилище пакетов должно находиться по локальному пути в клиентской операционной системе. Отдельные пакеты хранятся в хранилище пакетов в подкаталогах с именем GUID пакета и guid версии.

Пример пути к конкретному приложению:

C:\ProgramData\App-V\PackGUID\VersionGUID

Сведения об изменении расположения хранилища пакетов по умолчанию во время установки см. в статье Развертывание клиента App-V.

Общее хранилище содержимого

Если клиент App-V настроен в режиме общего хранилища содержимого, данные не записываются на диск при сбое потока. Это означает, что пакетам требуется минимальное место на локальном диске (данные публикации). Использование меньшего места на диске очень желательно в средах VDI, где локальное хранилище может быть ограничено, а потоковая передача приложений из высокопроизводительного сетевого расположения (например, san) предпочтительнее. Дополнительные сведения о режиме общего хранилища содержимого см. в разделе https://go.microsoft.com/fwlink/p/?LinkId=392750.

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

Каталоги пакетов

Клиент App-V управляет следующими двумя расположениями на основе файлов:

  • Каталоги (пользователь и компьютер).

  • Расположение реестра зависит от того, как пакет предназначен для публикации. Существует каталог (хранилище данных) для компьютера и каталог для каждого отдельного пользователя. Каталог компьютеров хранит глобальную информацию, применимую ко всем пользователям или любому пользователю, а в каталоге пользователей — сведения, применимые к конкретному пользователю. Каталог — это коллекция динамических конфигураций и файлов манифеста; для каждой версии пакета существуют дискретные данные как для файла, так и для реестра. 

Каталог компьютеров

Описание

Хранит документы пакета, доступные пользователям на компьютере при добавлении и публикации пакетов. Однако если пакет является "глобальным" во время публикации, интеграции доступны всем пользователям.

Если пакет не является глобальным, интеграции публикуются только для определенных пользователей, но по-прежнему существуют глобальные ресурсы, которые изменяются и видны всем пользователям на клиентском компьютере (например, каталог пакета находится в расположении общего диска).

Если пакет доступен пользователю на компьютере (глобальный или не глобальный), манифест хранится в каталоге компьютеров. При глобальной публикации пакета имеется файл динамической конфигурации, хранящийся в каталоге компьютеров; Таким образом, определение того, является ли пакет глобальным, определяется в зависимости от наличия файла политики (userDeploymentConfiguration) в каталоге компьютеров.

Расположение хранилища по умолчанию

%programdata%\Microsoft\AppV\Client\Catalog</code>

Это расположение не совпадает с расположением хранилища пакетов. Хранилище пакетов — это золотая или нетронутая копия файлов пакета.

Файлы в каталоге компьютеров

  • Manifest.xml

  • DeploymentConfiguration.xml

  • UserManifest.xml (глобально опубликованный пакет)

  • UserDeploymentConfiguration.xml (глобально опубликованный пакет)

Дополнительное расположение каталога компьютеров, используемое, когда пакет входит в группу подключений

В дополнение к конкретному расположению пакета, указанному выше, приведено следующее расположение:

%programdata%\Microsoft\AppV\Client\Catalog\PackageGroups\ConGroupGUID\ConGroupVerGUID

Дополнительные файлы в каталоге компьютеров, если пакет входит в группу подключений

  • PackageGroupDescriptor.xml

  • UserPackageGroupDescriptor.xml (глобально опубликованная группа подключений)

Каталог пользователей

Описание

Создано в процессе публикации. Содержит сведения, используемые для публикации пакета, а также используемые при запуске, чтобы обеспечить подготовку пакета для определенного пользователя. Создано в перемещаемом расположении и содержит сведения о публикации, относящиеся к пользователю.

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

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

Расположение хранилища по умолчанию

appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID

Файлы в пользовательском каталоге

  • UserManifest.xml

  • DynamicConfiguration.xml или UserDeploymentConfiguration.xml

Дополнительное расположение каталога пользователей, используемое, когда пакет является частью группы подключений

В дополнение к конкретному расположению пакета, указанному выше, приведено следующее расположение:

appdata\roaming\Microsoft\AppV\Client\Catalog\PackageGroups\PkgGroupGUID\PkgGroupVerGUID

Дополнительный файл в каталоге компьютеров, если пакет входит в группу подключений

UserPackageGroupDescriptor.xml

Сочетания резервных копий

Во время публикации клиент App-V создает резервную копию всех ярлыков и точек интеграции в %AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups. эту резервную копию, чтобы восстановить эти точки интеграции в предыдущих версиях, когда пакет не опубликован.

Копирование в файлы записи

Хранилище пакетов содержит нетронутую копию файлов пакета, которые были потоковой передачи с сервера публикации. Во время обычной работы приложения App-V пользователю или службе может потребоваться изменить файлы. Эти изменения не вносятся в хранилище пакетов, чтобы сохранить возможность восстановления приложения, которое удаляет эти изменения. Эти расположения, называемые Copy on Write (COW), поддерживают как перемещаемые, так и не перемещаемые расположения. Расположение, в котором хранятся изменения, зависит от того, где приложение запрограммировано на запись изменений в собственном интерфейсе.

Роуминг COW

В описанной выше папке COW Roaming хранятся изменения в файлах и каталогах, предназначенных для типичного расположения %AppData% или \Users\{username}\AppData\Roaming. Затем эти каталоги и файлы перемещаются в зависимости от параметров операционной системы.

COW local

Расположение COW Local аналогично расположению в роуминге, но каталоги и файлы не перемещаются на другие компьютеры, даже если настроена поддержка роуминга. В описанной выше локальной папке COW хранятся изменения, применимые к типичным окнам, а не к расположению %AppData%. Перечисленные каталоги будут отличаться, но для любых типичных расположений Windows будет два расположения (например, Common AppData и Common AppDataS). S обозначает ограниченное расположение, когда виртуальная служба запрашивает изменение в качестве другого пользователя с повышенными привилегиями от пользователей, вошедшего в систему. В расположении, отличном от S , хранятся изменения на основе пользователей.

Реестр пакетов

Прежде чем приложение сможет получить доступ к данным реестра пакетов, клиент App-V должен сделать данные реестра пакетов доступными для приложений. Клиент App-V использует реальный реестр в качестве резервного хранилища для всех данных реестра.

При добавлении нового пакета в клиент App-V создается копия реестра. DAT-файл из пакета создается в .%ProgramData%\Microsoft\AppV\Client\VREG\{Version GUID}.dat Имя файла — это GUID версии с . Расширение DAT. Причина создания этой копии заключается в том, чтобы убедиться, что фактический файл Hive в пакете никогда не используется, что предотвратит удаление пакета позже.

Registry.dat из хранилища пакетов

 > 

%ProgramData%\Microsoft\AppV\Client\Vreg{VersionGuid}.dat

Когда первое приложение из пакета запускается на клиенте, клиент выполняет или копирует содержимое из файла Hive, повторно создавая данные реестра пакетов в альтернативном расположении HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages\PackageGuid\Versions\VersionGuid\REGISTRY. Промежуточные данные реестра имеют два разных типа данных компьютера и данных пользователя. Данные компьютера совместно используются всеми пользователями на компьютере. Данные пользователя поэтапно переноситься для каждого пользователя в определенное пользователем расположение HKCU\Software\Microsoft\AppV\Client\Packages\PackageGuid\Registry\User. Данные компьютера в конечном итоге удаляются во время удаления пакета, а данные пользователя удаляются в операции отмены публикации пользователя.

Промежуточное хранение реестра пакетов и промежуточное хранение реестра группы подключений

При наличии групп подключений предыдущий процесс промежуточного хранения реестра имеет значение true, но вместо одного файла Hive для обработки их несколько. Файлы обрабатываются в том порядке, в котором они отображаются в XML-файле группы соединений, при этом первый модуль записи выигрывает все конфликты.

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

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

Цель виртуального реестра (VREG) — предоставить приложениям единое объединенное представление реестра пакетов и собственного реестра. Он также предоставляет функции копирования при записи (COW), то есть любые изменения, внесенные в реестр из контекста виртуального процесса, вносятся в отдельное расположение COW. Это означает, что VREG должен объединить до трех отдельных расположений реестра в единое представление на основе заполненных расположений в реестре COW —> package —> native. Когда выполняется запрос на данные реестра, он будет находить по порядку, пока не найдет запрашивавшиеся данные. Это означает, что при наличии значения, хранящегося в расположении COW, оно не будет переходить в другие расположения, однако, если в расположении COW нет данных, он будет переходить к пакету, а затем к расположению Native, пока не найдет соответствующие данные.

Расположения реестра

Существует два расположения реестра пакетов и две группы подключений, в которых клиент App-V хранит сведения о реестре в зависимости от того, публикуется ли пакет отдельно или в составе группы подключений. Существует три расположения COW для пакетов и три для групп соединений, которые создаются И управляются VREG. Параметры для пакетов и групп соединений не используются:

VReg для одного пакета:

Расположение

Описание

КОРОВА

  • Реестр компьютеров\Client\Packages\PkgGUID\REGISTRY (запись может выполняться только процесс повышения уровня)

  • User Registry\Client\Packages\PkgGUID\REGISTRY (Перемещение пользователем всех записей, записанных в HKCU, кроме Software\Classes

  • Классы реестра пользователей\Client\Packages\PkgGUID\REGISTRY (HKCU\Software\Classes writes и HKLM для процесса без повышенных привилегий)

Пакет

  • Реестр компьютеров\Client\Packages\PkgGUID\Versions\VerGuid\Registry\Machine

  • Классы реестра пользователей\Client\Packages\PkgGUID\Versions\VerGUID\Registry

Родной

  • Расположение собственного реестра приложений

VReg группы подключений:

Расположение

Описание

КОРОВА

  • Реестр компьютеров\Клиент\PackageGroups\GrpGUID\REGISTRY (только процесс повышения прав может записывать)

  • User Registry\Client\PackageGroups\GrpGUID\REGISTRY (все, что записывается в HKCU, кроме Software\Classes

  • Классы реестра пользователей\Client\PackageGroups\GrpGUID\REGISTRY

Пакет

  • Реестр компьютеров\Client\PackageGroups\GrpGUID\Versions\VerGUID\REGISTRY

  • Классы реестра пользователей\Client\PackageGroups\GrpGUID\Versions\VerGUID\REGISTRY

Родной

  • Расположение собственного реестра приложений

Есть два расположения COW для HKLM; процессы с повышенными и без повышенных привилегий. Процессы с повышенными привилегиями всегда записывают изменения HKLM в защищенный COW в HKLM. Процессы без повышенных привилегий всегда записывают изменения HKLM в небезопасную COW в разделе HKCU\Software\Classes. Когда приложение считывает изменения из HKLM, процессы с повышенными привилегиями считывают изменения из защищенного COW в HKLM. Не повышенные значения считываются из обоих типов, в первую очередь в пользу изменений, внесенных в небезопасную COW.

Сквозные ключи

Ключи сквозной передачи позволяют администратору настроить определенные ключи так, чтобы их можно было считывать только из собственного реестра, минуя расположения Пакетов и COW. Места передачи являются глобальными для компьютера (не для конкретного пакета) и могут быть настроены путем добавления пути к ключу, который должен обрабатываться как сквозной, в значение REG_MULTI_SZс именем PassThroughPaths ключа HKLM\Software\Microsoft\AppV\Subsystem\VirtualRegistry. Любой ключ, который отображается в этом многостроковом значении (и его дочерних элементах), будет обрабатываться как сквозной.

Следующие расположения по умолчанию настроены в качестве транзитных расположений:

  • HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel

  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger

  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies

  • HKEY_CURRENT_USER\SOFTWARE\Policies

Цель сквозных ключей — убедиться, что виртуальное приложение не записывает данные реестра в VReg, необходимые для не виртуальных приложений для успешной работы или интеграции. Ключ Политики гарантирует, что параметры на основе групповая политика, заданные администратором, используются, а не для параметров пакета. Ключ AppModel необходим для интеграции с приложениями на основе современного пользовательского интерфейса Windows. Рекомендуется, чтобы администраторы не изменяли ключи сквозной передачи по умолчанию, но в некоторых случаях в зависимости от поведения приложения может потребоваться добавление дополнительных сквозных ключей.

Поведение хранилища пакетов App-V

App-V 5 управляет хранилищем пакетов, которое является расположением, где хранятся развернутые файлы ресурсов из файла appv. По умолчанию это расположение хранится в папке %ProgramData%\App-V и ограничено с точки зрения возможностей хранилища только свободным местом на диске. Хранилище пакетов организовано по идентификаторам GUID для пакета и версии, как упоминалось в предыдущем разделе.

Добавление пакетов

Пакеты App-V размещаются при добавлении к компьютеру с помощью клиента App-V. Клиент App-V обеспечивает промежуточное хранение по запросу. Во время публикации или вручную Add-AppVClientPackage структура данных создается в хранилище пакетов (c:\programdata\App-V\{PkgGUID}\{VerGUID}). Файлы пакетов, определенные в блоке публикации, определенном в StreamMap.xml, добавляются в систему, а папки верхнего уровня и дочерние файлы размещаются, чтобы обеспечить наличие соответствующих ресурсов приложения при запуске.

Подключение пакетов

Пакеты можно явно загрузить с помощью PowerShell Mount-AppVClientPackage или пользовательского интерфейса клиента App-V , чтобы скачать пакет. Эта операция полностью загружает весь пакет в хранилище пакетов.

Пакеты потоковой передачи

Клиент App-V можно настроить для изменения поведения потоковой передачи по умолчанию. Все политики потоковой передачи хранятся в следующем разделе реестра: HKEY_LOCAL_MAcHINE\Software\Microsoft\AppV\Client\Streaming. Политики задаются с помощью командлета Set-AppvClientConfigurationPowerShell . К потоковой передаче применяются следующие политики:

Политика Описание

AllowHighCostLaunch

На Windows 8 он позволяет выполнять потоковую передачу по сетям 3G и сотовой связи

Автозагрузки

Задает параметр Фоновая загрузка:

0 — отключено

1 — только ранее использовавшиеся пакеты

2 . Все пакеты

PackageInstallationRoot

Корневая папка для хранилища пакетов на локальном компьютере

PackageSourceRoot

Корневое переопределение, из которого следует передавать пакеты

SharedContentStoreMode

Позволяет использовать общее хранилище содержимого для сценариев VDI.

Эти параметры влияют на поведение потоковой передачи ресурсов пакета App-V в клиент. По умолчанию App-V скачивает только ресурсы, необходимые после скачивания начальной публикации и основных функциональных блоков. Существует три конкретных поведения пакетов потоковой передачи, которые необходимо объяснить:

  • Фоновая потоковая передача

  • Оптимизированная потоковая передача

  • Ошибки потоковой передачи

Фоновая потоковая передача

Командлет Get-AppvClientConfiguration PowerShell можно использовать для определения текущего режима фоновой потоковой передачи с помощью параметра Автозагрузки и изменения с помощью командлета Set-AppvClientConfiguration или из реестра (HKLM\SOFTWARE\Microsoft\AppV\ClientStreaming). Фоновая потоковая передача — это параметр по умолчанию, в котором параметр автозагрузки настроен на скачивание ранее использовавшихся пакетов. Поведение, основанное на параметре по умолчанию (value=1), загружает блоки данных App-V в фоновом режиме после запуска приложения. Этот параметр можно отключить все вместе (value=0) или включить для всех пакетов (value=2), независимо от того, были ли они запущены.

Оптимизированная потоковая передача

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

Ошибки потоковой передачи

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

Дополнительные сведения о потоковой передаче пакета App-V см. в разделе https://go.microsoft.com/fwlink/?LinkId=392770.

Виртуализация для оптимизации потоковой передачи доступна по адресу : https://go.microsoft.com/fwlink/?LinkId=392771.

Обновления пакетов

Пакеты App-V требуют обновления на протяжении всего жизненного цикла приложения. Обновления пакетов App-V похожи на операцию публикации пакета, так как каждая версия будет создаваться в собственном расположении PackageRoot: %ProgramData%\App-V\{PkgGUID}\{newVerGUID}. Операция обновления оптимизирована путем создания жестких ссылок на идентичные и потоковые файлы из других версий того же пакета.

Удаление пакета

Поведение клиента App-V при удалении пакетов зависит от метода, используемого для удаления. При использовании полной инфраструктуры App-V для отмены публикации приложения файлы каталога пользователей (каталог компьютеров для глобально опубликованных приложений) удаляются, но сохраняются расположение хранилища пакетов и расположения COW. Если командлет Remove-AppVClientPackge PowerShell используется для удаления пакета App-V, расположение хранилища пакетов очищается. Помните, что при отмене публикации пакета App-V на сервере управления операция удаления не выполняется. Ни один из операций не приведет к удалению файлов пакета хранилища пакетов.

Перемещаемый реестр и данные

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

Требования к роумингу и хранилище данных каталога пользователей

App-V хранит данные, представляющие состояние каталога пользователя, в виде:

  • Файлы в папке %appdata%\Microsoft\AppV\Client\Catalog

  • Параметры реестра в разделе HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages

Вместе эти файлы и параметры реестра представляют каталог пользователя, поэтому оба файла должны быть перемещаются или не должны перемещаться для данного пользователя. App-V не поддерживает перемещение %AppData%, но не перемещает профиль пользователя (реестр) или наоборот.

Примечание Командлет Repair-AppvClientPackage не восстанавливает состояние публикации пакетов, где состояние HKEY_CURRENT_USER App-V пользователя отсутствует или не соответствует данным в %appdata%.

Данные на основе реестра

Перемещение реестра App-V происходит в двух сценариях, как показано в следующей таблице.

Сценарий Описание

Приложения, выполняемые от имени обычных пользователей

Когда обычный пользователь запускает приложение App-V, HKLM и HKCU для приложений App-V хранятся в кусте HKCU на компьютере. Это представляет собой два разных пути:

  • HKLM: HKCU\SOFTWARE\Classes\AppV\Client\Packages{PkgGUID}\REGISTRY\MACHINE\SOFTWARE

  • HKCU: HKCU\SOFTWARE\Microsoft\AppV\Client\Packages{PkgGUID}\REGISTRY\USER{UserSID}\SOFTWARE

Расположения включены для перемещения в зависимости от параметров операционной системы.

Приложения, которые выполняются с повышением прав

При запуске приложения с повышением прав:

  • Данные HKLM хранятся в кусте HKLM на локальном компьютере

  • Данные HKCU хранятся в расположении реестра пользователей

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

  • HKLM\SOFTWARE\Microsoft\AppV\Client\Packages{PkgGUID}{UserSID}\REGISTRY\MACHINE\SOFTWARE

  • HKCU\SOFTWARE\Microsoft\AppV\Client\Packages{PkgGUID}\Registry\User{UserSID}\SOFTWARE

Перенаправление app-V и папок

App-V 5.0 с пакетом обновления 2 (SP2) поддерживает перенаправление папок перемещаемой папки AppData (%AppData%). При запуске виртуальной среды перемещающееся состояние AppData из перемещаемого каталога AppData пользователя копируется в локальный кэш. И наоборот, при завершении работы виртуальной среды локальный кэш, связанный с перемещаемым AppData определенного пользователя, передается в фактическое расположение перемещаемого каталога AppData этого пользователя.

Типичный пакет имеет несколько расположений, сопоставленных в резервном хранилище пользователя для параметров в AppData\Local и AppData\Roaming. Это расположения копирования на запись, которые хранятся для каждого пользователя в профиле пользователя и используются для хранения изменений, внесенных в каталоги VFS пакета, и для защиты пакета VFS по умолчанию.

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

Каталог VFS в пакете Сопоставленное расположение резервного хранилища

ProgramFilesX86

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\ProgramFilesX86

SystemX86

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\SystemX86

Windows

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\Windows

appv_ROOT

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\appv_ROOT

Appdata

C:\users\jsmith\AppData<strong>Roaming\Microsoft\AppV\Client\VFS< GUID>\AppData

В следующей таблице показаны локальные и перемещаемые расположения, когда перенаправление папок реализовано для %AppData%, а расположение перенаправляется (обычно в сетевое расположение).

Каталог VFS в пакете Сопоставленное расположение резервного хранилища

ProgramFilesX86

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\ProgramFilesX86

SystemX86

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\SystemX86

Windows

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\Windows

appv_ROOT

C:\users\jsmith\AppData<strong>Local\Microsoft\AppV\Client\VFS< GUID>\appv_ROOT

Appdata

\Fileserver\users\jsmith\roaming\Microsoft\AppV\Client\VFS< GUID>\AppData

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

  1. Во время публикации или запуска виртуальной среды клиент App-V обнаруживает расположение каталога AppData.

  2. Если перемещаемый путь AppData является локальным или сопоставляется расположение AppData\Roaming ino, ничего не происходит.

  3. Если перемещаемый путь AppData не является локальным, каталог AppData VFS сопоставляется с локальным каталогом AppData.

Этот процесс решает проблему не локального %AppData%, который не поддерживается драйвером VFS клиента App-V. Однако данные, хранящиеся в этом новом расположении, не перемещаются с перенаправлением папок. Все изменения во время выполнения приложения происходят в локальном расположении AppData и должны быть скопированы в перенаправленное расположение. Подробные шаги этого процесса:

  1. Приложение App-V завершает работу, что приводит к закрытию виртуальной среды.

  2. Локальный кэш перемещаемого расположения AppData сжимается и сохраняется в ZIP-файле.

  3. Метка времени в конце процесса упаковки ZIP используется для присвоения имени файла.

  4. Метка времени записывается в реестр: HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages\<GUID>\AppDataTime в качестве последней известной метки времени AppData.

  5. Процесс перенаправления папок вызывается для оценки и запуска ZIP-файла, отправленного в перемещаемый каталог AppData.

Метка времени используется для определения сценария "последний модуль побеждает", если возникает конфликт, и используется для оптимизации загрузки данных при публикации приложения App-V или запуске виртуальной среды. Перенаправление папок сделает данные доступными от любых других клиентов, на которые распространяется поддерживающая политика, и инициирует процесс хранения данных AppData\Roaming в локальном расположении AppData на клиенте. Подробные процессы:

  1. Пользователь запускает виртуальную среду, запуская приложение.

  2. Виртуальная среда приложения проверяет наличие последнего ZIP-файла с метками времени, если он имеется.

  3. Реестр проверяется на наличие последней переданной метки времени, если она имеется.

  4. Последний ZIP-файл скачивается, если только локальная метка времени последней известной отправки не превышает отметку времени из ZIP-файла или равна ей.

  5. Если локальная метка времени последней известной отправки раньше, чем у последнего ZIP-файла в перемещаемом расположении AppData, ZIP-файл извлекается в локальный временный каталог в профиле пользователя.

  6. После успешного извлечения ZIP-файла локальный кэш перемещаемого каталога AppData переименовывается, а новые данные перемещаются на место.

  7. Переименованный каталог удаляется, и приложение открывается с последними сохраненными перемещаемыми данными AppData.

Это завершает успешное перемещение параметров приложения, присутствующих в расположениях AppData\Roaming. Единственным другим условием, которое необходимо устранить, является операция восстановления пакета. Ниже приведены сведения о процессе.

  1. Во время восстановления определите, не является ли путь к перемещаемой папке AppData пользователя локальным.

  2. Сопоставляйте целевые объекты пути AppData, не относящиеся к локальному роумингу, повторно создаются ожидаемые перемещаемые и локальные расположения AppData.

  3. Удалите метку времени, хранящуюся в реестре, если она есть.

Этот процесс повторно создаст локальные и сетевые расположения для AppData и удалит запись реестра метки времени.

Управление жизненным циклом клиентского приложения App-V

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

В этом документе рассматриваются решения для полной инфраструктуры App-V. Конкретные сведения об интеграции App-V с Configuration Manager 2012 см. в статье Поддерживаемые конфигурации App-V.

Задачи жизненного цикла приложения App-V активируются при входе пользователя (по умолчанию), запуске компьютера или в качестве фоновых операций с временным временем. Параметры операций клиента App-V, включая серверы публикации, интервалы обновления, включение скрипта пакета и другие, настраиваются во время установки клиента или после установки с помощью команд PowerShell. См. раздел Развертывание клиента в TechNet по адресу: Развертывание клиента App-V или использование PowerShell:

get-command *appv*

Обновление публикации

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

  • Add-AppVPublishingServer: Настраивает клиент с сервером публикации App-V, который предоставляет пакеты App-V.

  • Set-AppVPublishingServer: Изменяет текущие параметры сервера публикации App-V.

  • Set-AppVClientConfiguration: Изменяет текущие параметры для клиента App-V.

  • Sync-AppVPublishingServer: Инициирует процесс обновления публикации App-V вручную. Это также используется в запланированных задачах, созданных во время настройки сервера публикации.

В следующих разделах основное внимание уделяется подробным сведениям об операциях, выполняемых на разных этапах обновления публикации App-V. Ниже приведены следующие темы:

  • Добавление пакета App-V

  • Публикация пакета App-V

Добавление пакета App-V

Добавление пакета App-V в клиент является первым этапом процесса обновления публикации. Конечный результат такой же, как Add-AppVClientPackage и командлет в PowerShell, за исключением того, что во время добавления обновления публикации с настроенным сервером публикации связывается и передает клиенту высокоуровневый список приложений, чтобы получить более подробные сведения, а не одну операцию добавления пакета. Процесс продолжается путем настройки клиента для добавления или обновления пакетов или групп соединений, а затем обращается к файлу appv. Затем содержимое файла appv разворачивается и помещается в локальную операционную систему в соответствующих расположениях. Ниже приведен подробный рабочий процесс процесса при условии, что пакет настроен для потоковой передачи ошибок.

Добавление пакета App-V

  1. Запуск вручную с помощью PowerShell или запуска последовательности задач процесса обновления публикации.

    1. Клиент App-V устанавливает HTTP-подключение и запрашивает список приложений на основе целевого объекта. Процесс обновления публикации поддерживает ориентацию на компьютеры или пользователей.

    2. Сервер публикации App-V использует удостоверение инициирующего целевого объекта, пользователя или компьютера, и запрашивает в базе данных список озаглавленных приложений. Список приложений предоставляется в виде XML-ответа, который клиент использует для отправки дополнительных запросов на сервер для получения дополнительных сведений по каждому пакету.

  2. Агент публикации на клиенте App-V выполняет все действия, приведенные ниже сериализованных.

    Оцените все группы подключений, которые не опубликованы или отключены, так как обновления версии пакета, входящие в группу подключений, не могут быть обработаны.

  3. Настройте пакеты, определив операции добавления или обновления.

    1. Клиент App-V использует API AppX из Windows и обращается к файлу appv с сервера публикации.

    2. Откроется файл пакета, а AppXManifest.xml и StreamMap.xml скачиваются в хранилище пакетов.

    3. Полностью потоковая публикация данных блока, определенного в StreamMap.xml. Хранит данные блока публикации в хранилище пакетов\PkgGUID\VerGUID\Root.

      • Значки: целевые объекты точек расширения.

      • Переносимые исполняемые заголовки (pe headers) — целевые объекты точек расширения, которые содержат базовые сведения об образе, необходимом на диске, с прямым доступом или через типы файлов.

      • Scripts: скачайте каталог scripts для использования в процессе публикации.

    4. Заполните хранилище пакетов:

      1. Создание разреженных файлов на диске, представляющих извлеченный пакет для всех перечисленных каталогов.

      2. Размещение файлов и каталогов верхнего уровня в корневом каталоге.

      3. Все остальные файлы создаются, когда каталог отображается как разреженный на диске и передается по запросу.

    5. Создайте записи каталога компьютеров. Создайте Manifest.xml и DeploymentConfiguration.xml из файлов пакета (если в пакете нет DeploymentConfiguration.xml файла, создается заполнитель).

    6. Создание расположения хранилища пакетов в реестре HKLM\Software\Microsoft\AppV\Client\Packages\PkgGUID\Versions\VerGUID\Catalog

    7. Создайте файл Registry.dat из хранилища пакетов в папку %ProgramData%\Microsoft\AppV\Client\VReg\{VersionGUID}.dat

    8. Регистрация пакета с помощью драйвера режима ядра App-V HKLM\Microsoft\Software\AppV\MAV

    9. Вызов скриптов из файла AppxManifest.xml или DeploymentConfig.xml для времени добавления пакета.

  4. Настройте группы подключений, добавив и включив или отключив их.

  5. Удалите объекты, которые не опубликованы в целевом объекте (пользователь или компьютер).

    Примечание Это не приведет к удалению пакета, а к удалению точек интеграции для конкретного целевого объекта (пользователя или компьютера) и к удалению файлов каталога пользователей (файлов каталога компьютеров для глобальной публикации).

  6. Вызов подключения фоновой нагрузки в зависимости от конфигурации клиента.

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

    Примечание Это условие возникает как результат удаления без отмены публикации с фоновым добавлением пакета.

На этом завершается добавление пакета App-V процесса обновления публикации. Следующий шаг — публикация пакета для конкретного целевого объекта (компьютера или пользователя).

пакет добавляет данные файла и реестра.

Публикация пакета App-V

Во время операции обновления публикации конкретная операция публикации (Publish-AppVClientPackage) добавляет записи в пользовательский каталог, сопоставляет права с пользователем, определяет локальное хранилище и завершает все шаги интеграции. Ниже приведены подробные инструкции.

Как опубликовать пакет App-V и

  1. Записи пакета добавляются в пользовательский каталог

    1. Пакеты, предназначенные для пользователей: UserDeploymentConfiguration.xml и UserManifest.xml размещаются на компьютере в каталоге пользователей.

    2. Пакеты, предназначенные для компьютеров (глобальные): UserDeploymentConfiguration.xml размещается в каталоге компьютеров

  2. Регистрация пакета с помощью драйвера режима ядра для пользователя в HKLM\Software\Microsoft\AppV\MAV

  3. Выполнение задач интеграции.

    1. Создание точек расширения.

    2. Храните сведения о резервном копировании в реестре пользователя и перемещаемом профиле (сочетания резервных копий).

      Примечание Это позволяет восстановить точки расширения, если пакет не опубликован.

    3. Выполнение скриптов, предназначенных для времени публикации.

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

пакет добавляет данные файла и реестра — глобальные.

Запуск приложения

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

Запуск приложений App-V

  1. Пользователь запускает приложение, щелкнув вызов ярлыка или типа файла.

  2. Клиент App-V проверяет наличие в пользовательском каталоге следующих файлов.

    • UserDeploymentConfiguration.xml

    • UserManifest.xml

  3. Если файлы присутствуют, приложение имеет право на этот конкретный пользователь, и приложение запустит процесс запуска. На данный момент сетевой трафик отсутствует.

  4. Затем клиент App-V проверяет, найден ли в реестре путь для пакета, зарегистрированного для службы клиента App-V.

  5. При поиске пути к хранилищу пакетов создается виртуальная среда. Если это первый запуск, основной блок компонентов скачивается, если он присутствует.

  6. После скачивания клиентская служба App-V использует файлы конфигурации манифеста и развертывания для настройки виртуальной среды, и загружаются все подсистемы App-V.

  7. Запускается приложение. Для всех отсутствующих файлов в хранилище пакетов (разреженных файлов) App-V будет выполнять потоковую передачу ошибок файлов по мере необходимости.

    пакет добавляет файл и данные реестра — поток.

Обновление пакета App-V

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

Обновление пакета App-V

  1. Клиент App-V выполняет обновление публикации и обнаруживает более новую версию пакета App-V.

  2. Записи пакета добавляются в соответствующий каталог для новой версии.

    1. Пакеты, предназначенные для пользователей: UserDeploymentConfiguration.xml и UserManifest.xml размещаются на компьютере в каталоге пользователей по адресу appdata\roaming\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID

    2. Пакеты, предназначенные для компьютеров (глобальные): UserDeploymentConfiguration.xml размещается в каталоге компьютеров по адресу %programdata%\Microsoft\AppV\Client\Catalog\Packages\PkgGUID\VerGUID

  3. Регистрация пакета с помощью драйвера режима ядра для пользователя в HKLM\Software\Microsoft\AppV\MAV

  4. Выполнение задач интеграции.

    • Интеграция точек расширений (EP) из файлов манифеста и динамической конфигурации.
    1. Данные ep на основе файлов хранятся в папке AppData с использованием точек соединения из хранилища пакетов.

    2. Версия 1 уже существует, когда становится доступна новая версия.

    3. Точки расширения переключаются в расположение версии 2 в каталогах компьютеров или пользователей для любых новых или обновленных точек расширения.

  5. Выполнение скриптов, предназначенных для времени публикации.

  6. Установите сборки Side by Side при необходимости.

Обновление используемого пакета App-V

Начиная с App-V 5 с пакетом обновления 2 (SP2): при попытке обновить пакет, используемый конечным пользователем, задача обновления помещается в состояние ожидания. Обновление будет выполнено позже в соответствии со следующими правилами:

Тип задачи Применимое правило

Пользовательская задача, например публикация пакета пользователю

Ожидающая задача будет выполнена после того, как пользователь выйдет из системы, а затем снова войдет в систему.

Глобальная задача, например глобальное включение группы подключений

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

Когда задача находится в состоянии ожидания, клиент App-V также создает раздел реестра для ожидающей задачи следующим образом:

Задача на основе пользователя или глобального уровня Где создается раздел реестра

Пользовательские задачи

KEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks

Глобальные задачи

HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks

Чтобы пользователи могли использовать более новую версию пакета, необходимо выполнить следующие операции:

Задача Сведения

Добавление пакета на компьютер

Эта задача зависит от компьютера, и вы можете выполнить ее в любое время, выполнив действия, описанные в разделе Добавление пакета выше.

Публикация пакета

Инструкции см. в разделе Публикация пакетов выше. Этот процесс требует обновления точек расширения в системе. Конечные пользователи не могут использовать приложение при выполнении этой задачи.

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

Сценарий Требования

Пакет App-V не используется при попытке обновления

Нельзя использовать ни один из следующих компонентов пакета: виртуальное приложение, COM-сервер или расширения оболочки.

Администратор публикует более новую версию пакета, и обновление выполняется при следующем запуске компонента или приложения внутри пакета. Выполняется потоковая передача и запуск новой версии пакета. В этом сценарии в App-V 5 с пакетом обновления 2 (SP2) ничего не изменилось по сравнению с предыдущими выпусками App-V 5.

Пакет App-V используется, когда администратор публикует более новую версию пакета.

Клиент App-V устанавливает для операции обновления значение ожидание, что означает, что она помещается в очередь и выполняется позже, когда пакет не используется.

Если приложение пакета используется, пользователь завершает работу виртуального приложения, после чего может произойти обновление.

Если пакет имеет расширения оболочки (Office 2013), которые постоянно загружаются Windows Обозреватель, пользователь не может войти в систему. Чтобы запустить обновление пакета App-V, пользователи должны выйти из системы и снова войти в систему.

Глобальная и пользовательская публикация

Пакеты App-V можно опубликовать одним из двух способов. Пользователь, который дает право на пакет App-V конкретному пользователю или группе пользователей, и глобальный, который предоставляет пакет App-V всему компьютеру для всех пользователей компьютера. После обновления пакета, а пакет App-V не используется, рассмотрите два типа публикации:

  • Глобальная публикация: приложение публикуется на компьютере; его могут использовать все пользователи на этом компьютере. Обновление произойдет при запуске клиентской службы App-V, что фактически означает перезапуск компьютера.

  • Пользователь опубликован: приложение публикуется для пользователя. Если на компьютере несколько пользователей, приложение может быть опубликовано для подмножества пользователей. Обновление будет происходить при входе пользователя в систему или при повторной публикации (периодическое обновление и оценка политики ConfigMgr, периодическая публикация и обновление App-V или явным образом с помощью команд PowerShell).

Удаление пакета App-V

Удаление приложений App-V в полной инфраструктуре является неопубликованной операцией и не выполняет удаление пакета. Процесс совпадает с процессом публикации выше, но вместо добавления процесса удаления отменяет изменения, внесенные для пакетов App-V.

Восстановление пакета App-V

Операция восстановления очень проста, но может повлиять на многие расположения на компьютере. Ранее упомянутые расположения копирования при записи (COW) удаляются, а точки расширения деинтегрируются, а затем повторно интегрируются. Просмотрите расположения размещения данных COW, указав, где они зарегистрированы в реестре. Эта операция выполняется автоматически, и нет никакого административного контроля, кроме инициации операции восстановления из клиентской консоли App-V или с помощью PowerShell (Repair-AppVClientPackage).

Интеграция пакетов App-V

Архитектура клиента и пакета App-V обеспечивает определенную интеграцию с локальной операционной системой во время добавления и публикации пакетов. Три файла определяют точки интеграции или расширения для пакета App-V:

  • AppXManifest.xml: хранится внутри пакета с резервными копиями, хранящимися в хранилище пакетов и в профиле пользователя. Содержит параметры, созданные в процессе виртуализации.

  • DeploymentConfig.xml. Предоставляет сведения о конфигурации точек расширения интеграции на основе компьютера и пользователя.

  • UserConfig.xml: подмножество Deploymentconfig.xml, которое предоставляет только пользовательские конфигурации и предназначено только для точек расширения на основе пользователей.

Правила интеграции

Когда приложения App-V публикуются на компьютере с клиентом App-V, выполняются определенные действия, как описано в списке ниже.

  • Глобальная публикация. Ярлыки хранятся в расположении профиля Всех пользователей, а другие точки расширения хранятся в реестре в кусте HKLM.

  • Публикация пользователей. Ярлыки хранятся в текущем профиле учетной записи пользователя, а другие точки расширения хранятся в реестре в кусте HKCU.

  • Резервное копирование и восстановление. Существующие собственные данные приложения и реестр (например, регистрация FTA) создаются во время публикации.

    1. Пакеты App-V получают право собственности на основе последнего интегрированного пакета, в котором право собственности передается последнему опубликованному приложению App-V.

    2. Владение переходит из одного пакета App-V в другой, когда принадлежащий пакет App-V не опубликован. Это не инициирует восстановление данных или реестра.

    3. Восстановите резервные копии данных, когда последний пакет не опубликован или удален в каждой точке расширения.

Точки расширения

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

  • Ярлыки

  • Сопоставления типов файлов

  • Расширения оболочки

  • COM

  • Клиенты программного обеспечения

  • Возможности приложений

  • Обработчик протокола URL-адресов

  • AppPath

  • Виртуальное приложение

Ярлыки

Сокращение является одним из основных элементов интеграции с ОС и интерфейсом для прямого запуска приложения App-V пользователем. Во время публикации и отмены публикации приложений App-V.

Из XML-файлов манифеста пакета и динамической конфигурации путь к конкретному исполняемому файлу приложения можно найти в разделе, аналогичном следующему:

<Extension Category="AppV.Shortcut">
          <Shortcut>
            <File>[{Common Desktop}]\Adobe Reader 9.lnk</File>
            <Target>[{AppVPackageRoot}]\Reader\AcroRd32.exe</Target>
            <Icon>[{Windows}]\Installer\{AC76BA86-7AD7-1033-7B44-A94000000001}\SC_Reader.ico</Icon>
            <Arguments />
            <WorkingDirectory />
            <ShowCommand>1</ShowCommand>
            <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
          </Shortcut>
        </Extension>

Как упоминалось ранее, ярлыки App-V по умолчанию помещаются в профиль пользователя на основе операции обновления. Глобальное обновление помещает ярлыки в профиль Всех пользователей, а обновление пользователей сохраняет их в профиле конкретного пользователя. Фактический исполняемый файл хранится в хранилище пакетов. Расположение файла ICO — это расположение с маркерами в пакете App-V.

Сопоставления типов файлов

Клиент App-V управляет сопоставлениями типов файлов локальной операционной системы во время публикации, что позволяет пользователям использовать вызовы типов файлов или открывать файл с специально зарегистрированным расширением (.docx) для запуска приложения App-V. Сопоставления типов файлов присутствуют в файлах манифеста и динамической конфигурации, как показано в следующем примере:

<Extension Category="AppV.FileTypeAssociation">
          <FileTypeAssociation>
            <FileExtension MimeAssociation="true">
              <Name>.xdp</Name>
              <ProgId>AcroExch.XDPDoc</ProgId>
              <ContentType>application/vnd.adobe.xdp+xml</ContentType>
            </FileExtension>
            <ProgId>
              <Name>AcroExch.XDPDoc</Name>
              <Description>Adobe Acrobat XML Data Package File</Description>
              <EditFlags>65536</EditFlags>
              <DefaultIcon>[{Windows}]\Installer\{AC76BA86-7AD7-1033-7B44-A94000000001}\XDPFile_8.ico</DefaultIcon>
              <ShellCommands>
                <DefaultCommand>Read</DefaultCommand>
                <ShellCommand>
                  <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
                  <Name>Open</Name>
                  <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine>
                </ShellCommand>
                <ShellCommand>
                  <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
                  <Name>Printto</Name>
                  <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe"  /t "%1" "%2" "%3" "%4"</CommandLine>
                </ShellCommand>
                <ShellCommand>
                  <ApplicationId>[{AppVPackageRoot}]\Reader\AcroRd32.exe</ApplicationId>
                  <Name>Read</Name>
                  <FriendlyName>Open with Adobe Reader 9</FriendlyName>
                  <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine>
                </ShellCommand>
              </ShellCommands>
            </ProgId>
          </FileTypeAssociation>
        </Extension>

Примечание В этом примере:

  • <Name>.xdp</Name> является расширением

  • <Name>AcroExch.XDPDoc</Name> — это значение ProgId (указывающее на примыкающий ProgId).

  • <CommandLine>"[{AppVPackageRoot}]\Reader\AcroRd32.exe" "%1"</CommandLine> — это командная строка, указывающая на исполняемый файл приложения.

Расширения оболочки

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

Требования к использованию расширений оболочки:

  • Пакеты, содержащие внедренные расширения оболочки, должны публиковаться глобально.

  • "Разрядность" приложения, Sequencer и клиента App-V должна совпадать, в противном случае расширения оболочки не будут работать. Пример:

    • Версия приложения — 64-разрядная.

    • Sequencer работает на 64-разрядном компьютере.

    • Пакет доставляется на 64-разрядный клиентский компьютер App-V.

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

Обработчик Описание

Обработчик контекстного меню

Добавляет элементы меню в контекстное меню. Вызывается перед отображением контекстного меню.

Обработчик перетаскивания

Управляет действием при щелчке правой кнопкой мыши и изменяет отображающееся контекстное меню.

Обработчик целевого объекта drop

Управляет действием после перетаскивания объекта данных по целевому объекту, такому как файл.

Обработчик объекта данных

Управляет действием после копирования файла в буфер обмена или перетаскивания по целевому объекту удаления. Он может предоставлять дополнительные форматы буфера обмена для целевого объекта перетаскивания.

Обработчик страницы свойств

Заменяет или добавляет страницы в диалоговое окно страницы свойств объекта.

Обработчик Infotip

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

Обработчик столбцов

Позволяет создавать и отображать настраиваемые столбцы в представлении сведений о windows Обозреватель. Его можно использовать для расширения сортировки и группировки.

Обработчик предварительного просмотра

Позволяет предварительному просмотру файла отображаться в области предварительного просмотра Обозреватель Windows.

COM

Клиент App-V поддерживает публикацию приложений с поддержкой интеграции и виртуализации COM. Интеграция COM позволяет клиенту App-V регистрировать com-объекты в локальной операционной системе и виртуализации объектов. Для целей этого документа интеграция объектов COM требует дополнительных сведений.

App-V поддерживает регистрацию COM-объектов из пакета в локальную операционную систему с двумя типами процессов: вне процесса и внутри процесса. Регистрация COM-объектов выполняется с помощью одного или сочетания нескольких режимов работы для определенного пакета App-V, который включает off, Isolated и Integrated. Интегрированный режим настраивается для внепроцессного или внутрипроцессного типа. Настройка режимов и типов COM выполняется с помощью динамических файлов конфигурации (deploymentconfig.xml или userconfig.xml).

Сведения об интеграции App-V доступны по адресу . https://go.microsoft.com/fwlink/?LinkId=392834

Клиенты программного обеспечения и возможности приложений

App-V поддерживает определенные клиенты программного обеспечения и точки расширения возможностей приложений, которые позволяют регистрировать виртуализированные приложения в программном клиенте операционной системы. Это позволяет пользователям выбирать программы по умолчанию для таких операций, как электронная почта, обмен мгновенными сообщениями и проигрыватель мультимедиа. Эта операция выполняется на панели управления с помощью параметра Set Program Access and Computer Defaults и настраивается во время виртуализации в манифесте или динамических файлах конфигурации. Возможности приложений поддерживаются только в том случае, если приложения App-V публикуются глобально.

Пример регистрации клиента программного обеспечения почтового клиента на основе App-V.

    <SoftwareClients Enabled="true">
      <ClientConfiguration EmailEnabled="true" />
      <Extensions>
        <Extension Category="AppV.SoftwareClient">
          <SoftwareClients>
            <EMail MakeDefault="true">
              <Name>Mozilla Thunderbird</Name>
              <Description>Mozilla Thunderbird</Description>
              <DefaultIcon>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe,0</DefaultIcon>
              <InstallationInformation>
                <RegistrationCommands>
                  <Reinstall>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /SetAsDefaultAppGlobal</Reinstall>
                  <HideIcons>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /HideShortcuts</HideIcons>
                  <ShowIcons>"[{ProgramFilesX86}]\Mozilla Thunderbird\uninstall\helper.exe" /ShowShortcuts</ShowIcons>
                </RegistrationCommands>
                <IconsVisible>1</IconsVisible>
                <OEMSettings />
              </InstallationInformation>
              <ShellCommands>
                <ApplicationId>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe</ApplicationId>
                <Open>"[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe" -mail</Open>
              </ShellCommands>
              <MAPILibrary>[{ProgramFilesX86}]\Mozilla Thunderbird\mozMapi32_InUse.dll</MAPILibrary>
              <MailToProtocol>
                <Description>Thunderbird URL</Description>
                <EditFlags>2</EditFlags>
                <DefaultIcon>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe,0</DefaultIcon>
                <ShellCommands>
                  <ApplicationId>[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe</ApplicationId>
                  <Open>"[{ProgramFilesX86}]\Mozilla Thunderbird\thunderbird.exe" -osint -compose "%1"</Open>
                </ShellCommands>
              </MailToProtocol>
            </EMail>
          </SoftwareClients>
        </Extension>
      </Extensions>
    </SoftwareClients>

Примечание В этом примере:

  • <ClientConfiguration EmailEnabled="true" />— это общий параметр "Клиенты программного обеспечения" для интеграции Email клиентов.

  • <EMail MakeDefault="true">— это флаг для задания определенного клиента Email в качестве клиента Email по умолчанию.

  • <MAPILibrary>[{ProgramFilesX86}]\Mozilla Thunderbird\mozMapi32_InUse.dll</MAPILibrary> — это регистрация библиотеки DLL MAPI.

Обработчик протокола URL-адреса

Приложения не всегда специально называются виртуализированными приложениями, использующими вызов типа файла. Например, в приложении, которое поддерживает внедрение ссылки mailto: в документ или веб-страницу, пользователь щелкает ссылку mailto: и ожидает получить зарегистрированный почтовый клиент. App-V поддерживает обработчики протоколов URL-адресов, которые можно зарегистрировать в локальной операционной системе для каждого пакета. Во время виртуализации обработчики протокола URL-адресов автоматически добавляются в пакет.

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

AppPath

Точка расширения AppPath поддерживает вызов приложений App-V непосредственно из операционной системы. Обычно это выполняется с помощью запуска или начального экрана в зависимости от операционной системы, что позволяет администраторам предоставлять доступ к приложениям App-V из команд или сценариев операционной системы без вызова конкретного пути к исполняемому файлу. Таким образом, это позволяет избежать изменения переменной среды system path во всех системах, как это делается во время публикации.

Точка расширения AppPath настраивается в манифесте или в файлах динамической конфигурации и сохраняется в реестре на локальном компьютере во время публикации для пользователя. Дополнительные сведения о проверке AppPath: https://go.microsoft.com/fwlink/?LinkId=392835.

Виртуальное приложение

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

Правила точек расширения

Описанные выше точки расширения интегрируются в операционную систему в зависимости от способа публикации пакетов. Глобальная публикация размещает точки расширения в общедоступных расположениях компьютеров, где пользователи публикации размещают точки расширения в расположениях пользователей. Например, ярлык, созданный на рабочем столе и опубликованный глобально, приведет к созданию файлов для ярлыка (%Public%\Desktop) и данных реестра (HKLM\Software\Classes). Это же сочетание клавиш будет содержать данные файлов (%UserProfile%\Desktop) и данные реестра (HKCU\Software\Classes).

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

Виртуальное расширение Требуется виртуализация целевой ОС Требуется глобальная публикация

Установленное напрямую доверие

Сопоставление типов файлов

Протоколы URL-адресов

X

AppPaths

X

Режим COM

Клиент программного обеспечения

X

Возможности приложений

X

X

Обработчик контекстного меню

X

X

Обработчик перетаскивания

X

Обработчик объекта данных

X

Обработчик страницы свойств

X

Обработчик infotip

X

Обработчик столбцов

X

Расширения оболочки

X

Вспомогательный объект браузера

X

X

Активный объект X

X

X

Динамическая обработка конфигурации

Развернуть пакеты App-V на одном компьютере или на одном компьютере очень просто. Однако по мере того как организации развертывают приложения AppV в бизнес-направлениях и географических и политических границах, возможность последовательности приложений по одному набору параметров становится невозможной. Приложение-V было разработано для этого сценария, так как оно фиксирует определенные параметры и конфигурации во время виртуализации в файле манифеста, но также поддерживает изменение файлов динамической конфигурации.

Динамическая конфигурация App-V позволяет указать политику для пакета на уровне компьютера или на уровне пользователя. Файлы динамической конфигурации позволяют инженерам по виртуализации изменять конфигурацию пакета после виртуализации в соответствии с потребностями отдельных групп пользователей или компьютеров. В некоторых случаях может потребоваться внести изменения в приложение, чтобы обеспечить правильную функциональность в среде App-V. Например, может потребоваться внести изменения в файлы _*config.xml, чтобы разрешить выполнение определенных действий в указанное время во время выполнения приложения, например отключение расширения mailto, чтобы виртуализированное приложение не перезаписывало это расширение из другого приложения.

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

Пример для файлов динамической конфигурации

В приведенном ниже примере показано сочетание файлов манифеста, конфигурации развертывания и пользовательской конфигурации после публикации и во время обычной работы. Эти примеры являются сокращенными примерами каждого из файлов. Цель — показать только сочетание файлов, а не полное описание конкретных категорий, доступных в каждом из файлов. Дополнительные сведения см. в руководстве по виртуализации App-V 5 по адресу: https://go.microsoft.com/fwlink/?LinkID=269810

Манифест

<appv:Extension Category="AppV.Shortcut">
     <appv:Shortcut>
          <appv:File>[{Common Programs}]\7-Zip\7-Zip File Manager.lnk</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot}]\7zFM exe.O.ico</appv:Icon>
     </appv:Shortcut>
</appv:Extension>

Конфигурация развертывания

<MachineConfiguration>
     <Subsystems>
          <Registry>
               <Include>
                    <Key Path= "\REGISTRY\Machine\Software\7zip">
                    <Value Type="REG_SZ" Name="Config" Data="1234"/>
                    </Key>
               </Include>
          </Registry>
     </Subsystems>

Пользовательская конфигурация

<UserConfiguration>
     <Subsystems>
<appv:ExtensionCategory="AppV.Shortcut">
     <appv:Shortcut>
          <appv:File>[{Desktop}]\7-Zip\7-Zip File Manager.lnk</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot}]\7zFM exe.O.ico</appv:Icon>
     </appv:Shortcut>
</appv:Extension>
     </Subsystems>
<UserConfiguration>
     <Subsystems>
<appv:Extension Category="AppV.Shortcut">
     <appv:Shortcut>
          <appv:Fìle>[{Desktop}]\7-Zip\7-Zip File Manager.lnk</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot}]\7zFM.exe.O.ico</appv:Icon>
     </appv:Shortcut>
     <appv:Shortcut>
          <appv:File>[{Common Programs}]\7-Zip\7-Zip File Manager.Ink</appv:File>
          <appv:Target>[{AppVPackageRoot}]\7zFM.exe</appv:Target>
          <appv:Icon>[{AppVPackageRoot)]\7zFM.exe.O.ico</appv: Icon>
     </appv:Shortcut>
</appv:Extension>
     </Subsystems>
<MachineConfiguration>
     <Subsystems>
          <Registry>
               <Include>
                    <Key Path="\REGISTRY\Machine\Software\7zip">
                    <Value Type=”REG_SZ" Name="Config" Data="1234"/>
               </Include>
          </Registry>
     </Subsystems>

Параллельные сборки

App-V поддерживает автоматическую упаковку параллельных сборок (SxS) во время виртуализации и развертывания на клиенте во время публикации виртуального приложения. App-V 5 с пакетом обновления 2 (SP2) поддерживает запись сборок SxS во время виртуализации для сборок, не присутствующих на компьютере с виртуализацией. А для сборок, состоящих из Visual C++ (версии 8 и более поздних) и (или) времени выполнения MSXML, Sequencer будет автоматически обнаруживать и записывать эти зависимости, даже если они не были установлены во время мониторинга. Функция параллельных сборок устраняет ограничения предыдущих версий App-V, когда app-V Sequencer не захватывает сборки, уже присутствующие на рабочей станции виртуализации, и приватизирует сборки, которые ограничиваются одной битовой версией на пакет. Это привело к развертыванию приложений App-V на клиентах, в результате чего отсутствуют необходимые сборки SxS, что приводило к сбою запуска приложения. Это заставило процесс упаковки документировать, а затем убедиться, что все сборки, необходимые для пакетов, были установлены локально в клиентской операционной системе пользователя, чтобы обеспечить поддержку виртуальных приложений. С учетом количества сборок и отсутствия документации по приложениям для необходимых зависимостей эта задача была сложной задачей как для управления, так и для реализации.

Поддержка параллельных сборок в App-V имеет следующие возможности.

  • Автоматическая запись сборки SxS во время виртуализации независимо от того, была ли сборка уже установлена на рабочей станции виртуализации.

  • Клиент App-V автоматически устанавливает необходимые сборки SxS на клиентский компьютер во время публикации, когда они отсутствуют.

  • Sequencer сообщает о зависимости времени выполнения VC в механизме отчетности Sequencer.

  • Sequencer позволяет не упаковать сборки, которые уже установлены на Sequencer, что поддерживает сценарии, в которых сборки ранее были установлены на целевых компьютерах.

Автоматическая публикация сборок SxS

Во время публикации пакета App-V со сборками SxS клиент App-V будет проверка наличие сборки на компьютере. Если сборка не существует, клиент развернет сборку на компьютере. Пакеты, входящие в группы подключений, будут полагаться на установки сборки Side by Side, которые являются частью базовых пакетов, так как группа подключений не содержит никаких сведений об установке сборки.

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

Ведение журнала клиента

Клиент App-V записывает сведения в журнал событий Windows в стандартном формате ETW. Определенные события App-V можно найти в средстве просмотра событий в разделе Журналы приложений и служб\Microsoft\AppV\Client.

Примечание В App-V 5.0 с пакетом обновления 3 (SP3) некоторые журналы были объединены и перемещены в следующее расположение:

Event logs/Applications and Services Logs/Microsoft/AppV/ServiceLog

Список перемещенных журналов см. в разделе Сведения о App-V 5.0 с пакетом обновления 3 (SP3).

Ниже описаны три конкретные категории событий.

Администратор: регистрирует события конфигураций, применяемых к клиенту App-V, и содержит основные предупреждения и ошибки.

Операционная. Регистрирует общее выполнение App-V и использование отдельных компонентов, создавая журнал аудита операций App-V, выполненных в клиенте App-V.

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