Поделиться через


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

Относится к:

  • Windows 10
  • Windows 11

В этой статье содержатся технические сведения о распространенных операциях клиента 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.

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

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

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

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

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

Имя Тип Описание
Корень Папка файла Каталог, содержащий файловую систему для виртуализированного приложения, записанного во время виртуализации.
[Content_Types].xml XML-файл Список основных типов контента в файле appv (например, 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 Windows PowerShell, который изменяет локальный реестр (значение PackageInstallationRoot в разделе HKLM\Software\Microsoft\AppV\Client\Streaming). Хранилище пакетов должно находиться по локальному пути в клиентской операционной системе. Отдельные пакеты хранятся в хранилище пакетов в подкаталогах с именем GUID пакета и guid версии.

Ниже приведен пример пути к конкретному приложению.

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

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

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

Если клиент App-V настроен в режиме общего хранилища содержимого, данные не записываются на диск при сбое потока. Это означает, что пакетам требуется минимальное место на локальном диске (данные публикации). В средах VDI, где локальное хранилище может быть ограничено, важно использовать как можно меньше места на диске. Вы можете свести к минимуму использование дискового пространства путем потоковой передачи приложений из высокопроизводительного сетевого расположения (например, san). Дополнительные сведения см . в разделе Общий магазин содержимого в Microsoft App-V 5.0 — за кулисами.

Примечание.

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

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

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

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

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

Расположения, описанные в этой таблице, находятся в папке %programdata%\Microsoft\AppV\Client\Catalog\.

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

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

Если пакет доступен пользователю на компьютере (глобальный или не глобальный), манифест хранится в каталоге компьютеров. Когда пакет публикуется глобально, в каталоге компьютеров хранится файл динамической конфигурации. Таким образом, определение того, является ли пакет глобальным, определяется в зависимости от того, есть ли в каталоге компьютеров файл политики (файл UserDeploymentConfiguration).
Расположение хранилища по умолчанию %programdata%\Microsoft\AppV\Client\Catalog<br>
Это расположение не совпадает с расположением хранилища пакетов. Хранилище пакетов — это золотая или нетронутая копия файлов пакета.
Файлы в каталоге компьютеров — Manifest.xml
— DeploymentConfiguration.xml
— UserManifest.xml (глобально опубликованный пакет)
— UserDeploymentConfiguration.xml (глобально опубликованный пакет)
Дополнительное расположение каталога компьютеров, используемое, когда пакет входит в группу подключений Следующее расположение является дополнением к конкретному расположению пакета, упомянутому ранее в качестве расположения хранилища по умолчанию:

%programdata%\Microsoft\AppV\Client\Catalog\PackageGroups\ConGroupGUID\ConGroupVerGUID
Дополнительные файлы в каталоге компьютеров, если пакет входит в группу подключений — PackageGroupDescriptor.xml
— UserPackageGroupDescriptor.xml (глобально опубликованная группа подключений)

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

Расположения, описанные в этой таблице, находятся в папке appdata\roaming\Microsoft\AppV\Client\Catalog\.

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

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

Для перемещаемых пользователей каталог пользователей должен находиться в перемещаемом или общем расположении, чтобы по умолчанию сохранять устаревшее поведение 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> реестра. Когда выполняется запрос на данные реестра, он будет находить по порядку, пока не найдет запрашивавшиеся данные. Это означает, что при наличии значения, хранящегося в расположении COW, оно не будет переходить в другие расположения, однако, если в расположении COW нет данных, оно будет переходить к пакету, а затем к собственному расположению, пока не найдет соответствующие данные.

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

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

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

Реестры в следующей таблице находятся в папке Registry\Client\Packages\PkgGUID\.

Расположение Описание
КОРОВА — Реестр компьютеров\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 группы подключений

Реестры в следующей таблице находятся в папках Machine Registry\Client\PackageGroups\GrpGUID\ и User Registry Classes\Client\PackageGroups\GrpGUID\.

Расположение Описание
КОРОВА - Реестр компьютеров\Client\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 управляет хранилищем пакетов, в котором хранятся развернутые файлы ресурсов из файла 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. Политики задаются путем ввода командлета PowerShell Set-AppvClientConfiguration . К потоковой передаче применяются следующие политики:

Политика Описание
AllowHighCostLaunch Разрешает потоковую передачу по сетям 3G и сотовой сети
Автозагрузки Задает параметр Фоновая загрузка:
0 — отключено
1 — только ранее использовавшиеся пакеты
2 . Все пакеты
PackageInstallationRoot Корневая папка для хранилища пакетов на локальном компьютере
PackageSourceRoot Корневое переопределение, из которого следует передавать пакеты
SharedContentStoreMode Позволяет использовать общее хранилище содержимого для сценариев VDI.

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

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

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

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

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

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

сбои Stream

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

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

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

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

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

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

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

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

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

  • Файлы в папке %appdata%\Microsoft\AppV\Client\Catalog
  • Параметры реестра в разделе HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\Packages

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

Примечание.

Командлет Repair-AppvClientPackage не восстанавливает состояние публикации пакетов, в котором состояние App-V пользователя в HKEY_CURRENT_USER отсутствует или не соответствует данным в %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 : 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 поддерживает перенаправление папок перемещаемой папки AppData (%AppData%). При запуске виртуальной среды перемещающееся состояние AppData из перемещаемого каталога AppData пользователя копируется в локальный кэш. И наоборот, при завершении работы виртуальной среды локальный кэш, связанный с перемещаемым AppData определенного пользователя, передается в фактическое расположение перемещаемого каталога AppData этого пользователя.

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

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

Каталог VFS в пакете Сопоставленное расположение резервного хранилища
ProgramFilesX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86
SystemX86 C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86
Windows C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows
appv_ROOT C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT
Appdata C:\Users\username\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\AppData

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

Каталог VFS в пакете Сопоставленное расположение резервного хранилища
ProgramFilesX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86
SystemX86 C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86
Windows C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows
appv_ROOT C:\Users\Local\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT
Appdata \Fileserver\users\Local\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 не сопоставлено, ничего не происходит.
  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 с Microsoft Configuration Manager см. в статье Развертывание виртуальных приложений App-V с помощью Configuration Manager.

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

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

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

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

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

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

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

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

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

  1. Инициируйте установку вручную с помощью Windows 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. Create разреженные файлы на диске, представляющие извлеченный пакет для всех перечисленных каталогов.

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

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

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

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

    7. Create файл 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. Create точек расширения.

    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 отличается от предыдущих версий оптимизацией хранилища. 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. Выполнение задач интеграции.

    1. Интеграция точек расширений (EP) из файлов манифеста и динамической конфигурации.

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

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

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

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

  6. Установите параллельные сборки при необходимости.

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

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

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

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

Задача на основе пользователя или глобального уровня Где создается раздел реестра
Пользовательские задачи HKEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks
Глобальные задачи HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks

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

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

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

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

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

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

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

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

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

  • Глобальная публикация — это когда приложение публикуется на компьютере; его могут использовать все пользователи на этом компьютере. Обновление произойдет при запуске клиентской службы App-V, что фактически означает перезапуск компьютера.
  • Публикация пользователя — это когда приложение опубликовано для пользователя. Если на компьютере несколько пользователей, приложение может быть опубликовано для подмножества пользователей. Обновление будет происходить при входе пользователя в систему или при повторной публикации (периодически, ConfigMgr обновлении и оценке политики, периодической публикации и обновления App-V или явным образом с помощью команд Windows 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.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.

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

Пользователи могут использовать вызовы типов файлов или открыть файл с зарегистрированным расширением (.docx) для запуска приложения App-V, так как клиент 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</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 см. в статье Интеграция Microsoft Application Virtualization 5.0.

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

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: в документ или веб-страницу, пользователь выбирает ссылку, ожидающую доступа к зарегистрированному почтовому клиенту. App-V поддерживает обработчики протоколов URL-адресов, которые можно зарегистрировать в локальной операционной системе для каждого пакета. Во время виртуализации обработчики протокола URL-адресов автоматически добавляются в пакет.

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

AppPath

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

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

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

Эта подсистема предоставляет список приложений, захваченных во время виртуализации, которые используются другими компонентами 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 на одном компьютере или на одном компьютере просто. Однако по мере того как организации развертывают приложения App-V в бизнес-направлениях и географических и политических границах, становится невозможным последовательность всех приложений с одинаковыми параметрами. App-V был разработан для устранения этой проблемы путем записи определенных параметров и конфигураций во время виртуализации в файле манифеста, а также поддержки изменений в файлах динамической конфигурации.

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

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

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

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

Манифест

<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 поддерживает автоматическую упаковку параллельных сборок во время виртуализации и развертывания на клиенте во время публикации виртуального приложения. App-V также поддерживает запись параллельных сборок во время виртуализации для сборок, не присутствующих на компьютере виртуализации. Для сборок, состоящих из Visual C++ (версии 8 и более поздних версий) или времени выполнения MSXML, Sequencer будет автоматически обнаруживать и записывать эти зависимости, даже если они не были установлены во время мониторинга.

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

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

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

Автоматическая публикация параллельных сборок

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

Примечание.

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

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

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

Существует три определенные категории событий, записанных:

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