Citrix Virtual Apps and Desktops

Solução de problemas

Solução de problemas de encerramento de sessão com aplicativos publicados

Ao publicar aplicativos, apenas o arquivo executável principal do aplicativo publicado é especificado. No entanto, alguns aplicativos podem produzir processos adicionais (filhos) que são executados em segundo plano e não são fechados pelo arquivo executável principal correspondente quando o aplicativo publicado principal é fechado. Processos adicionais também podem ser criados a partir de scripts executados ou de chaves de registro específicas, como Run e RunOnceKey. Esses aplicativos podem impedir um encerramento de sessão adequado, resultando em sessões persistentes ou travadas e podem fazer com que a sessão não seja fechada e o usuário não seja desconectado.

Nesse caso, você precisa redefinir ou sair dessas sessões usando o Citrix Director.

Para ajudar a identificar e solucionar problemas de sessões que não estão sendo encerradas corretamente, a Citrix disponibilizou três entradas de registro. A identificação e a solução de problemas de sessões que não estão sendo desconectadas corretamente devido a esses problemas é um processo de três etapas:

  1. Identificar quais sessões com aplicativos publicados estão impedindo um encerramento de sessão adequado.

  2. Identificar se esses aplicativos publicados produzem processos adicionais (filhos)

  3. Adicionar esses processos a uma entrada de registro especificada para evitar que impeçam o encerramento da sessão

Etapa 2: Identificar se esses aplicativos publicados produzem processos adicionais (filhos)

Uma vez que um aplicativo publicado é identificado como impedindo um encerramento de sessão adequado, a próxima etapa é determinar se este aplicativo produz processos adicionais durante a execução.

Você pode ler HKCU\Software\CitrixVolatile\Seamless\Sessions\[ID]\LogoffCheckerBlockingProcess para determinar se algum processo está bloqueando um encerramento de sessão adequado quando um aplicativo publicado é fechado.

No exemplo a seguir, a chave LogoffCheckerBlockingProcess contém as seguintes entradas:

PhoneExperienceHost.exe
SkypeApp.exe
SkypeBackgroundHost.exe
<!--NeedCopy-->

Esses processos impediram o encerramento de sessão adequado.

Nota:

Substitua o [ID] pelo ID de sessão correto para a sessão que você deseja verificar.

Etapa 3: Adicionar esses processos a uma entrada de registro especificada para evitar que impeçam o encerramento da sessão

Você pode adicionar esses processos às seguintes chaves de registro para evitar que impeçam o encerramento da sessão em futuras sessões:

Adicione o nome do arquivo do processo à seguinte chave de registro:
Cuidado! Consulte o Aviso Legal no final deste artigo antes de usar o Editor do Registro.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI
Value Name:LogoffCheckSysModules
Type:REG_SZ
String:MyAppName.exe
<!--NeedCopy-->

Para mais informações sobre LogoffCheckSysModules, consulte Graceful logoff from a published application renders the session in an active state.

Guia de solução de problemas passo a passo

  1. Inicie o serviço de registro remoto no VDA em teste:

    1. No “Painel de Controle”, selecione “Ferramentas Administrativas” > “Serviços”.

    2. Clique com o botão direito em “Serviço de Registro Remoto” e selecione “Propriedades”.

    3. Em “Tipo de inicialização”, selecione “Automático” no menu suspenso.

    Registro de aplicativo publicado

  2. Desative o “Firewall do Windows” no VDA em teste ou crie uma regra de firewall de entrada para habilitar a porta 455:

    1. No “Painel de Controle”, selecione “Firewall do Windows Defender” > “Configurações Avançadas”.

    2. Clique com o botão direito em “Regras de Entrada” e selecione “Nova Regra”.

    3. No “Assistente para Nova Regra de Entrada”, selecione “Porta”.

    4. Na página “Protocolos e Portas”, selecione “TCP e Portas Locais Específicas”. Digite 445 como a porta local.

    5. Selecione “Permitir Conexão” na página “Ação”.

    6. Selecione os perfis de firewall aos quais você deseja aplicar a nova regra de entrada.

    7. Nomeie a regra de firewall e selecione “Concluir” para sair do “Assistente para Nova Regra de Entrada”.

      Porta de firewall de aplicativo publicado

  3. De outra VM no mesmo domínio (pode ser DC, DDC ou outro VDA), execute Regedit e conecte-se a um registro remoto.

    Editor de registro de aplicativo publicado

  4. Insira o endereço IP do VDA em teste e clique em “OK”. A árvore regedit deve exibir ramificações para o VDA em teste.

    Regedit de aplicativo publicado

  5. Abra o aplicativo publicado “Prompt de Comando”.

    Gerenciar aplicativo publicado

    O aplicativo “Prompt de Comando” é exibido no Citrix Workspace.

    Prompt de comando de aplicativo publicado

  6. Abra o “Connection Center” no cliente. Isso é usado para monitorar quando uma sessão é encerrada, após fechar um aplicativo “seamless” aberto. Podemos ver na imagem a seguir que o processo “Prompt de Comando” c:\Windows\system32\cmd.exe está ativo no VDI remoto.

    Conexão de aplicativo publicado

  7. No VDA onde o regedit está sendo executado, vá para o seguinte local de IP remoto: HKEY_USERS\S-1-X-XX-XXXXXXXX-XXXXXXXXXXX-XXXXXXXXXX-XXXX\SOFTWARE\CitrixVolatile\Seamless\Sessions\X\

    Nota:

    Este caminho muda toda vez que você abre uma nova sessão.

  8. Existem duas chaves para ler aqui (não as altere aqui): LogoffCheckBlockingProcess e LogoffCheckerBlockingVisibleProcess. Essas chaves exibem quaisquer programas que estão bloqueando o encerramento da sessão. A primeira deve exibir C:\Windows\System32\cmd.exe, pois estava aberta e ainda não foi fechada.

    Nota:

    LogoffCheckBlockingProcess e LogoffCheckerBlockingVisibleProcess não devem ser editadas manualmente. A edição manual desses valores de registro pode levar a sessões instáveis.

    Aplicativo publicado 2

  9. Clique em “X” no canto superior direito para sair do “CMD Seamless”.

  10. Verifique o “Connection Center” para ver se a sessão é fechada. Pode levar até 30 segundos para fechar. Se fechar, não houve aplicativos ou processos que impediram um encerramento de sessão adequado.

    Encerramento de sessão adequado

  11. Se a sessão não fechou, atualize a saída do regedit com F5.

  12. Verifique novamente o conteúdo de LogoffCheckBlockingProcess e LogoffCheckerBlockingVisibleProcess. O CMD não deve mais estar presente, mas deve haver outro processo listado. Qualquer processo que esteja bloqueando o encerramento da sessão deve ser exibido aqui.

    Neste caso, o Notepad.exe está aberto a partir do prompt de comando publicado antes que o prompt de comando fosse fechado e este processo remoto do Notepad está impedindo um encerramento de sessão adequado.

    Regedit

  13. Anote o caminho para este executável e em qual chave ele apareceu, e insira-o na seguinte chave de registro, sob a árvore remota:

    • Se aparecer em LogoffCheckBlockingProcess: HKLM\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWILogoffCheckSysModulesInternal
    • Se aparecer em LogoffCheckerBlockingVisibleProcess: HKLM\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWILogoffCheckVisibleSysModules

    Nota:

    Se já houver uma ou mais entradas na chave, adicione uma vírgula no final e coloque a nova entrada após a vírgula.

    Regedit final

  14. Desconecte-se da sessão no “Connection Center” no cliente e reabra o “Aplicativo Remoto”.

  15. Repita as etapas 9 a 16 até que a sessão seja encerrada automaticamente em 30 segundos após fechar o “Aplicativo Remoto”.

    Nota:

    Após a solução de problemas, reverta as alterações temporárias do Firewall para permitir o acesso ao registro remoto, se necessário.

Como modificar o LogonUI para exibir a mensagem de isenção de responsabilidade do Windows em tamanho total ao abrir aplicativos publicados

A escala da janela LogonUI é aprimorada para cenários em que a autenticação pass-through não ocorre. A janela LogonUI é dimensionada com base na resolução do monitor e nas configurações de DPI usadas, o que garante que a janela LogonUI completa seja visível sem nenhum corte.

O tamanho da janela em pixels também pode ser definido manualmente no registro.

  1. Abra o “Editor do Registro” usando regedit no comando “Executar”.

  2. Vá para HKEY_LOCAL_MACHINE\Software\Citrix\CtxHook\AppInit_DLLS\Seamless Hook\.

  3. Crie duas novas chaves DWORD: LogonUIWidth e LogonUIHeight.

  4. Defina o valor das chaves para a largura e altura necessárias em pixels para a janela LogonUI.

    Ao definir manualmente o tamanho da janela LogonUI, o dimensionamento automático é desativado.

Nota:

Esses caminhos de registro foram alterados a partir da versão 2407 e posteriores. Os valores de registro antigos são ignorados e descontinuados.

Por padrão, a janela LogonUI inclui uma barra de título com um botão de fechar que permite ao usuário final desconectar-se da sessão, se necessário.

Desativar uma barra de título

Você pode desativar a barra de título na janela LogonUI com a seguinte chave de registro:

  1. Abra o “Editor do Registro” usando regedit no comando “Executar”.

  2. Vá para HKEY_LOCAL_MACHINE\Software\Citrix\CtxHook\AppInit_DLLS\Seamless Hook\.

  3. Crie novas chaves DWORD: LogonUICaption e defina o valor da chave como 0.

    Janela LogonUI com barra de título

Aplicativo publicado não aparece

Consulte os artigos de suporte para solucionar instâncias em que o aplicativo publicado não inicia ou desaparece durante o lançamento ou quando ele falha ao aparecer.

Para solucionar instâncias

Configurações adicionais de configuração Seamless

Na maioria das circunstâncias, as configurações padrão do servidor são suficientes para a maioria dos aplicativos, e nenhuma configuração adicional é necessária para aplicativos publicados.

Em alguns casos, é necessária uma configuração adicional, incluindo o controle da interação e exibição de janelas de aplicativos especificadas, bem como configurações dentro do próprio ambiente do aplicativo publicado.

Nota:

A Citrix não recomenda alterar essas configurações, a menos que seja explicitamente instruído pelo suporte da Citrix.

Essas configurações estão descritas no artigo da KB sobre configurações de configuração Seamless.

Solução de problemas