Запуск приложений, установленных локально, в виртуальной среде с виртуальными приложениями

Обновлено: Август 2015 г.

Назначение: Application Virtualization 5.1

В виртуальной среде можно запускать локально установленные приложения наряду с приложениями, которые были виртуализированы с помощью Microsoft Application Virtualization (App-V). Это можно сделать, если:

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

  • Выполняется диагностика клиентского пакета App-V и нужно открыть локальное приложение в виртуальной среде App-V.

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

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

Раздел реестра RunVirtual

Чтобы добавить приложение, установленное локально, в какой-либо пакет или виртуальную среду группы соединений, добавьте подраздел в RunVirtual раздел реестра в редакторе реестра, как описано ниже.

Для управления этим разделом реестра нет групповой политики, поэтому нужно использовать System Center Configuration Manager или другую систему электронного распространения программного обеспечения (ESD) или вручную внести изменения в реестр.

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

 

Версия App-V Поддерживаемые методы публикации

App-V 5.0 с пакетом обновления 3 (SP3) и App-V 5.1

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

App-V 5.0 до App-V 5.0 с пакетом обновления 2 (SP2)

Только глобальная публикация

Действия по созданию подраздела реестра

  1. Используя сведения в следующей таблице, создайте новый раздел реестра, указав имя исполняемого файла, например MyApp.exe.

     

    Метод публикации пакета Где создать раздел реестра

    Глобальная публикация

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual

    Пример: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe

    Публикация для пользователя

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\AppV\Client\RunVirtual

    Пример: HKEY_CURRENT_USER \SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe

    Группа соединений может содержать:

    • Пакеты, только глобально опубликованные, или только для пользователя

    • Пакеты, глобально опубликованные, и пакеты для пользователя

    Раздел HKEY_LOCAL_MACHINE или HKEY_CURRENT_USER, но все указанное ниже должно быть правдой:

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

    • Создайте только один подраздел для одного из пакетов в группе соединений. Если, например, один пакет опубликован глобально, а другой пакет опубликован для пользователя, то нужно создать подраздел для любого из этих пакетов, но не обоих пакетов вместе. Хотя подраздел создается только для одного из пакетов, все пакеты в группе соединений, а также локальное приложение, будут доступны в виртуальной среде.

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

      Например, если пакет опубликован для пользователя, необходимо создать подраздел в разделе HKEY_CURRENT_USER\SOFTWARE\Microsoft\AppV\Client\RunVirtual.



  2. Значение подраздела реестра должно быть равным значениям PackageId (идентификатор пакета) и VersionId (идентификатор версии), разделенным символом подчеркивания.

    Синтаксис: <PackageId>_<VersionId>

    Пример: 4c909996-afc9-4352-b606-0b74542a09c1_be463724-Oct1-48f1-8604-c4bd7ca92fa

    В предыдущем примере приложение сформирует экспортный файл реестра (REG-файл), подобный следующему:

    Windows Registry Editor Version 5.00 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual] 
    @="" 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe] 
    @="aaaaaaaa-bbbb-cccc-dddd-eeeeeeee_11111111-2222-3333-4444-555555555
    

Командлет Get-AppvClientPackage PowerShell

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

Используйте следующий синтаксис, указав имя пакета для <Package>:

$AppVName = Get-AppvClientPackage <Package>

Start-AppvVirtualProcess -AppvClientObject $AppVName cmd.exe

Если точное имя пакета неизвестно, можно использовать командную строку Get-AppvClientPackage *executable*, где executable — имя приложения, например: Get-AppvClientPackage *Word*.

Параметр командной строки /appvpid:<идентификатор процесса>

Можно использовать параметр /appvpid:<PID> в любой команде, что дает возможность запускать эту команду внутри виртуального процесса, который указан с помощью задания его идентификатора процесса (PID). При использовании этого метода в той же среде App-V, где уже запущен исполняемый файл, запускается новый исполняемый файл.

Пример. cmd.exe /appvpid:8108

Чтобы найти идентификатор процесса (PID) App-V, запустите команду tasklist.exe из командной строки с повышенными привилегиями.

Параметр командной строки /appvve:<GUID>

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

Синтаксис: cmd.exe /appvve:<PACKAGEGUID_VERSIONGUID>

Пример. cmd.exe /appvve:aaaaaaaa-bbbb-cccc-dddd-eeeeeeee_11111111-2222-3333-4444-55555555

Для получения GUID пакета и GUID версии для приложения запустите командлет Get-AppvClientPackage. Объедините параметр /appvve со следующим:

  • Двоеточие

  • GUID нужного пакета

  • Символ подчеркивания

  • Идентификатор версии нужного пакета

Если точное имя пакета неизвестно, используйте командную строку Get-AppvClientPackage *executable*, где executable — имя приложения, например: Get-AppvClientPackage *Word*.

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

Есть предложение для App-V?

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

См. также

-----
Дополнительные сведения о MDOP можно найти в библиотеке TechNet, статьях по устранению неполадок на вики-сайте TechNet или подписавшись на новости в Facebook или Twitter.
-----
Показ: