Ports série

La plupart des nouveaux PC n’ont pas de ports série (COM) intégrés. Les ports sont faciles à ajouter en utilisant des convertisseurs USB. Les applications adaptées aux ports série impliquent souvent des capteurs, des contrôleurs, d’anciens lecteurs de chèques, etc. Certains périphériques USB avec port COM virtuel utilisent des pilotes spécifiques au fournisseur à la place des pilotes fournis par Windows (usbser.sys). Ces pilotes vous permettent de forcer le port COM virtuel du périphérique USB pour qu’il ne change pas même s’il est connecté à différentes prises USB. Cela peut être effectué à partir de Gestionnaire de périphériques > Ports (COM & LPT) > Propriétés ou de l’application qui contrôle le périphérique.

Le mappage des ports COM clients permet d’utiliser, au cours de sessions virtuelles, les périphériques connectés aux ports COM sur le point de terminaison de l’utilisateur. Vous pouvez utiliser ces mappages de la même façon que n’importe quel mappage réseau.

Pour chaque port COM, un pilote du système d’exploitation attribue un nom de lien symbolique tel que COM1 et COM2. Les applications utilisent ensuite le lien pour accéder au port.

Important

  • Si un périphérique peut se connecter au point de terminaison en utilisant directement USB, cela ne signifie pas qu’il peut être redirigé à l’aide de la redirection USB générique. Certains périphériques USB fonctionnent comme des ports COM virtuels, auxquels les applications peuvent accéder de la même manière qu’un port série physique. Le système d’exploitation peut extraire les ports COM et les traiter comme des partages de fichiers. Deux protocoles courants pour COM virtuel sont CDC ACM ou MCT. Lorsqu’elles sont connectées via un port RS-485, les applications peuvent ne pas fonctionner du tout. Procurez-vous un convertisseur RS-485 vers RS232 pour utiliser RS-485 en tant que port COM.
  • Certaines applications reconnaissent le périphérique (par exemple, un dispositif de signature numérique) de manière cohérente uniquement s’il est connecté à COM1 ou COM2 sur le poste de travail client.

Mapper un port COM client à un port COM serveur

Vous pouvez mapper les ports COM clients à une session Citrix de trois manières :

  1. Activez les stratégies Studio Redirection du port COM client et Connecter automatiquement les ports COM du client. Une fois qu’elles sont appliquées, certaines informations sont disponibles dans HDX Monitor.

    Image de HDX Monitor

  2. Si la stratégie Connecter automatiquement les ports COM du client n’a pas réussi à mapper le port, vous pouvez mapper le port manuellement ou utiliser des scripts d’ouverture de session. Connectez-vous au VDA et, dans une fenêtre d’invite de commande, tapez :

    NET USE COMX: \\CLIENT\COMZ:

    Ou

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

    X est le numéro du port COM sur le VDA (les ports 1 à 9 sont disponibles pour le mappage). Z est le numéro du port COM client que vous voulez mapper.

    Pour vérifier si l’opération a réussi, tapez NET USE dans une invite de commande VDA. La liste qui apparaît affiche les lecteurs, ports LPT et ports COM mappés.

    Image de la commande NET USE

  3. Pour utiliser ce port COM dans une application ou un bureau virtuel, installez l’application de votre périphérique utilisateur et pointez-la vers le nom du port COM mappé. Par exemple, si le port COM1 du client est mappé sur le port COM3 du serveur, installez votre application de périphérique de port COM dans le VDA et pointez-la vers le port COM5 dans la session. Utilisez ce port COM comme vous utiliseriez n’importe quel autre port COM de la machine utilisateur.

Important

Le mappage des ports COM n’est pas compatible avec l’interface TAPI. Vous ne pouvez pas mapper les périphériques TAPI (Windows Telephony Application Programming Interface) aux ports COM du client. TAPI définit un moyen standard pour les applications de contrôler les fonctions téléphoniques pour les données, les télécopies et les appels. TAPI gère la signalisation, y compris la numérotation, la réponse et la fin des appels, ainsi que des services supplémentaires tels que la mise en attente, le transfert et les conférences téléphoniques.

Dépannage

  1. Assurez-vous que vous pouvez accéder au périphérique directement depuis le point de terminaison, sans passer par Citrix. Tant que le port n’est pas mappé au VDA, vous n’êtes pas connecté à une session Citrix. Suivez les instructions de dépannage fournies avec le périphérique et vérifiez d’abord qu’il fonctionne localement. Lorsqu’un périphérique est connecté à un port COM série, une clé de registre est créée sur la ruche affichée ici : Image de dépannage

    Vous pouvez également trouver ces informations à partir de l’invite de commande en exécutant chgport /query.

    Image de dépannage à partir de l'invite de commande

    Si les instructions de dépannage du périphérique ne sont pas disponibles, essayez d’ouvrir une session PuTTY. Choisissez Session et dans Serial line, spécifiez votre port COM.

    Image de dépannage par session PuTTY

    Vous pouvez exécuter MODE dans une fenêtre de commande locale. La sortie peut afficher le port COM utilisé et les données Baud/Parity/Data Bits/Stop Bits, dont vous avez besoin dans votre session PuTTY. Si la connexion PuTTY est réussie, appuyez surEntrée pour voir le retour du périphérique. Quels que soient les caractères que vous tapez, ils peuvent être répétés à l’écran ou obtenir une réponse. Si cette étape échoue, vous ne pouvez pas accéder au périphérique à partir d’une session virtuelle.

  2. Mappez le port COM local sur le VDA (en utilisant des stratégies ou NET USE COMX: \\CLIENT\COMZ:) et répétez les mêmes procédures PuTTY qu’à l’étape précédente, mais cette fois à partir du PuTTY du VDA. Si PuTTY échoue affichant l’erreur Unable to open connection to COM1. Unable to open serial port, il est possible qu’un autre périphérique utilise COM1.

  3. Exécutez chgport /query. Si le pilote série Windows intégré sur le VDA attribue automatiquement \Device\Serial0 à un port COM1 de votre VDA, procédez comme suit : A. Ouvrez CMD sur le VDA et tapez NET USE.

    B. Supprimez tout mappage existant (par exemple, COM1) sur le VDA.

    NET USE COM1 /DELETE

    C. Mappez le périphérique sur le VDA.

    NET USE COM1: \\CLIENT\COM3:

    D. Pointez votre application sur le VDA vers COM3.

    Enfin, essayez de mapper votre port COM local (par exemple, COM3) à un autre port COM sur le VDA (autre que COM1, par exemple COM3). Assurez-vous que votre application pointe vers celui-ci : NET USE COM3: \\CLIENT\COM3

  4. Si maintenant vous voyez le port mappé, que PuTTY fonctionne mais qu’aucune donnée ne passe, il peut s’agir d’une condition de concurrence. L’application peut connecter et ouvrir le port avant qu’il ne soit mappé, ce qui l’empêche d’être mappé. Essayez l’une des solutions suivantes :

    • Ouvrez une deuxième application publiée sur le même serveur. Attendez quelques secondes que le port soit mappé, puis ouvrez l’application réelle qui essaie d’utiliser le port.
    • Activez les stratégies de redirection de port COM à partir de l’Éditeur de stratégie de groupe dans Active Directory au lieu de Studio. Ces stratégies sont Redirection du port COM client et Connecter automatiquement les ports COM du client. Les stratégies appliquées de cette manière peuvent être traitées avant les stratégies Studio, garantissant que le port COM est mappé. Les stratégies Citrix sont transmises au VDA et stockées dans : HKLN\SOFTWARE\Policies\Citrix <ID session utilisateur>

    • Utilisez ce script d’ouverture de session pour l’utilisateur ou au lieu de publier l’application, publiez un script .bat qui supprime d’abord tout mappage sur le VDA, remappe le port COM virtuel, puis lance l’application :

    @echo off NET USE COM1 /delete NET USE COM2 /delete NET USE COM1: \\CLIENT\COM1: NET USE COM2: \\CLIENT\COM2: MODE COM1: BAUD=1200 (ou toute valeur requise) MODE COM2: BAUD=9600 PARITY=N Data=8 Stop=1 (ou toute valeur requise) START C:\Program Files\<chemin de votre logiciel>\

  5. Process Monitor de Sysinternals est l’outil de dernier recours. Lors de l’exécution de l’outil sur le VDA, trouvez et filtrez les objets comme COM3, picaser.sys, CdmRedirector, mais surtout .exe Toutes les erreurs peuvent apparaître comme Accès refusé ou similaire.

Ports série