Executar uma aplicação instalada localmente num ambiente virtual com aplicações virtualizadas (5.1)
Pode executar uma aplicação instalada localmente num ambiente virtual, juntamente com aplicações que foram virtualizadas com o Microsoft Application Virtualization (App-V). Poderá querer fazê-lo se:
Quer instalar e executar uma aplicação localmente em computadores cliente, mas quer virtualizar e executar plug-ins específicos que funcionam com essa aplicação local.
Estão a resolver problemas com um pacote de cliente app-V e querem abrir uma aplicação local no ambiente virtual app-V.
Utilize qualquer um dos seguintes métodos para abrir uma aplicação local dentro do ambiente virtual app-V:
Cada método realiza essencialmente a mesma tarefa, mas alguns métodos podem ser mais adequados para algumas aplicações do que outros, dependendo se a aplicação virtualizada já está em execução.
RunVirtual registry key (Chave de registo RunVirtual)
Para adicionar uma aplicação instalada localmente a um pacote ou ao ambiente virtual de um grupo de ligação, adicione uma subchave à RunVirtual
chave de registo no Editor de Registo, conforme descrito nas secções seguintes.
Não existe nenhuma definição de Política de Grupo disponível para gerir esta chave de registo, pelo que tem de utilizar o System Center Configuration Manager ou outro sistema de distribuição eletrónica de software (ESD) ou editar manualmente o registo.
Métodos suportados de publicação de pacotes ao utilizar o RunVirtual
Versão do App-V | Métodos de publicação suportados |
---|---|
App-V 5.0 SP3 e App-V 5.1 | Publicado globalmente ou para o utilizador |
App-V 5.0 até App-V 5.0 SP2 | Publicado apenas globalmente |
Passos para criar a subchave
Com as informações na tabela seguinte, crie uma nova chave de registo com o nome do ficheiro executável, por exemplo, MyApp.exe.
Método de publicação de pacotes Onde criar a chave de registo Publicado globalmente HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual
Exemplo:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe
Publicado para o utilizador HKEY_CURRENT_USER\SOFTWARE\Microsoft\AppV\Client\RunVirtual
Exemplo:HKEY_CURRENT_USER\SOFTWARE\Microsoft\AppV\Client\RunVirtual\MyApp.exe
O grupo de ligação pode conter: - Pacotes que são publicados globalmente ou apenas para o utilizador
- Pacotes publicados globalmente e para o utilizador
Quer HKEY_LOCAL_MACHINE ou HKEY_CURRENT_USER chave, mas todos os seguintes têm de ser verdadeiros: - Se quiser incluir vários pacotes no ambiente virtual, tem de os incluir num grupo de ligação ativado.
- Crie apenas uma subchave para um dos pacotes no grupo de ligação. Se, por exemplo, tiver um pacote publicado globalmente e outro pacote publicado no utilizador, crie uma subchave para qualquer um destes pacotes, mas não para ambos. Apesar de criar uma subchave apenas para um dos pacotes, todos os pacotes no grupo de ligação, além da aplicação local, estarão disponíveis no ambiente virtual.
- A chave sob a qual cria a subchave tem de corresponder ao método de publicação que utilizou para o pacote.
Por exemplo, se publicou o pacote para o utilizador, tem de criar a subchave emHKEY_CURRENT_USER\SOFTWARE\Microsoft\AppV\Client\RunVirtual
.
Defina o valor da nova subchave de registo como PackageId e VersionId do pacote, separando os valores com um caráter de sublinhado.
Sintaxe: <PackageId>_<VersionId>
Exemplo: 4c909996-afc9-4352-b606-0b74542a09c1_be463724-Out1-48f1-8604-c4bd7ca92fa
A aplicação no exemplo anterior produziria um ficheiro de exportação de registo (.reg ficheiro) da seguinte forma:
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 do PowerShell Get-AppvClientPackage
Pode utilizar o cmdlet Start-AppVVirtualProcess para obter o nome do pacote e, em seguida, iniciar um processo no ambiente virtual do pacote especificado. Este método permite-lhe iniciar qualquer comando no contexto de um pacote App-V, independentemente de o pacote estar atualmente em execução.
Utilize a seguinte sintaxe de exemplo e substitua o nome do pacote por <Pacote>:
$AppVName = Get-AppvClientPackage <Package>
Start-AppvVirtualProcess -AppvClientObject $AppVName cmd.exe
Se não souber o nome exato do seu pacote, pode utilizar a linha de comandos Get-AppvClientPackage *executable\, em que *executável é o nome da aplicação, por exemplo: Get-AppvClientPackage *Word*.
Comutador de linha de comandos /appvpid:<PID>
Pode aplicar o comutador /appvpid:<PID> a qualquer comando, o que permite que esse comando seja executado num processo virtual que selecionar ao especificar o respetivo ID de processo (PID). A utilização deste método inicia o novo executável no mesmo ambiente app-V que um executável que já está em execução.
Exemplo: cmd.exe /appvpid:8108
Para localizar o ID do processo (PID) do processo app-V, execute o comando tasklist.exe a partir de uma linha de comandos elevada.
Comutador de hook da linha de comandos /appvve:<GUID>
Este comutador permite-lhe executar um comando local no ambiente virtual de um pacote App-V. Ao contrário do comutador /appvid , onde o ambiente virtual já tem de estar em execução, este comutador permite-lhe iniciar 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 da sua aplicação, execute o cmdlet Get-AppvClientPackage . Concatene o comutador /appvve com o seguinte:
Dois pontos
GUID do pacote pretendido
Um caráter de sublinhado
ID da versão do pacote pretendido
Se não souber o nome exato do seu pacote, utilize a linha de comandos Get-AppvClientPackage *executável\, em que *executável é o nome da aplicação, por exemplo: Get-AppvClientPackage *Word*.
Este método permite-lhe iniciar qualquer comando no contexto de um pacote App-V, independentemente de o pacote estar atualmente em execução.