USB

USBサポート機能により、ユーザーが仮想デスクトップ上で作業しているときにさまざまな種類のUSBデバイスを使用できるようになります。ユーザーがコンピューターにUSBデバイスを接続すると、自動リダイレクトを有効にした後、仮想デスクトップ内でそのデバイスを操作できるようになります。構成ファイルの設定を介して手動で自動リダイレクトを有効にできます。USBデバイスの自動リダイレクトは、デフォルトでは無効になっています。リモーティングに使用できるUSBデバイスには次のものがあります:

  • フラッシュドライブ
  • スマートフォン
  • PDA
  • プリンター
  • スキャナー
  • MP3プレーヤー
  • セキュリティデバイス
  • タブレット

USBリダイレクトには、Citrix Virtual Apps and Desktops 7.6またはそれ以降が必要です。

USBデバイスの次のアイソクロナス機能は、一般的な低遅延/高速LAN環境でサポートされます:

  • Webカメラ
  • マイク
  • スピーカー
  • ヘッドセット

ただし通常は、標準のオーディオやWebカメラのリダイレクトの方が適しています。

以下の種類のデバイスは直接サポートされるため、仮想アプリと仮想デスクトップのセッションでUSBサポート機能は使用されません:

  • キーボード
  • マウス
  • スマートカード
  • ヘッドセット
  • Webカメラ

注:

特殊用途のUSBデバイス(Bloombergキーボードや3Dマウスなど)では、USBサポート機能が使用されるように構成できます。そのほかの特殊用途のUSBデバイスのポリシー規則の構成について詳しくは、 CTX119722を参照してください。

デフォルトでは、特定の種類のUSBデバイスがCitrix Virtual Apps and DesktopsまたはCitrix DaaSで動作しないように設定されています。たとえば、内部USBでシステムボードに装着されたNICは。このNICはリモート操作に適していません。次の種類のUSBデバイスは、仮想アプリおよび仮想デスクトップでの使用をデフォルトでサポートしていません:

  • Bluetoothドングル
  • 統合されたNIC
  • USBハブ

リモート操作可能なUSBデバイスのデフォルトの一覧を更新するには、$ICAROOT/フォルダーにあるusb.confファイルを編集します。詳しくは、「リモートで実行できるUSBデバイスの一覧の更新」を参照してください。

エンドポイント側のUSBデバイスを仮想デスクトップ内で使用できるようにするには、USBポリシー規則を有効にする必要があります。詳しくは、Citrix Virtual Apps and Desktopsのドキュメントを参照してください。

USBサポートのしくみ

ユーザーがUSBデバイスを接続すると、USBポリシーに照らしてチェックされます。許可されている場合は、仮想デスクトップにリダイレクトされます。デフォルトのポリシーで拒否されるデバイスは、ローカルのデスクトップ上でのみ使用可能になります。

デスクトップアプライアンスモードを介してアクセスされるデスクトップにユーザーがUSBデバイスを接続している場合。そのデバイスは、構成ファイル設定で自動リダイレクトを手動で有効にした後、仮想デスクトップに自動でリダイレクトされるようになります。USBデバイスの自動リダイレクトは、デフォルトでは無効になっています。USBデバイスの自動リダイレクトを構成するには、次の手順を実行します:

  1. 構成ファイル$Home/.ICAClient/wfclient.iniに移動します。
  2. 次のエントリを追加します:

    DesktopApplianceMode=True

  3. 構成ファイル/opt/Citrix/ICAClient/usb.confに移動します。
  4. 次のデバイスルールのいずれかを設定します:

    • CONNECT – 「CONNECT」キーワードを設定すると、セッション開始時のデバイスの自動リダイレクトが有効になります。
    • ALLOW – 「ALLOW」キーワードを設定すると、セッション開始後にのみデバイスの自動リダイレクトが許可されます。 ただし、「CONNECT」キーワードまたは「ALLOW」キーワードが設定されている場合、セッション中にデバイスのプラグを抜き差しすると、デバイスは自動リダイレクトされます。

    サンプルデバイスルール: CONNECT: vid=046D pid=0002 # vid/pidにより特定のデバイスを許可する ALLOW: vid=046D pid=0102 # vid/pidにより特定のデバイスを許可する

デスクトップアプライアンスモードが使用中でない限り、ユーザーがリダイレクトを実行するためユーザーデバイスに接続するとき、セッションウィンドウにフォーカスがある必要があります。

注:

USBポリシーを「接続する」キーワードでデバイスに構成し、DesktopApplianceModeをTrueに設定すると、USBデバイスは自動的にVDAセッションにリダイレクトされます。DesktopApplianceModeモードがfalseに設定されている場合、USBデバイスはVDAセッションに自動的にリダイレクトされません。

既知の制限事項:

  • USBリダイレクトについて、usb.confファイルで定義されたポリシーが機能せず、USBデバイスがセッションにリダイレクトされないことがあります。この問題は、usb.confファイルの文字数が2000文字を超えている場合に発生します。回避策として、ポリシーへの既存のコメントを削除して、usb.confファイルの文字数を減らします。
  • 汎用USBリダイレクトは、仮想デスクトップウィンドウにフォーカスがある場合にのみサポートされます。

大容量記憶装置デバイス

USB大容量記憶装置デバイス(MSD)がローカルデスクトップに接続されたままユーザーが仮想デスクトップを切断した場合。再接続しても、デバイスは仮想デスクトップにリダイレクトされません。MSDが仮想デスクトップに接続されるようにするには、仮想デスクトップへの再接続後にデバイスを一度取り外してから再接続する必要があります。

注:

USB MSDのリモートサポートを拒否するように構成されているLinuxワークステーションにMSDを接続すると、Citrix Workspaceアプリはデバイスを受け入れず。別のLinuxファイルブラウザーが開くことがあります。そのためユーザーデバイス上では、事前にリムーバブルストレージの [メディアが挿入されたら参照する] 設定を無効にしておくことをCitrixではお勧めします。Debianベースのデバイスでは、Debianメニューバーで [Desktop]>[Preferences]>[Removable Drives and Media] を選択します。[Storage] タブの [Removable Storage][Browse removable media when inserted] のチェックを外します。

クライアントUSBデバイスのリダイレクトについては、次の点に注意してください。

メモ:

クライアントUSBデバイスリダイレクトサーバーポリシーを有効にすると。クライアントドライブマッピングが有効な場合でも、MSDはUSBデバイスとして送信されます。

USBのクラス

次のUSBデバイスのクラスは、デフォルトのUSBポリシー規則により許可されます:

  • オーディオ(クラス01)

    マイク、スピーカー、ヘッドセット、およびMIDIコントローラーがあります。

  • 物理的インターフェイス(クラス05)

    このデバイスはHIDに似ていますが、一般的にはリアルタイムの入力またはフィードバックを提供します。また、フォースフィードバックジョイスティック、モーションプラットフォーム、およびフォースフィードバックエクソスケルトンなども含まれます。

  • 静止画(クラス06)

    このクラスのデバイスとして、デジタルカメラおよびスキャナーがあります。デジタルカメラは、以下を使ってコンピューターやほかの周辺機器に画像を転送する静止画クラスをサポートします:

    • 画像転送プロトコル(PTP) または
    • メディア転送プロトコル(MTP)

    カメラは大容量記憶装置としても機能する場合があります。また、カメラ自体のメニューを使っていずれかのクラスを使用するように構成できます。

    カメラがMSDとして機能する場合はクライアントドライブマッピングが使用され、USBサポートは必要ありません。

  • プリンター(クラス07)

    一部のプリンターではベンダー固有のプロトコル(クラスff)が使用されますが、一般的にはこのクラスにほとんどのプリンターが含まれます。マルチ機能プリンターの場合は、USBハブが内蔵されていたり、混合デバイスであったりする場合があります。いずれの場合も、印刷機能では一般的にプリンタークラスが使用され、スキャナーやFAX機能では静止画などの別のクラスが使用されます。

    プリンターは通常、USBサポートなしで適切に動作します。

  • マスストレージデバイス(クラス08)

    最も一般的なMSDとして、USBフラッシュドライブがあります。そのほかには、USB接続のハードドライブ、CD/DVDドライブ、およびSD/MMCカードリーダーがあります。また、内部ストレージを持つさまざまな種類のデバイスが大容量記憶装置インターフェイスを使用します。これらのデバイスには、メディアプレーヤー、デジタルカメラ、スマートフォンなどが含まれます。既知のサブクラスには次のものが含まれます:

  • 01 制限付きフラッシュデバイス
  • 02 一般的なCD/DVDデバイス(ATAPI/MMC-2)
  • 03 一般的なテープデバイス(QIC-157)
  • 04 一般的なフロッピーディスクドライブ(UFI)
  • 05 一般的なフロッピーディスクドライブ(SFF-8070i)
  • 06 ほとんどのMSDはこのSCSIのバリアントを使用

    MSDには、クライアントドライブマッピングを介して頻繁にアクセスすることができ、USBサポートは必要ありません。

    重要:ウィルスプログラムの中には、あらゆる種類のMSDを媒体にして活発に増殖するものがあります。クライアントドライブマッピングまたはUSBサポートのいずれかを介したMSDの使用を許可する業務上の必要性があるか、慎重に検討してください。このリスクを減らすため、クライアントドライブマッピングによりファイルが実行されるのを防ぐようにサーバーを構成することができます。

    注:

    ユーザーが汎用USBリダイレクトを使用してUSB 3.0ドライバーをLinux VDAにリダイレクトする必要がある場合は、USBフラッシュドライブをUSB 3.0スロットに差し込んでください。

  • コンテンツセキュリティ(クラス0d)

    通常、ライセンスまたはデジタル権利の管理のためのコンテンツ保護を実行します。このクラスのデバイスとして、ドングルがあります。

  • パーソナルヘルスケア(クラス0f)

    これらのデバイスには、次のような個人用健康器具が含まれます:

    • 血圧センサー
    • 心拍数モニター
    • 万歩計
    • 薬剤モニター
    • Spirometers
  • アプリケーションおよびベンダー固有(クラスfeおよびff)

    多くのデバイスがベンダー独自のプロトコルまたはUSBコンソーシアムで標準化されていないプロトコルを使用しており、これらのデバイスは通常はベンダー固有(クラスff)として分類されます。

USBデバイスのクラス

次のUSBデバイスのクラスは、デフォルトのUSBポリシー規則により拒否されます:

  • 通信およびCDCコントロール(クラス02および0a)

    モデム、ISDNアダプター、ネットワークアダプター、一部の電話およびFAX機器があります。

    仮想デスクトップ自体への接続にこれらのデバイスのいずれかが使用される場合があるため、デフォルトのUSBポリシーではこれらのデバイスのリモートでの実行は許可されていません。

  • ヒューマンインターフェイスデバイス(クラス03)

    さまざまな種類の入出力デバイスを含みます。一般的なヒューマンインターフェイスデバイス(HID)には、次が含まれます:

    • キーボード
    • マウス
    • ポインティングデバイス
    • グラフィックタブレット
    • センサー
    • ゲームコントローラー
    • ボタン
    • コントロール機能

    Subclass 01は起動インターフェイスクラスと呼ばれ、キーボードおよびマウスで使用されます。

    デフォルトのUSBポリシーはUSBキーボード(クラス03、サブクラス01、プロトコル1)またはUSBマウス(クラス03、サブクラス01、プロトコル2)を許可しません。この設定は、ほとんどのキーボードとマウスがUSBのサポートを必要とすることなく適切に処理できるためです。通常、こうしたデバイスは仮想デスクトップ内だけでなくローカルでも使用する必要があります。

  • USBハブ(クラス09)

    USBハブにより、追加のデバイスをローカルコンピューターに接続できます。これらのデバイスにリモートでアクセスする必要はありません。

  • スマートカード(クラス0b)

    スマートカードリーダーには、非接触式および接触式のスマートカードリーダーがあり、また埋め込みスマートカード同等チップがあるUSBトークンもあります。

    スマートカードリーダーは、スマートカードサポート機能によりアクセスできるため、USBサポートは必要ありません。

  • ビデオ(クラス0e)

    ビデオクラスは、ビデオまたはビデオ関連の素材を操作するために使用される次のようなデバイスをカバーします:

    • Webカメラ
    • デジタルカムコーダー
    • アナログビデオ変換機
    • 一部のテレビチューナー
    • ビデオストリーミングをサポートする一部のデジタルカメラ

    デフォルトでは、HDX RealTime Webカメラビデオ圧縮機能によりWebカメラのパフォーマンスが最適化されます。

  • ワイヤレスコントローラー(クラスe0)

    このクラスのデバイスとして、ウルトラワイドバンドコントローラーやBluetoothなど、さまざまなワイヤレスコントローラーがあります。

    これらのデバイスの中には、重要なネットワークアクセスを提供したり、Bluetoothキーボードやマウスなどの基幹周辺装置を接続したりするものの場合があります。

    デフォルトのUSBポリシーはこれらのデバイスを許可していません。ただし、USBサポートを使ったアクセスに適したデバイスもあります。

USBデバイスの一覧

ユーザーデバイスの$ICAROOT/にあるusb.confファイルのデフォルト規則の一覧を変更して、デスクトップへリモートで実行できるUSBデバイスの範囲を更新できます。

新しいポリシー規則を追加して一覧を更新し、デフォルト範囲に含まれないUSBデバイスを許可または拒否できます。この方法により管理者が作成した規則は、どのデバイスがサーバーに提供されるかを制御します。次にサーバー上で規則が、どのデバイスを許可するかを制御します。

デバイスのリモートでの実行を許可しないためのデフォルトポリシー構成は次のとおりです:

DENY: class=09 # Hubデバイス

DENY: class=03 subclass=01 # HID起動デバイス(キーボードとマウス)

DENY: class=0b # スマートカード

DENY: class=e0 # ワイヤレスコントローラー

DENY: class=02 # 通信およびCDC制御

DENY: class=03 # UVC (Webカメラ)

DENY: class=0a # CDCデータ

ALLOW: # 完全なフォールバック:すべてを許可

USBポリシー規則

ヒント:ポリシー規則を作成する場合、http://www.usb.org/のUSB WebサイトでUSBクラスコードを参照してください。ユーザーデバイス上のusb.confファイルで指定するポリシー規則は、「{ALLOW DENY:}」に次のタグの値をベースとした式セットが付いた形式にします:
タグ 説明
VID デバイス記述子のベンダーID
REL デバイス記述子のリリースID
PID デバイス記述子の製品ID
クラス デバイス記述子またはインターフェイス記述子のクラス
SubClass デバイス記述子またはインターフェイス記述子のサブクラス
Prot デバイス記述子またはインターフェイス記述子のプロトコル

ポリシー規則を作成する場合、以下の点に注意してください:

  • 大文字と小文字は区別されません。
  • 規則の末尾に、「#」で始まる任意のコメントを追加できます。区切り文字は不要で、コメントは無視されます。
  • 空白行およびコメントのみの行は無視されます。
  • 区切りとして使用されるスペースは無視されますが、番号または識別子の間にスペースを入れることはできません。たとえば、Deny: Class=08 SubClass=05は有効な規則ですが、Deny: Class=0 8 Sub Class=05は無効です。
  • タグには等号(=)を使用する必要があります。たとえば、VID=1230とします。

次の例は、ユーザーデバイス上のusb.confファイルのセクションを示しています。これらの規則を実装するには、サーバー上に同じ規則のセットがある必要があります。

ALLOW: VID=1230 PID=0007 \# ANOther Industries, ANOther Flash Drive

DENY: Class=08 SubClass=05 \# Mass Storage Devices

DENY: Class=0D \# All Security Devices

開始時のモード

デスクトップアプライアンスモードを使って、仮想デスクトップを開始したときに既に接続されているクライアント側のUSBデバイスを有効にしたり無効にしたりできます。各ユーザーデバイスにある$ICAROOT/config/module.iniファイルのWfClientセクションで、DesktopApplianceMode=Booleanを次のように設定します。

   
TRUE すべての接続済みのUSBデバイスは開始時に使用できます。デバイスが開始時に使用可能となるのは、USBポリシーでデバイスが拒否されていない場合のみです。これらのUSBポリシーは、サーバー(レジストリエントリ)またはユーザーデバイス(ポリシー規則構成ファイル)のいずれかに設定されます。
FALSE 開始時に使用できるUSBデバイスはありません。

注:

「CONNECT」キーワードを設定すると、セッション開始時のデバイスの自動リダイレクトが有効になります。また、「ALLOW」キーワードを設定すると、セッション開始後にのみデバイスの自動リダイレクトが許可されます。ただし、「CONNECT」キーワードまたは「ALLOW」キーワードが設定されている場合、セッション中にデバイスのプラグを抜き差しすると、デバイスは自動リダイレクトされます。

USBデバイスの自動リダイレクトの構成

以前は、セッション中にデバイスが抜き差しされると、自動的にリダイレクトされ。VDAに自動的に接続されていました。Citrix Workspaceアプリ2207リリース以降、構成ファイルの設定を介して手動で自動リダイレクトを有効にする必要があります。USBデバイスの自動リダイレクトは、デフォルトでは無効になっています。

USBデバイス(通常および複合デバイス)の自動リダイレクトを構成するには、次の手順を実行します:

  1. 構成ファイル$Home/.ICAClient/wfclient.iniに移動します。
  2. 次のエントリを追加します:

    DesktopApplianceMode=True

  3. 構成ファイル/opt/Citrix/ICAClient/usb.confに移動します。
  4. 次のデバイスルールのいずれかを設定します:

    • CONNECT – 「CONNECT」キーワードを設定すると、セッション開始時のデバイスの自動リダイレクトが有効になります。
    • ALLOW – 「ALLOW」キーワードを設定すると、セッション開始後にのみデバイスの自動リダイレクトが許可されます。

    ただし、「CONNECT」キーワードまたは「ALLOW」キーワードが設定されている場合、セッション中にデバイスのプラグを抜き差しすると、デバイスは自動リダイレクトされます。

サンプルデバイス規則:

CONNECT: vid=046D pid=0002 # vid/pidにより特定のデバイスを許可する

ALLOW: vid=046D pid=0102 # vid/pidにより特定のデバイスを許可する

複合USBデバイスリダイレクト

バージョン2207以降、Citrix Workspaceアプリでは複合USBデバイスを分割できるようになります。複合USBデバイスは、複数の機能を実行できます。これらの機能は、各機能が異なるインターフェイスを使用することで可能となっています。複合USBデバイスには、オーディオおよびビデオの入力および出力で構成されるヒューマンインターフェイスデバイス(HID)などが含まれます。

現在のところ、複合USBデバイスリダイレクトは、デスクトップセッションでのみ利用できます。分割されたデバイスはデスクトップビューアに表示されます。

以前は、セッション中にデバイスのプラグを抜き差しすると、デバイスは自動リダイレクトされ、VDAに自動的に接続されていました。このリリース以降、構成ファイルの設定を介して手動で自動リダイレクトを有効にする必要があります。複合USBデバイスの自動リダイレクトは、デフォルトでは無効になっています。

USB 2.1以降は、複数の子デバイスが同じUSBバスで単一の接続を共有するUSB複合デバイスの概念をサポートしています。このようなデバイスは、単一の構成スペースと共有バス接続を採用しており、一意のインターフェイス番号00-ffを使用して各子デバイスを識別します。この設定はUSBハブのものとは異なります。USBハブでは、個別にアドレス指定された別のUSBデバイスが接続するUSBバスの新しい起点を提供します。

クライアントエンドポイントで検出された複合デバイスは、次のいずれかとして仮想ホストに転送できます:

  • 単一の複合USBデバイス、または
  • 独立した子デバイスのセット(分割デバイス)

複合USBデバイスが転送されると、デバイス全体がエンドポイントで使用できなくなります。この動作により、最適化されたHDXリモートエクスペリエンスに必要なCitrix Workspaceクライアントを含む、エンドポイント上のすべてのアプリケーションでのデバイスのローカル使用がブロックされます。

オーディオデバイスとミュートとボリュームコントロール用のHIDボタンの両方を備えたUSBヘッドセットデバイスを検討してください。デバイス全体が汎用USBチャネルを使用して転送される場合、デバイスは最適化されたHDXオーディオチャネルを介したリダイレクトで使用できなくなります。ただし、汎用USBリモート処理経由でホスト側のオーディオドライバーを使用して送信されるオーディオとは異なり、最適化されたHDXオーディオチャネル経由で送信されるオーディオでは、最高のエクスペリエンスを実現できます。これは、USBオーディオプロトコルの性質がノイズが多いために起こります。

また、システムキーボードまたはポインティングデバイスが、リモートセッションのサポートに必要な他の統合機能を備えた複合デバイスの一部である場合にも問題が発生します。完全な複合デバイスが転送されると、システムのキーボードまたはマウスは、リモートデスクトップセッションまたはアプリケーション内を除いて、エンドポイントで操作できなくなります。

これらの問題を解決するために、複合デバイスを分割し、汎用USBチャネルを使用する子インターフェイスのみを転送することをCitrixではお勧めします。この設定により、クライアントエンドポイント上のアプリが他の子デバイスを使用できるようになります。このクライアントエンドポイントには、最適化されたHDXエクスペリエンスを提供するCitrix Workspaceアプリが含まれ、必要なデバイスのみを転送してリモートセッションで使用できます。

デバイス規則:

通常のUSBデバイスと同様に、転送する複合デバイスは、Citrix Workspaceアプリの構成で設定されたデバイスルールに基づいて選択されます。Citrix Workspaceアプリは、これらの規則を使用して、リモートセッションへの転送を許可または禁止するUSBデバイスを決定します。

各規則は、エンドポイントUSBサブシステムの実際のデバイスと一致する以下の要素で構成されます:

  • Allow、Connect、またはDenyなどのアクションキーワード
  • コロン(:)
  • および0個以上のフィルターパラメーター

前述のフィルターパラメーターは、すべてのUSBデバイスが自身を識別するために使用するUSBデバイスの記述子メタデータに対応します。

デバイス規則はクリアテキストであり、各規則は1行に表示され、オプションのコメントは#文字の後に記載されています。規則はトップダウンで照合されます(優先度の降順)。デバイスまたは子インターフェイスに一致する最初の規則が適用されます。同じデバイスまたはインターフェイスを選択する後続の規則は無視されます。

デバイスルールを変更するには、次の手順を実行します:

  1. /opt/Citrix/ICAClient/usb.confファイルに移動します。
  2. 必要に応じてデバイスルールを更新します。

サンプルデバイス規則:

ALLOW: vid=046D pid=0102 # Allow a specific device by vid/pid

ALLOW: vid=0505 class=03 subclass=01 # Allow any pid for vendor 0505 w/subclass=01

DENY: vid=0850 pid=040C # deny a specific device (including all child devices)

DENY: class=03 subclass=01 prot=01 # deny any device that matches all filters

CONNECT: vid=0911 pid=0C1C # Allow and auto-connect a specific device

ALLOW: vid=0286 pid=0101 split=01 # Split this device and allow all interfaces

ALLOW: vid=1050 pid=0407 split=01 intf=00,01 # Split and allow only 2 interfaces

CONNECT: vid=1050 pid=0407 split=01 intf=02 # Split and auto-connect interface 2

DENY: vid=1050 pid=0407 split=1 intf=03 # Prevent interface 03 from being remoted

次のフィルターパラメーターのいずれかを使用して、検出されたデバイスに規則を適用できます:

フィルターパラメーター 説明
vid=xxxx USBデバイスのベンダーID(4桁の16進コード)
pid=xxxx USBデバイスの製品ID(4桁の16進コード)
rel=xxxx USBデバイスのリリースID(4桁の16進コード)
class=xx USBデバイスのクラスコード(2桁の16進コード)
subclass=xx USBデバイスのサブクラスコード(2桁の16進コード)
prot=xx USBデバイスのプロトコルコード(2桁の16進コード)
split=1(またはsplit=0) 分割する(または分割しない)複合デバイスを選択します
intf=xx[,xx,xx,…] 複合デバイスの子インターフェイスの特定のセットを選択します(2桁の16進コードのコンマで区切られた一覧)

最初の6つのパラメーターは、規則を適用する必要があるUSBデバイスを選択します。パラメーターが指定されていない場合、規則はそのパラメーターがANYの値を持つデバイスと一致します。

USB Implementors Forum (USB-IF)は、Defined Class Codeのクラス、サブクラス、およびプロトコル値の定義済み一覧を維持管理しています。USB-IFは、登録されたベンダーIDの一覧も所有しています。特定のデバイスのベンダー、製品、リリース、およびインターフェイスIDは、lsusbなどの無料ツールを使用して確認できます:


 <username@username>-ThinkPad-T470:/var/log$ lsusb

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 002: ID 0bda:0316 Realtek Semiconductor Corp. USB3.0-CRW

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 005: ID 138a:0097 Validity Sensors, Inc.

Bus 001 Device 004: ID 5986:111c Acer, Inc Integrated Camera

Bus 001 Device 003: ID 8087:0a2b Intel Corp.

Bus 001 Device 006: ID 17ef:609b Lenovo Lenovo USB Receiver

Bus 001 Device 045: ID 1188:a001 Bloomberg L.P. Lenovo USB Receiver

Bus 001 Device 044: ID 1188:a301 Bloomberg L.P.

Bus 001 Device 043: ID 1188:a901 Bloomberg L.P. Keyboard Hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

<!--NeedCopy-->
    | <username@username>-ThinkPad-T470:/var/log$ lsusb -t

    /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M

    /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M

    /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M

    |__ Port 3: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

    /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M

    |__ Port 1: Dev 43, If 0, Class=Hub, Driver=hub/4p, 480M

        |__ Port 1: Dev 46, If 0, Class=Human Interface Device, Driver=usbhid, 12M

        |__ Port 4: Dev 45, If 0, Class=Human Interface Device, Driver=usbhid, 12M

        |__ Port 4: Dev 45, If 1, Class=Human Interface Device, Driver=usbhid, 12M

        |__ Port 2: Dev 44, If 3, Class=Audio, Driver=snd-usb-audio, 12M

        |__ Port 2: Dev 44, If 1, Class=Vendor Specific Class, Driver=, 12M

        |__ Port 2: Dev 44, If 4, Class=Audio, Driver=snd-usb-audio, 12M

        |__ Port 2: Dev 44, If 2, Class=Audio, Driver=snd-usb-audio, 12M

        |__ Port 2: Dev 44, If 0, Class=Human Interface Device, Driver=usbhid, 12M

    |__ Port 4: Dev 6, If 1, Class=Human Interface Device, Driver=usbhid, 12M

    |__ Port 4: Dev 6, If 2, Class=Human Interface Device, Driver=usbhid, 12M

    |__ Port 4: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 12M

    |__ Port 7: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M

    |__ Port 7: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M

    |__ Port 8: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M

    |__ Port 8: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M

    |__ Port 9: Dev 5, If 0, Class=Vendor Specific Class, Driver=, 12M |

<!--NeedCopy-->

最後の2つのパラメーター(存在する場合)はUSB複合デバイスにのみ適用されます。splitパラメーターは、複合デバイスを分割デバイスとして転送するか、単一の複合デバイスとして転送する必要があるかを決定します。

Split=1は、複合デバイスの選択された子インターフェイスは分割デバイスとして転送する必要があることを示します。 Split=0は、複合デバイスを分割するべきではないことを示します。

注:

splitパラメーターを省略した場合、Split=0と見なされます。

intfパラメーターは、アクションを適用する必要がある複合デバイスの特定の子インターフェイスを選択します。省略した場合、アクションは複合デバイスのすべてのインターフェイスに適用されます。

6つのインターフェイスを備えた複合USBデバイス(たとえば、Bloomberg 4キーボード)について考えてみます:

  • インターフェイス0 - Bloomberg 4キーボードHID
  • インターフェイス1 - Bloomberg 4キーボードHID
  • インターフェイス2 - Bloomberg 4 HID
  • インターフェイス3 - Bloomberg 4キーボードオーディオチャネル
  • インターフェイス4 - Bloomberg 4キーボードオーディオチャネル
  • インターフェイス5 - Bloomberg 4キーボードオーディオチャネル
  • この種類のデバイスに推奨される規則は次のとおりです:

CONNECT: vid=1188 pid=9545 split=01 intf=00 # Bloomberg 4 Keyboard HID

CONNECT: vid=1188 pid=9545 split=01 intf=01 # Bloomberg 4 Keyboard HID

CONNECT: vid=1188 pid=9545 split=01 intf=02 # Bloomberg 4 HID

DENY: vid=1188 pid=9545 split=01 intf=03 # Bloomberg 4 Keyboard Audio Channel

DENY: vid=1188 pid=9545 split=01 intf=04 # Bloomberg 4 Keyboard Audio Channel

DENY: vid=1188 pid=9545 split=01 intf=05 # Bloomberg 4 Keyboard Audio Channel

Citrix Viewerを使用した複合USBデバイスリダイレクト

[デバイス] セクションからUSBデバイスを接続するには、次の手順を実行します:

  1. デスクトップセッションで、[デバイス]の下の[デスクトップビューア]に移動します。 分割されたUSBデバイスが表示されます。

    Split devices section

  2. デバイスを接続するには、必要なメニュー項目を選択します。

[基本設定] セクションからUSBデバイスを接続するには、次の手順を実行します:

  1. [基本設定]>[デバイス] セクションの順に移動します。 分割されたUSBデバイスが表示されます。

    Split devices preferences section

  2. 必要に応じて、デバイスの横にあるチェックボックスをオンにします。

  3. [OK] をクリックします。

選択した構成がデバイス接続に適用されます。

注:

デバイスを切断するには、デバイスの横にある必要なメニュー項目またはチェックボックスをオフにします。

複合USB自動リダイレクトの機能強化

以前は、セッションの開始時にUSBデバイスを自動リダイレクトするには、構成ファイルでDesktopApplianceModeTrueに設定する必要がありました。

2402リリースでは、構成ファイルに依存せずに、Linux向けCitrix WorkspaceアプリのUIからデバイスの接続設定を管理できるようになりました。

次の2つのオプションが [基本設定] 画面の [デバイス] セクションに追加されます:

  • セッションの開始時に、デバイスを自動的に接続します。デフォルトでは、このチェックボックスは選択されていません。
  • セッションの実行中に新しいデバイスが接続されると、自動的にデバイスに接続します。デフォルトでは、このチェックボックスは選択されています。

この機能はデフォルトで有効になっています。

GUIを使用して複合USBリダイレクトを構成するには、次の手順を実行します:

  1. HDXセッションのDesktop Viewerのツールバーで [基本設定] をクリックします。[Citrix Workspace - 基本設定] ダイアログボックスが開きます。
  2. [デバイス] をクリックします。[デバイス] セクションが表示されます。

    デバイス

  3. 要件に応じて、次のオプションのいずれかまたは両方を選択します:

    • セッションの開始時に、デバイスを自動的に接続する - このオプションを選択すると、セッションの開始時にUSBデバイスが仮想デスクトップに自動的に接続されます。
    • セッションの実行中に新しいデバイスが接続されると、デバイスを自動的に接続する - このオプションを選択すると、セッションの進行中にUSBデバイスが仮想デスクトップに自動的に接続されます。
  4. [OK] をクリックします。

1つ以上のHDXセッションが自動リダイレクト用に構成されている場合、動作は次のようになります:

  • フォーカスされているHDXセッションがある場合、すべてのUSBデバイスが自動リダイレクトされます。
  • フォーカスされているHDXセッションない場合、USBデバイスは最後に起動されたHDXセッションに自動リダイレクトされます。
  • USBデバイスがリダイレクトされた後、エンドユーザーはHDXセッションのツールバーを使用してUSBデバイスを停止するか、HDXセッションを直接閉じることができます。この場合、USBデバイスは切断され、クライアントマシンに再度接続されます。エンドユーザーはいつでも再度リダイレクトできます。
USB