Citrix Virtual Apps and Desktops 7 2402 LTSR

Puertos serie

La mayoría de los PC nuevos no tienen puertos serie (COM) integrados. Los puertos son fáciles de añadir mediante convertidores USB. Las aplicaciones adecuadas para puertos serie a menudo implican sensores, controladores, lectores de cheques antiguos, almohadillas, etc. Algunos dispositivos USB de puerto COM virtual utilizan controladores específicos del proveedor en lugar de los controladores proporcionados por Windows (usbser.sys). Estos controladores le permiten forzar el puerto COM virtual del dispositivo USB para que no cambie, incluso si se conecta a diferentes tomas USB. Esto se puede hacer desde el Administrador de dispositivos > Puertos (COM y LPT) > Propiedades o desde la aplicación que controla el dispositivo.

La asignación de puertos COM de cliente permite utilizar los dispositivos conectados a los puertos COM del punto final del usuario durante las sesiones virtuales. Puede utilizar estas asignaciones como cualquier otra asignación de red.

Para cada puerto COM, un controlador del sistema operativo asigna un nombre de vínculo simbólico como COM1 y COM2. Las aplicaciones utilizan entonces el vínculo para acceder al puerto.

Importante:

Que un dispositivo pueda conectarse al punto final directamente mediante USB no significa que pueda redirigirse mediante la redirección USB genérica. Algunos dispositivos USB funcionan como puertos COM virtuales, a los que las aplicaciones pueden acceder de la misma manera que a un puerto serie físico. El sistema operativo puede abstraer los puertos COM y tratarlos como recursos compartidos de archivos. Dos protocolos comunes para COM virtual son CDC ACM o MCT. Cuando se conectan a través de un puerto RS-485, es posible que las aplicaciones no funcionen en absoluto. Obtenga un convertidor de RS-485 a RS-232 para usar RS-485 como puerto COM. Importante:

Algunas aplicaciones reconocen el dispositivo (por ejemplo, una tableta de firma) de forma consistente solo si está conectado a COM1 o COM2 en la estación de trabajo cliente.

Asignar un puerto COM de cliente a un puerto COM de servidor

Puede asignar puertos COM de cliente a una sesión de Citrix® de tres maneras:

  1. Habilite las directivas de Studio Redirección de puertos COM de cliente y Conectar automáticamente puertos COM de cliente. Una vez aplicadas, hay información disponible en HDX™ Monitor.

    Imagen de HDX monitor

  2. Si la opción Conectar automáticamente puertos COM de cliente no pudo asignar el puerto, puede asignarlo manualmente o usar scripts de inicio de sesión. Inicie sesión en el VDA y, en una ventana del símbolo del sistema, escriba:

    NET USE COMX: \\CLIENT\COMZ:

    O

    NET USE COMX: \\CLIENT\CLIENTPORT:COMZ:

    X es el número del puerto COM en el VDA (los puertos del 1 al 9 están disponibles para la asignación). Z es el número del puerto COM del cliente que desea asignar.

    Para confirmar que la operación se realizó correctamente, escriba NET USE en un símbolo del sistema del VDA. La lista que aparece contiene unidades asignadas, puertos LPT y puertos COM asignados.

    Imagen del comando Net use

  3. Para usar este puerto COM en un escritorio o aplicación virtual, instale la aplicación de su dispositivo de usuario y apúntela al nombre del puerto COM asignado. Por ejemplo, si asigna COM1 en el cliente a COM3 en el servidor, instale la aplicación de su dispositivo de puerto COM en el VDA y apúntela a COM3 durante la sesión. Utilice este puerto COM asignado como lo haría con un puerto COM en el dispositivo de usuario.

Importante:

La asignación de puertos COM no es compatible con TAPI. No se pueden asignar dispositivos de la Interfaz de programación de aplicaciones de telefonía (TAPI) de Windows a puertos COM de cliente. TAPI define una forma estándar para que las aplicaciones controlen las funciones telefónicas para llamadas de datos, fax y voz. TAPI gestiona la señalización, incluida la marcación, la respuesta y la finalización de llamadas. También los servicios suplementarios como la retención, la transferencia y las llamadas de conferencia.

Solución de problemas

  1. Asegúrese de poder acceder al dispositivo directamente desde el punto final, sin pasar por Citrix. Si el puerto no está asignado al VDA, no estará conectado a una sesión de Citrix. Siga las instrucciones de solución de problemas que vienen con el dispositivo y verifique que funcione localmente primero. Cuando un dispositivo se conecta a un puerto COM serie, se crea una clave de registro en el hive que se muestra aquí: Imagen de solución de problemas

    También puede encontrar esta información desde el símbolo del sistema ejecutando chgport /query.

    Imagen de solución de problemas desde el símbolo del sistema

    Si no hay instrucciones de solución de problemas disponibles para el dispositivo, intente abrir una sesión de PuTTY. Elija Session y en Serial line especifique su puerto COM.

    Imagen de solución de problemas mediante sesión de PuTTY

    Puede ejecutar MODE en una ventana de comandos local. La salida podría mostrar el puerto COM en uso y los valores de Baudios/Paridad/Bits de datos/Bits de parada, que necesita en su sesión de PuTTY. Si la conexión de PuTTY es correcta, pulse Intro para ver la respuesta del dispositivo. Cualquier carácter que escriba podría repetirse en la pantalla o recibir una respuesta. Si este paso no tiene éxito, no podrá acceder al dispositivo desde una sesión virtual.

  2. Asigne el puerto COM local al VDA (mediante directivas o NET USE COMX: \\CLIENT\COMZ:) y repita los mismos procedimientos de PuTTY del paso anterior, pero esta vez desde el PuTTY del VDA. Si PuTTY no muestra el error Unable to open connection to COM1. Unable to open serial port, es posible que otro dispositivo esté utilizando COM1.

  3. Ejecute chgport /query. Si el controlador serie de Windows integrado en el VDA asigna automáticamente \Device\Serial0 a un puerto COM1 de su VDA, haga lo siguiente: A. Abra CMD en el VDA y escriba NET USE.

    B. Elimine cualquier asignación existente (por ejemplo, COM1) en el VDA.

    NET USE COM1 /DELETE

    C. Asigne el dispositivo al VDA.

    NET USE COM1: \\CLIENT\COM3:

    D. Apunte su aplicación en el VDA a COM3.

    Por último, intente asignar su puerto COM local (por ejemplo, COM3) a un puerto COM diferente en el VDA (que no sea COM1, por ejemplo, COM3). Asegúrese de que su aplicación apunte a él: NET USE COM3: \\CLIENT\COM3

  4. Si ahora ve el puerto asignado, PuTTY funciona pero no se transfieren datos, podría tratarse de una condición de carrera. La aplicación podría conectarse y abrir el puerto antes de que se asigne, impidiendo su asignación. Pruebe una de las siguientes opciones:

    • Abra una segunda aplicación publicada en el mismo servidor. Espere unos segundos a que se asigne el puerto y, a continuación, abra la aplicación real que intenta utilizar el puerto.
    • Habilite las directivas de redirección de puertos COM desde el Editor de directivas de grupo en Active Directory en lugar de Studio. Esas directivas son Redirección de puertos COM de cliente y Conexión automática de puertos COM de cliente. Las directivas aplicadas de esta manera podrían procesarse antes que las directivas de Studio, lo que garantiza que el puerto COM esté asignado. Las directivas de Citrix se envían al VDA y se almacenan en: HKLN\SOFTWARE\Policies\Citrix \<user session ID\>

    • Utilice este script de inicio de sesión para el usuario o, en lugar de publicar la aplicación, publique un script .bat que primero elimine cualquier asignación en el VDA, reasigne el puerto COM virtual y luego inicie la aplicación:

    @echo off NET USE COM1 /delete NET USE COM2 /delete NET USE COM1: \\CLIENT\COM1: NET USE COM2: \\CLIENT\COM2: MODE COM1: BAUD=1200 (o cualquier valor necesario) MODE COM2: BAUD=9600 PARITY=N Data=8 Stop=1 (o cualquier valor necesario) START C:\Program Files\<Your Software Path>\<your_software.exe>

  5. Process Monitor de Sysinternals es la herramienta de último recurso. Al ejecutar la herramienta en el VDA, busque y filtre objetos como COM3, picaser.sys, CdmRedirector, pero especialmente <your_app>.exe. Cualquier error podría aparecer como Acceso denegado o similar.

Puertos serie