Citrix Virtual Apps and Desktops

Serielle Ports

Die meisten neuen PCs haben keine seriellen (COM) Ports. Serielle Ports können problemlos per USB-Konverter hinzugefügt werden. Anwendungen, die für serielle Ports geeignet sind, umfassen häufig Sensoren, Controller, alte Lesegeräte usw. Für manche virtuellen USB-COM-Portgeräte werden herstellerspezifische Treiber anstelle der Windows-Treiber (usbser.sys) verwendet. Mit solchen Treibern können Sie den virtuellen COM-Port des USB-Geräts so festlegen, dass er sich auch bei Anschluss an andere USB-Anschlüsse nicht ändert. Die Einstellung kann über Geräte-Manager > Anschlüsse (COM & LPT) > Eigenschaften oder über die Anwendung zur Gerätesteuerung erfolgen.

Mit der Client-COM-Portzuordnung können Geräte, die an einen COM-Port eines Endgeräts angeschlossen sind, in virtuellen Sitzungen verwendet werden. Die Zuordnungen können genau wie andere Netzwerkzuordnungen verwendet werden.

Ein Treiber im Betriebssystem weist jedem COM-Port einen symbolischen Linknamen (COM1, COM2 usw.) zu. Die Anwendungen verwenden den Link, um auf den Port zuzugreifen.

Wichtig:

Geräte können zwar direkt per USB an Endpunkte angeschlossen werden, dies bedeutet aber nicht, dass sie über die generische USB-Umleitung umgeleitet werden können. Manche USB-Geräte fungieren als virtuelle COM-Ports, auf die Anwendungen wie auf physische serielle Ports zugreifen. Das Betriebssystem kann COM-Ports abstrahieren und sie wie Dateifreigaben behandeln. Zwei gebräuchliche Protokolle für virtuelle COM-Ports sind CDC ACM und MCT. Bei Anschluss an eine RS-485-Schnittstelle funktionieren Anwendungen evtl. nicht. Mit einem RS-485-zu-RS232-Konverter können Sie RS-485-Schnittstellen als COM-Port verwenden. Wichtig:

Einige Anwendungen erkennen ein Gerät (z. B. ein Unterschriftenpad) nur dann zuverlässig, wenn es über COM1 oder COM2 an der Clientarbeitsstation angeschlossen ist.

Zuordnen eines COM-Ports für Clients zu einem Server-COM-Port

Sie können Client-COM-Ports einer Citrix Sitzung auf dreierlei Weise zuordnen:

  1. Aktivieren Sie die Studio-Richtlinien Client-COM-Portumleitung und Client-COM-Ports automatisch verbinden. Nach der Anwendung stehen diverse Informationen in HDX Monitor zur Verfügung.

    Abbildung von HDX Monitor

  2. Wenn der Port durch Client-COM-Ports automatisch verbinden nicht zugeordnet werden kann, können Sie ihn manuell oder über Anmeldeskripts zuordnen. Melden Sie sich beim VDA an und geben Sie in einer Eingabeaufforderung Folgendes ein:

    NET USE COMX: \\CLIENT\COMZ:

    oder

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

    X ist die Nummer des COM-Ports auf dem VDA (Ports 1 bis 9 stehen für die Zuordnung zur Verfügung). Z ist der Name des Client-COM-Ports, den Sie zuordnen möchten.

    Um zu überprüfen, ob der Vorgang erfolgreich war, geben Sie NET USE an einer VDA-Eingabeaufforderung ein. Die angezeigte Liste enthält zugeordnete Laufwerke, LPT- und zugeordnete COM-Ports.

    Abbildung des NET USE-Befehls

  3. Um den COM-Port auf einem virtuellen Desktop oder in einer Anwendung zu verwenden, installieren Sie die Anwendung und verweisen Sie sie auf den zugeordneten Namen. Wenn Sie beispielsweise Port COM1 auf dem Client dem Port COM3 auf dem Server zuordnen, installieren Sie die COM-Portanwendung auf dem VDA und verweisen Sie sie in der Sitzung auf COM3. Verwenden Sie diesen zugeordneten COM-Port dann wie einen COM-Port auf dem Benutzergerät.

Wichtig:

Die Zuordnung von COM-Ports ist nicht mit TAPI kompatibel. Sie können TAPI-Geräte (Windows Telephony Application Programming Interface) nicht Client-COM-Ports zuordnen. TAPI definiert eine Standardmethode zur Steuerung von Telefonfunktionen für Daten-, Fax- und Sprachanrufe durch Anwendungen. TAPI übernimmt die Signalverarbeitung (Wählen, Beantworten und Beenden von Anrufen). Außerdem ermöglicht TAPI Dienste wie Halten und Verbinden von Anrufen und Konferenzschaltungen.

Problembehandlung

  1. Vergewissern Sie sich, dass Sie vom Endpunkt unter Umgehung von Citrix direkt auf das Gerät zugreifen können. Wenn der Port nicht dem VDA zugeordnet ist, sind Sie nicht mit einer Citrix Sitzung verbunden. Folgen Sie allen mit dem Gerät gelieferten Anweisungen zur Problembehandlung und stellen Sie zuerst sicher, dass es lokal funktioniert. Wenn ein Gerät an einen seriellen COM-Port angeschlossen wird, wird ein Registrierungsschlüssel mit folgender Struktur erstellt: Abbildung der Problembehandlung

    Sie finden diese Informationen auch durch Ausführen von chgport /query an der Eingabeaufforderung.

    Abbildung der Problembehandlung über die Eingabeaufforderung

    Stehen keine Anweisungen zur Fehlerbehebung für das Gerät zur Verfügung, versuchen Sie es mit einer PuTTY-Sitzung. Wählen Sie Session und geben Sie für Serial line Ihren COM-Port an.

    Abbildung der Problembehandlung per PuTTY-Sitzung

    Sie können MODE in einem lokalen Befehlsfenster ausführen. Die Ausgabe zeigt den verwendeten COM-Port sowie ggf. die für die PuTTY-Sitzung benötigten Baud/Parity/Data Bits/Stop Bits an. Wenn die PuTTY-Verbindung erfolgreich ist, drücken Sie die Eingabetaste, um eine Rückmeldung vom Gerät zu erhalten. Von Ihnen eingegebene Zeichen werden ggf. auf dem Bildschirm wiederholt oder beantwortet. Wenn dies nicht möglich ist, können Sie nicht aus virtuellen Sitzungen auf das Gerät zugreifen.

  2. Ordnen Sie den lokalen COM-Port dem VDA zu (mithilfe von Richtlinien oder NET USE COMX: \\CLIENT\COMZ:) und wiederholen Sie die PuTTY-Prozeduren im vorherigen Schritt, diesmal jedoch per VDA-PuTTY. Schlägt PuTTY mit dem Fehler Unable to open connection to COM1. Unable to open serial port fehl, wird COM1 möglicherweise von einem anderen Gerät verwendet.

  3. Führen Sie chgport /query aus. Wenn der integrierte Windows-Treiber für serielle Ports auf dem VDA COM1 automatisch \Device\Serial0 zuordnet, gehen Sie folgendermaßen vor: A. Öffnen Sie CMD auf dem VDA und geben Sie NET USE ein.

    B. Löschen Sie eine ggf. vorhandene Zuweisung (z. B. COM1) auf dem VDA.

    NET USE COM1 /DELETE

    C. Ordnen Sie das Gerät dem VDA zu.

    NET USE COM1: \\CLIENT\COM3:

    D. Verweisen Sie die Anwendung auf dem VDA an COM3.

    Versuchen Sie als Letztes, den lokalen COM-Port (z. B. COM3) einem anderen COM-Port auf dem VDA als COM1 zuzuordnen (z. B. COM3). Stellen Sie sicher, dass Ihre Anwendung darauf verweist: NET USE COM3: \\CLIENT\COM3

  4. Wenn der Port jetzt als zugeordnet erscheint und PuTTY funktioniert aber keine Daten übertragen werden, kann eine Racebedingung vorliegen. Die Anwendung stellt möglicherweise vor der Portzuordnung eine Verbindung her und öffnet den Port, sodass dieser für die Zuordnung gesperrt ist. Versuchen Sie eine der folgenden Möglichkeiten:

    • Öffnen Sie eine zweite Anwendung, die auf demselben Server veröffentlicht wurde. Warten Sie einige Sekunden, bis der Port zugeordnet ist, und öffnen Sie dann die eigentliche Anwendung, die den Port verwenden soll.
    • Aktivieren Sie die Richtlinien für die COM-Portumleitung über den Gruppenrichtlinien-Editor in Active Directory anstelle von Studio. Es handelt sich um die Studio-Richtlinien Client-COM-Portumleitung und Client-COM-Ports automatisch verbinden. Auf diese Weise angewendete Richtlinien werden ggf. vor den Studio-Richtlinien verarbeitet, wodurch sichergestellt wird, dass der COM-Port zugeordnet wird. Citrix Richtlinien werden an den VDA übertragen und an folgenden Orten gespeichert: HKLN\SOFTWARE\Policies\Citrix \<user session ID\>

    • Verwenden Sie dieses Anmeldeskript für den Benutzer oder veröffentlichen Sie anstelle der Anwendung ein BAT-Skript, das zuerst alle Zuordnungen auf dem VDA löscht, den virtuellen COM-Anschluss neu zuordnet und anschließend die Anwendung startet:

    @echo off NET USE COM1 /delete NET USE COM2 /delete NET USE COM1: \\CLIENT\COM1: NET USE COM2: \\CLIENT\COM2: MODE COM1: BAUD=1200 (bzw. jeweils erforderlicher Wert) MODE COM2: BAUD=9600 PARITY=N Data=8 Stop=1 (bzw. jeweils erforderlicher Wert) START C:\Program Files\<Your Software Path>\

  5. Als letzte Möglichkeit können Sie den Prozessmonitor von Sysinternals verwenden. Suchen und filtern Sie mit diesem Tool auf dem VDA Objekte wie COM3, picaser.sys, CdmRedirector und insbesondere <Anwendungsname>.exe. Fehler werden in Form von “Zugriff verweigert” oder ähnlich angezeigt.

Serielle Ports