Citrix DaaS™

Portas seriais

A maioria dos PCs novos não possui portas seriais (COM) integradas. As portas são fáceis de adicionar usando conversores USB. Aplicativos adequados para portas seriais geralmente envolvem sensores, controladores, leitores de cheque antigos, pads e assim por diante. Alguns dispositivos USB de porta COM virtual usam drivers específicos do fornecedor em vez dos drivers fornecidos pelo Windows (usbser.sys). Esses drivers permitem forçar a porta COM virtual do dispositivo USB para que ela não mude mesmo se conectada a diferentes soquetes USB. Isso pode ser feito no Gerenciador de Dispositivos > Portas (COM e LPT) > Propriedades ou no aplicativo que controla o dispositivo.

O mapeamento de porta COM do cliente permite que dispositivos conectados às portas COM no endpoint do usuário sejam usados durante sessões virtuais. Você pode usar esses mapeamentos como qualquer outro mapeamento de rede.

Para cada porta COM, um driver no sistema operacional atribui um nome de link simbólico, como COM1 e COM2. Os aplicativos então usam o link para acessar a porta.

Importante:

O fato de um dispositivo poder ser conectado ao endpoint usando USB diretamente não significa que ele possa ser redirecionado usando o redirecionamento USB genérico. Alguns dispositivos USB funcionam como portas COM virtuais, que os aplicativos podem acessar da mesma forma que uma porta serial física. O sistema operacional pode abstrair portas COM e tratá-las como compartilhamentos de arquivos. Dois protocolos comuns para COM virtual são CDC ACM ou MCT. Quando conectados por meio de uma porta RS-485, os aplicativos podem não funcionar. Obtenha um conversor RS-485 para RS-232 para usar RS-485 como uma porta COM. Importante:

Alguns aplicativos reconhecem o dispositivo (por exemplo, um pad de assinatura) de forma consistente apenas se ele estiver conectado a COM1 ou COM2 na estação de trabalho do cliente.

Mapear uma porta COM do cliente para uma porta COM do servidor

Você pode mapear portas COM do cliente para uma sessão Citrix® de três maneiras:

  1. Habilite as políticas Redirecionamento de porta COM do cliente e Conectar automaticamente portas COM do cliente do Studio. Após aplicadas, algumas informações estarão disponíveis no HDX™ Monitor.

    Imagem do monitor HDX

  2. Se a opção Conectar automaticamente portas COM do cliente não conseguiu mapear a porta, você pode mapear a porta manualmente ou usar scripts de logon. Faça logon no VDA e, em uma janela de prompt de comando, digite:

    NET USE COMX: \\\CLIENT\COMZ:
    <!--NeedCopy-->
    

    Ou

    NET USE COMX: \\\CLIENT\\CLIENTPORT:COMZ:
    <!--NeedCopy-->
    

    X é o número da porta COM no VDA (as portas de 1 a 9 estão disponíveis para mapeamento). Z é o número da porta COM do cliente que você deseja mapear.

    Para confirmar que a operação foi bem-sucedida, digite NET USE em um prompt de comando do VDA. A lista que aparece contém unidades mapeadas, portas LPT e portas COM mapeadas.

    Imagem do comando Net use

  3. Para usar esta porta COM em um desktop virtual ou aplicativo, instale o aplicativo do seu dispositivo de usuário e aponte-o para o nome da porta COM mapeada. Por exemplo, se você mapear COM1 no cliente para COM3 no servidor, instale o aplicativo do seu dispositivo de porta COM no VDA e aponte-o para COM3 durante a sessão. Use esta porta COM mapeada como usaria uma porta COM no dispositivo do usuário.

Importante:

O mapeamento de porta COM não é compatível com TAPI. Você não pode mapear dispositivos da Interface de Programação de Aplicativos de Telefonia do Windows (TAPI) para portas COM do cliente. TAPI define uma maneira padrão para os aplicativos controlarem as funções de telefone para chamadas de dados, fax e voz. TAPI gerencia a sinalização, incluindo discagem, atendimento e encerramento de chamadas. Além disso, serviços suplementares como retenção, transferência e chamadas em conferência.

Solução de problemas

  1. Certifique-se de que você pode acessar o dispositivo diretamente do endpoint, ignorando o Citrix. Enquanto a porta não estiver mapeada para o VDA, você não estará conectado a uma sessão Citrix. Siga as instruções de solução de problemas que acompanham o dispositivo e verifique se ele funciona localmente primeiro. Quando um dispositivo é conectado a uma porta COM serial, uma chave de registro é criada no hive mostrado aqui: Imagem de solução de problemas

    Você também pode encontrar essas informações no prompt de comando executando chgport /query.

    Solução de problemas a partir da imagem do prompt de comando

    Se as instruções de solução de problemas para o dispositivo não estiverem disponíveis, tente abrir uma sessão PuTTY. Escolha Sessão e em Linha serial especifique sua porta COM.

    Solução de problemas por imagem de sessão PuTTY

    Você pode executar MODE em uma janela de comando local. A saída pode exibir a porta COM em uso e os valores de Baud/Paridade/Bits de Dados/Bits de Parada, que você precisa em sua sessão PuTTY. Se a conexão PuTTY for bem-sucedida, pressione Enter para ver o feedback do dispositivo. Quaisquer caracteres que você digitar podem ser repetidos na tela ou respondidos. Se esta etapa não for bem-sucedida, você não poderá acessar o dispositivo a partir de uma sessão virtual.

  2. Mapeie a porta COM local para o VDA (usando políticas ou NET USE COMX: \\CLIENT\COMZ:) e repita os mesmos procedimentos do PuTTY da etapa anterior, mas desta vez a partir do PuTTY do VDA. Se o PuTTY falhar e mostrar o erro Unable to open connection to COM1. Unable to open serial port, outro dispositivo pode estar usando COM1.

  3. Execute chgport /query. Se o driver serial do Windows integrado no VDA estiver atribuindo automaticamente \Device\Serial0 a uma porta COM1 do seu VDA, faça o seguinte: A. Abra o CMD no VDA e digite NET USE.

    B. Exclua qualquer mapeamento existente (por exemplo, COM1) no VDA.

    NET USE COM1 /DELETE
    <!--NeedCopy-->
    

    C. Mapeie o dispositivo para o VDA.

    NET USE COM1: \\\CLIENT\COM3:
    <!--NeedCopy-->
    

    D. Aponte seu aplicativo no VDA para COM3.

    Por fim, tente mapear sua porta COM local (por exemplo, COM3) para uma porta COM diferente no VDA (que não seja COM1, por exemplo, COM3). Certifique-se de que seu aplicativo esteja apontando para ela:

    NET USE COM3: \\\CLIENT\COM3
    <!--NeedCopy-->
    
  4. Se agora você vir a porta mapeada, o PuTTY estiver funcionando, mas nenhum dado estiver sendo transmitido, pode ser uma condição de corrida. O aplicativo pode se conectar e abrir a porta antes que ela seja mapeada, impedindo que seja mapeada. Tente uma das seguintes opções:

    • Abra um segundo aplicativo publicado no mesmo servidor. Aguarde alguns segundos para que a porta seja mapeada e, em seguida, abra o aplicativo real que tenta usar a porta.
    • Habilite as políticas de redirecionamento de porta COM no Editor de Política de Grupo no Active Directory em vez do Studio. Essas políticas são Redirecionamento de porta COM do cliente e Conectar automaticamente portas COM do cliente. As políticas aplicadas dessa forma podem ser processadas antes das políticas do Studio, garantindo que a porta COM seja mapeada. As políticas Citrix são enviadas para o VDA e armazenadas em: HKLN\SOFTWARE\Policies\Citrix \<user session ID\>

    • Use este script de logon para o usuário ou, em vez de publicar o aplicativo, publique um script .bat que primeiro exclui qualquer mapeamento no VDA, mapeia novamente a porta COM virtual e, em seguida, inicia o aplicativo:
    @echo off
    NET USE COM1 /delete
    NET USE COM2 /delete
    NET USE COM1: \\\CLIENT\COM1:
    NET USE COM2: \\\CLIENT\COM2:
    MODE COM1: BAUD=1200 (or whatever value needed)
    MODE COM2: BAUD=9600 PARITY=N Data=8 Stop=1 (or whatever value needed)
    START C:\\Program Files\\\<Your Software Path>\\\<your_software.exe>
    <!--NeedCopy-->
    
  5. O Process Monitor do Sysinternals é a ferramenta de último recurso. Ao executar a ferramenta no VDA, localize e filtre objetos como COM3, picaser.sys, CdmRedirector, mas especialmente <seu_aplicativo>.exe. Quaisquer erros podem aparecer como Acesso Negado ou similar.

Portas seriais