シリアルポート
ほとんどの新しいPCには、内蔵のシリアル(COM)ポートがありません。USBコンバーターを使用すると、ポートを簡単に追加できます。シリアルポートに適したアプリケーションには、センサー、コントローラー、古いチェックリーダー、パッドなどがよく含まれます。一部のUSB仮想COMポートデバイスは、Windowsが提供するドライバー(usbser.sys)の代わりに、ベンダー固有のドライバーを使用します。これらのドライバーを使用すると、USBデバイスの仮想COMポートを、異なるUSBソケットに接続しても変更されないように強制できます。これは、デバイスマネージャー > ポート (COM と LPT) > プロパティから、またはデバイスを制御するアプリケーションから行うことができます。
クライアントCOMポートマッピングを使用すると、ユーザーのエンドポイントのCOMポートに接続されたデバイスを仮想セッション中に使用できます。これらのマッピングは、他のネットワークマッピングと同様に使用できます。
各COMポートに対して、オペレーティングシステムのドライバーはCOM1やCOM2などのシンボリックリンク名を割り当てます。アプリケーションは、そのリンクを使用してポートにアクセスします。
重要:
デバイスがUSBを直接使用してエンドポイントに接続できるからといって、汎用USBリダイレクトを使用してリダイレクトできるとは限りません。一部のUSBデバイスは仮想COMポートとして機能し、アプリケーションは物理シリアルポートと同じ方法でアクセスできます。オペレーティングシステムはCOMポートを抽象化し、ファイル共有のように扱うことができます。仮想COMの2つの一般的なプロトコルは、CDC ACMまたはMCTです。RS-485ポートを介して接続されている場合、アプリケーションがまったく機能しない可能性があります。RS-485をCOMポートとして使用するには、RS-485-to-RS232コンバーターを入手してください。 重要:
一部のアプリケーションは、デバイス(たとえば、署名パッド)がクライアントワークステーションのCOM1またはCOM2に接続されている場合にのみ、一貫して認識します。
クライアントCOMポートをサーバーCOMポートにマッピングする
クライアントCOMポートをCitrix®セッションにマッピングするには、3つの方法があります。
- Studioポリシー。ポリシーの詳細については、「ポートリダイレクトポリシー設定」を参照してください。
- VDAコマンドプロンプト。
- リモートデスクトップ(ターミナルサービス)構成ツール。
-
クライアントCOMポートリダイレクトおよびクライアントCOMポートの自動接続Studioポリシーを有効にします。適用後、HDX™ Monitorで一部の情報が利用可能になります。

-
クライアントCOMポートの自動接続がポートのマッピングに失敗した場合、手動でポートをマッピングするか、ログオンスクリプトを使用できます。VDAにログオンし、コマンドプロンプトウィンドウで次のように入力します。
ネット ユース COMX: \クライアント\COMZ:
または
ネット ユース COMX: \クライアント\クライアントポート:COMZ:
X はVDA上のCOMポートの番号です(ポート1~9がマッピングに利用可能です)。Z はマッピングしたいクライアントCOMポートの番号です。
操作が成功したことを確認するには、VDAコマンドプロンプトで「NET USE」と入力します。表示されるリストには、マップされたドライブ、LPTポート、およびマップされたCOMポートが含まれます。

-
仮想デスクトップまたはアプリケーションでこのCOMポートを使用するには、ユーザーデバイスアプリケーションをインストールし、マップされたCOMポート名を指定します。たとえば、クライアント上のCOM1をサーバー上のCOM3にマップする場合、VDAにCOMポートデバイスアプリケーションをインストールし、セッション中にCOM3を指定します。このマップされたCOMポートは、ユーザーデバイス上のCOMポートと同様に使用します。
重要:
COMポートマッピングはTAPI互換ではありません。Windows Telephony Application Programming Interface (TAPI) デバイスをクライアントCOMポートにマッピングすることはできません。TAPIは、アプリケーションがデータ、FAX、音声通話の電話機能を制御するための標準的な方法を定義します。TAPIは、ダイヤル、応答、通話終了などのシグナリングを管理します。また、保留、転送、会議通話などの付加サービスも管理します。
トラブルシューティング
-
Citrixをバイパスして、エンドポイントから直接デバイスにアクセスできることを確認してください。ポートがVDAにマップされていない間は、Citrixセッションに接続されていません。デバイスに付属のトラブルシューティング手順に従い、まずローカルで動作することを確認してください。 シリアルCOMポートにデバイスが接続されると、ここに示されているハイブにレジストリキーが作成されます。

この情報は、コマンドプロンプトで「chgport /query」を実行することでも確認できます。

デバイスのトラブルシューティング手順が利用できない場合は、PuTTYセッションを開いてみてください。「Session」を選択し、「Serial line」でCOMポートを指定します。

ローカルコマンドウィンドウでMODEを実行できます。出力には、使用中のCOMポートと、PuTTYセッションで必要となるボーレート/パリティ/データビット/ストップビットが表示される場合があります。PuTTY接続が成功した場合は、Enterを押してデバイスからのフィードバックを確認します。入力した文字が画面に繰り返されたり、応答されたりする場合があります。この手順が失敗した場合、仮想セッションからデバイスにアクセスすることはできません。
-
ローカルCOMポートをVDAにマップし(ポリシーまたはNET USE COMX: \\CLIENT\COMZ:を使用)、前の手順と同じPuTTY手順を繰り返しますが、今回はVDAのPuTTYから行います。PuTTYがUnable to open connection to COM1. Unable to open serial portというエラーを表示して失敗する場合、別のデバイスがCOM1を使用している可能性があります。
-
chgport /queryを実行します。VDA上の組み込みWindowsシリアルドライバーが\Device\Serial0をVDAのCOM1ポートに自動割り当てしている場合は、次の手順を実行します。 A. VDAでCMDを開き、NET USEと入力します。
B. VDA上の既存のマッピング(例:COM1)を削除します。
NET USE COM1 /DELETE
C. デバイスをVDAにマップします。
NET USE COM1: \\CLIENT\COM3:
D. VDA上のアプリケーションをCOM3に指定します。
最後に、ローカルCOMポート(例:COM3)をVDA上の別のCOMポート(COM1以外、例:COM3)にマップしてみてください。アプリケーションがそれを指していることを確認してください。 NET USE COM3: \\CLIENT\COM3
-
ポートがマップされているのにPuTTYは動作しているがデータが渡されない場合、それは競合状態である可能性があります。アプリケーションがマップされる前にポートに接続して開いてしまい、マップできないようにロックしている可能性があります。次のいずれかを試してください。
- 同じサーバーで公開されている2番目のアプリケーションを開きます。ポートがマップされるまで数秒待ってから、ポートを使用しようとする実際のアプリケーションを開きます。
-
Studioではなく、Active DirectoryのGroup Policy EditorからCOMポートリダイレクトポリシーを有効にします。これらのポリシーはClient COM port redirectionとAuto connect client COM portsです。この方法で適用されたポリシーは、Studioポリシーよりも前に処理され、COMポートが確実にマップされる可能性があります。CitrixポリシーはVDAにプッシュされ、次の場所に保存されます。
HKLN\SOFTWARE\Policies\Citrix \<user session ID\> - ユーザーにこのログオンスクリプトを使用するか、アプリケーションを公開する代わりに、まずVDA上のマッピングを削除し、仮想COMポートを再マップしてからアプリケーションを起動する.batスクリプトを公開します。
@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>
-
SysinternalsのProcess Monitorは、最後の手段となるツールです。VDAでこのツールを実行する際、COM3、picaser.sys、CdmRedirector、特に<your_app>.exeのようなオブジェクトを見つけてフィルターします。エラーは「Access Denied」などとして表示される場合があります。