Compartilhar via


Executando uma Aplicação Instalada Localmente Dentro de um Ambiente Virtual com Aplicativos Virtualizados

Você pode executar um aplicativo instalado localmente em um ambiente virtual, juntamente com aplicativos que foram virtualizados usando o App-V (Microsoft Application Virtualization). Talvez você queira fazer isso se:

  • Deseja instalar e executar um aplicativo localmente em computadores cliente, mas deseja virtualizar e executar plug-ins específicos que funcionam com esse aplicativo local.

  • Estão solucionando problemas de um pacote de cliente do App-V e querem abrir um aplicativo local no ambiente virtual do App-V.

Use qualquer um dos seguintes métodos para abrir um aplicativo local dentro do ambiente virtual do App-V:

Cada método realiza essencialmente a mesma tarefa, mas alguns métodos podem ser mais adequados para alguns aplicativos do que outros, dependendo se o aplicativo virtualizado já está em execução.

Chave do Registro RunVirtual

Para adicionar um aplicativo instalado localmente a um pacote ou ao ambiente virtual de um grupo de conexões, adicione uma subchave RunVirtual à chave do Registro no Editor do Registro, conforme descrito nas seções a seguir.

Não há nenhuma configuração Política de Grupo disponível para gerenciar essa chave do Registro, portanto, você precisa usar System Center Configuration Manager ou outro sistema de ESD (distribuição eletrônica de software) ou editar manualmente o registro.

Métodos com suporte de publicação de pacotes ao usar RunVirtual

Versão do App-V Métodos de publicação com suporte

App-V 5.0 SP3

Publicado globalmente ou para o usuário

App-V 5.0 até App-V 5.0 SP2

Publicado globalmente apenas

Etapas para criar a subchave

  1. Usando as informações na tabela a seguir, crie uma nova chave do Registro usando o nome do arquivo executável, por exemplo, MyApp.exe.

    Método de publicação de pacote Onde criar a chave do Registro

    Publicado globalmente

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual

    Exemplo: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe

    Publicado para o usuário

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\AppV\Client\RunVirtual

    Exemplo: HKEY_CURRENT_USER \SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe

    O grupo de conexões pode conter:

    • Pacotes publicados apenas globalmente ou apenas para o usuário

    • Pacotes publicados globalmente e para o usuário

    A HKEY_LOCAL_MACHINE ou HKEY_CURRENT_USER chave, mas todas as seguintes ações devem ser verdadeiras:

    • Se você quiser incluir vários pacotes no ambiente virtual, deverá incluí-los em um grupo de conexões habilitado.

    • Crie apenas uma subchave para um dos pacotes no grupo de conexão. Se, por exemplo, você tiver um pacote publicado globalmente e outro pacote publicado para o usuário, você criará uma subchave para qualquer um desses pacotes, mas não para ambos. Embora você crie uma subchave para apenas um dos pacotes, todos os pacotes no grupo de conexão, além do aplicativo local, estarão disponíveis no ambiente virtual.

    • A chave na qual você cria a subchave deve corresponder ao método de publicação usado para o pacote.

      Por exemplo, se você publicou o pacote para o usuário, você deve criar a subchave em HKEY_CURRENT_USER\SOFTWARE\Microsoft\AppV\Client\RunVirtual.

  2. Defina o valor da nova subchave do Registro como PackageId e VersionId do pacote, separando os valores com um sublinhado.

    Sintaxe: <PackageId>_<VersionId>

    Exemplo: 4c909996-afc9-4352-b606-0b74542a09c1_be463724-Oct1-48f1-8604-c4bd7ca92fa

    O aplicativo no exemplo anterior produziria um arquivo de exportação do Registro (arquivo .reg) semelhante ao seguinte:

    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
    

Cmdlet get-AppvClientPackage do PowerShell

Você pode usar o cmdlet Start-AppVVirtualProcess para recuperar o nome do pacote e, em seguida, iniciar um processo no ambiente virtual do pacote especificado. Esse método permite que você inicie qualquer comando dentro do contexto de um pacote do App-V, independentemente de o pacote estar em execução no momento.

Use a seguinte sintaxe de exemplo e substitua o nome do pacote por <Pacote>:

$AppVName = Get-AppvClientPackage <Package>

Start-AppvVirtualProcess -AppvClientObject $AppVName cmd.exe

Se você não souber o nome exato do pacote, poderá usar a linha de comando Get-AppvClientPackage *executable\, em que *executável é o nome do aplicativo, por exemplo: Get-AppvClientPackage *Word*.

Opção de linha de comando /appvpid:<PID>

Você pode aplicar a opção /appvpid:<PID> a qualquer comando, o que permite que esse comando seja executado em um processo virtual selecionado especificando sua ID de processo (PID). O uso desse método inicia o novo executável no mesmo ambiente do App-V que um executável que já está em execução.

Exemplo: cmd.exe /appvpid:8108

Para localizar a ID de processo (PID) do processo do App-V, execute o comando tasklist.exede um prompt de comando com privilégios elevados.

Opção de gancho de linha de comando /appvve:<GUID>

Essa opção permite executar um comando local no ambiente virtual de um pacote do App-V. Ao contrário do comutador /appvid , em que o ambiente virtual já deve estar em execução, essa opção permite que você inicie o ambiente virtual.

Sintaxe: cmd.exe /appvve:<PACKAGEGUID_VERSIONGUID>

Exemplo: cmd.exe /appvve:aaaaaaaa-bbbb-cccc-dddd-eeeeeeee_11111111-2222-3333-4444-55555555

Para obter o GUID do pacote e o GUID da versão do seu aplicativo, execute o cmdlet Get-AppvClientPackage . Concatene a opção /appvve com o seguinte:

  • Dois-pontos

  • GUID do pacote desejado

  • Um sublinhado

  • ID da versão do pacote desejado

Se você não souber o nome exato do pacote, use a linha de comando Get-AppvClientPackage *executable\, em que *executável é o nome do aplicativo, por exemplo: Get-AppvClientPackage *Word*.

Esse método permite que você inicie qualquer comando dentro do contexto de um pacote do App-V, independentemente de o pacote estar em execução no momento.

Referência técnica para o App-V 5.0