Citrix XenDesktop – Sessão de Desktop OS reconectando automaticamente ao iniciar uma aplicação

Problema:

O usuário está conectado através do Citrix Receiver em um Desktop OS. Esse usuário desconecta da sua sessão (mas não faz logoff).

No Citrix Receiver, o usuário clica em uma aplicação qualquer. O Receiver, então, executa a aplicação e reconecta a sessão de Desktop OS que estava desconectada.

Quando o usuário executa as aplicações através do Receiver for HTML esse comportamento não ocorre.

Solução:

Nesta discussão dos fóruns da Citrix, identifiquei que o StoreFront 2.1 possui um recurso denominado Workspace Control que, basicamente, serve para melhorar a usabilidade dos usuários de uma determinada aplicação utilizada cross-platform.

Neste outro tópico do mesmo site descobri que as funcionalidade do Workspace Control poderiam ser customizadas pelo cliente através do Citrix Receiver 3.X. No entanto, essas configurações foram removidas  no Citrix Receiver 4.X. Para customizá-las nesta versão, seria necessário editar algumas chaves de registro do Windows.

No artigo CTX136339 da Citrix, há a indicação para criar as chaves de registro abaixo no servidor que serve como Master Image:

Create WSCReconnectModeUser and modify existing registry key WSCReconnectMode in Master Desktop Image or in XenApp Server hosting, the published desktop can change the behavior of the Receiver.

Create the following key

64-Bit – [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Citrix\Dazzle]
32-Bit – [HKEY_CURRENT_USER\SOFTWARE\Citrix\Dazzle]

Name:  WSCReconnectModeUser
Type: REG_SZ
Value data: 0

64-Bit – [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Dazzle]
32-Bit – [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Dazzle]
Name:  WSCReconnectMode
Type: REG_SZ
Value data: 0

Entretanto, para resolver meu problema, tive que configurar essas chaves de registro nos clients que executam o Citrix Receiver, ou seja, nas estações de trabalho dos usuários. 

Para resolver esse problema, no fim, fiz o deploy de uma GPO que cria as chaves de registro indicadas no artigo para todas as estações de trabalho dos usuários.

Como publicar uma aplicação Web no Citrix XenApp

Existem algumas formas de publicar uma aplicação Web no Citrix XenApp.

A mais simples, talvez, é utilizar o modo “Kyosk” do Internet Explorer. Para isso basta utiilizar o parâmetro “-k” ao chamar o aplicativo. A configuração da aplicação no Citrix Studio deveria ficar mais ou menos assim:

Internet Explorer modo Kyosk
Internet Explorer modo Kyosk

O problema do modo Kyosk é que o IE é iniciado em tela cheia e sem o botão “Fechar”. Isso pode confundir o usuário e prejudicar a sua experiência de uso.

Outra forma de fazer isso é utilizar um script que instancia o Internet Explorer desabilitando alguns componentes (tais como a barra de endereços, botões de navegação, complementos e etc). Aqui nesse post, há um exemplo de um VB Script bem simples que dá conta do recado, e que reproduzo abaixo:

Set oIE1 = WScript.CreateObject ("InternetExplorer.Application")

oIE1.Navigate "http://www.yahoo.com"
oIE1.Visible = 1
oIE1.AddressBar = 0
oIE1.StatusBar = 0
oIE1.ToolBar = 0
oIE1.MenuBar = 0

No entanto, a minha solução preferida foi a desse outro Blog. O VB Script publicado aqui é bem mais robusto e reutilizável. Nesse caso, basta chamar o script e passar como parâmetro a URL da aplicação Web.

Set objArgs = WScript.Arguments 
If objArgs.Count = 0 Then 
 WScript.Echo "No URL provided, please supply a URL to open" & VbCrLf & VbCrLf & "e.g. CScript OpenURL.vbs http://www.google.com" 
 wscript.quit
End If

Set objIE = CreateObject("InternetExplorer.Application")

With CreateObject("internetexplorer.application") 
 .navigate "about:blank" 
 With .document.parentWindow.screen 
 iHeight = .height 
 iWidth = .width 
 End With 
End With

objIE.StatusBar = False 
objIE.Visible = True 
objIE.AddressBar = False 
objIE.MenuBar = False 
objIE.ToolBar = False 
objIE.Top = 0 
objIE.Left = 0 + 8 'Move to the side just a bit to show the desktop
objIE.Width = iWidth - 16 'Shrink to let a bit of the desktop show on the sides
objIE.Height = iHeight - 28 'Shrink a bit to see the taskbar
objIE.Navigate (objArgs(0))

A publicação de uma aplicação Web no XenDesktop utilizando essa ferramenta ficaria mais ou menos assim:

Internet Explorer chamado através do VBScrit
Internet Explorer chamado através do VBScript

Fontes: JasonSamuel.com, Citrix Discussions