Hyper-V USB デバイス アクセス: 最適な接続方法 4 選

Hyper-V は堅牢なエンタープライズ向けハイパーバイザーとして優れています。しかし、USB デバイスのサポートは依然として大きな欠点の 1 つです。ユーザーは簡単でシンプルな「パススルー」切り替えを期待しますが、実際にはより良く、より実用的な戦略が必要です。

警告: 

Hyper-V には USD コントローラー用の組み込みの「アタッチ」ボタンがありません。そのため Hyper-V は、スキャナー、ウェブカメラ、ドングルなどの USB デバイスを、ハードウェア レベルで物理的に VM に接続できません。

Hyper-V の組み込み USB パススルーが実用的な選択肢ではないことを踏まえると、間接的なアプローチが利用可能です: 

• USB-over-IP: このアプローチは、ネットワーク ベースの USB ハブやサードパーティ製ソフトウェアを使用してローカル デバイスを V に接続します;
• RDP リダイレクト: このアプローチは、リモート デスクトップ セッションを通じてローカル デバイスにアクセスするのに役立ちます;
• オフライン ディスク マッピング: この方法は、USB ストレージを物理ディスク デバイスとしてシステムに提示することでアクセスできるようにします;
• DDA (Discrete Device Assignment): このアプローチは、完全な PCIe USB コントローラーをハードウェア レベルでそのまま仮想マシンに割り当てることで動作します;

この記事では、Hyper-V の機能と制限を説明し、各代替アプローチの長所と短所を比較して、ワークフローに適した正しいアプローチを見つけるのに役立てます。

Linux 固有のユーザー向けの注意事項: 拡張セッション モードや組み込みの RDP リダイレクトなどのアプローチは、Windows ユーザー向けに特別に設計されています。しかし、Linux ユーザーの場合は、USB Network Gate のアプローチに直接進むことをお勧めします。これは、Linux VM でワークフローを実行するための最も安定したソリューションです。DDA は Linux ゲスト VM でも利用できません。

さて、約束した4つの回避策について話しましょう。

方法 1: RDP を通じた組み込みのデバイス リダイレクト

主要目的:

RDP を使用すると、ユーザーはネットワークに接続された仮想マシン上のファイルや周辺機器にすばやくアクセスできます。ウェブカメラやプリンターなどのデバイスは、高レベルのリダイレクトによって最適なパフォーマンスの恩恵を受けます。低レベルのリダイレクトは、専用ドライバーに依存するハードウェア向けに限定して使用するのが最適です。管理者は usbdevicestoredirect を使用して対象となるデバイス クラスを設定し、グループ ポリシーを用いてリダイレクトを一元管理します。

リモート デスクトップ プロトコル(RDP)は、Hyper-V の USB デバイス パススルーにアクセスする最も簡単な方法を提供します。この代替アプローチは、サードパーティ製ソフトウェアに依存せず、Windows でのみ動作します。そのため、RDP の方法は基本的に、プリンター、スマート カード、フラッシュ ドライブなどの周辺機器で使用されます。

Hyper-V は、仮想マシンにアクセスするために使用される方法に基づいて、このアプローチを 2 つの異なる方法で実装します。以下でそれらについて説明します。

Hyper-V マネージャーを使用した拡張セッション モード

拡張セッション モードでは、Hyper-V はローカル リソースのリダイレクトを使用して、ネットワーク接続がない場合でも、ホスト側のデバイスとサービスを VM セッションに提示します。この方法では、標準の TCP/IP の代わりに VMBus を使用します。VMBus は、ゲストとホストのオペレーティング システム間の専用で高スループットな通信チャネルです。

長所:

  • ネットワーク接続に依存せずにUSBデバイスのリダイレクトをサポートします
  • VMBus インターフェース経由で低遅延のローカル デバイス リダイレクトを実装します
  • さまざまな周辺機器(フラッシュデバイス、プリンターなど)をサポートします。

短所:

  • ゲストVMではWindowsオペレーティングシステムのみをサポートします。
  • 仮想マシンを起動する前に、接続するUSBデバイスを選択する必要があります。

制限事項

• Windows ゲスト OS のみをサポート
• 従来の RDP クライアントではなく、VMBus と Hyper-V マネージャーが必要
• Server Core インストールおよび一部の強化されたエンタープライズ環境では利用不可 

注: 拡張セッション モードの方法は、Windows 10 および 11 ホストではほとんどの場合、既定で有効になっています。

システム要件:

ホスト: 強化セッション モード ポリシーが有効になっている Windows 10/11 または Windows Server 2016 以降。Windows 10/11 または Server 2016 以降で実行される VMConnect をサポートします。ゲスト: リモート デスクトップが有効になっている Windows 10/11 または Server 2016 以降を実行している必要があります。

Hyper-V で USB をパススルーするには?

1. ホスト コンピューターで Hyper-V マネージャーを起動します。次に、ホスト名を右クリックし、表示されるコンテキスト メニューで[Hyper-V 設定]を選択します。

コンテキスト メニューから Hyper-V 設定を開く

2. [設定]ウィンドウで[サーバー]と[ユーザー]のセクションを見つけることができます。サーバー]パネルで[拡張セッション モード ポリシー]を選択し、拡張セッション モードを許可する]の横にあるチェックボックスにチェックを入れます。

拡張セッション モード ポリシーを選択

3. 次に、ユーザーセクションから[拡張セッション モード]を選択し、拡張セッション モードを使用する]ボックスにチェックを入れます。OK]をクリックして変更を確認し、保存します。

ユーザーセクションの拡張セッションモード

拡張セッション モードを有効にすると、任意の Hyper-V 仮想マシン内で USB デバイスにアクセスできるようになります。

注: この時点で、アクティブなHyper-V VMセッションをすべて閉じてください。

4. Hyper-V マネージャーを起動し、仮想マシン名をダブルクリックします。

5. VM の今後の接続を設定するには、ポップアップメニューで[オプションの表示]を選択します。

6. 次に、ローカル リソース]を選択し、ローカル デバイスとリソース]の下にある[詳細]をクリックします。

7. 次に、その他のサポートされているプラグ アンド プレイ デバイス」と「後で接続するデバイス」のオプションにチェックを入れ、OK]をクリックして確定します。

8. [表示]タブで該当するチェックボックスをオンにして、この構成を以降のすべての接続に保存します。

9. [接続]をクリックして変更を反映します。

PowerShell(ホスト)を使用する

1. 拡張セッション モードをグローバルに有効にする:
Set-VMHost -EnableEnhancedSessionMode $true

2. VMConnect で接続し、ローカル リソースを選択します。

MSTSC を使用した RDP ベースのデバイス リダイレクト

VM に特定の IP アドレスがあり、ネットワーク上でアクセス可能な場合、標準のリモート デスクトップ接続クライアント(mstsc.exe)を使用して接続を確立できます。この方法は Hyper-V マネージャーを必要とせずに機能します。

長所:

  • ネットワーク経由で作業する際に標準のRDPクライアントを使用します
  • Hyper-V マネージャーに依存せずに動作します
  • リモートアクセス環境に最適

短所:

  • RDP セッション終了時に USB デバイスは直ちに解放されます
  • パフォーマンスはネットワークのレイテンシと利用可能な帯域幅に大きく依存します

制限事項:

• 割り当てられたIPアドレスと有効なネットワーク接続に依存します
• プラグアンドプレイデバイスのみを許可します
• アクティブなRDPセッション外での永続的なUSBアクセスは提供しません

最小システム要件:

ゲスト: WindowsにRemote Desktopを有効にした状態でインストールされており、ネットワーク経由で利用可能である必要があります。

クライアント: 必要なリダイレクトをサポートするRDPクライアントが必要であり、低レベルUSBリダイレクトはWindowsクライアントにのみ制限されます。

有効化する方法

1. VMでリモート デスクトップ接続のアクセスを提供する必要があります。仮想マシンに接続し、コントロール パネルで[システムとセキュリティ]のオプションを探します。リモート アクセスを許可]をクリックします。

2. 「このコンピューターへのリモート接続を許可する」および「このマシンへのリモート アシスタンス接続を許可する」のボックスにチェックが入っていることを確認し、システムのプロパティ]ウィンドウの[リモート]タブで[OK]をクリックします。このコンピューターへのリモート接続を許可する」および「このマシンへのリモート アシスタンス接続を許可する」のボックスにチェックが入っていることを確認

3. Win + R を押して「ファイル名を指定して実行」プログラムを起動し、テキストボックスに mstsc.exe と入力します。Enter キーを押してリモート デスクトップ接続アプリケーションを実行します。

4. 「オプションの表示」ボタンをクリックして、RDC ダイアログボックスを展開します。

5. ローカル リソース タブを開き、ローカル デバイスとリソース]セクションで[詳細]をクリックします。

6. 表示されるメニューで、その他のサポートされているプラグ アンド プレイ(PnP)デバイス]チェックボックスを有効にします。OK]をクリックします。

7. [一般設定] タブに戻り、ユーザー名と IP アドレスを使用して仮想マシンに接続します。

8. リモート デスクトップ セッションを開始するには、接続]をクリックします。

9. VM にログインし、追加した USB デバイスがファイル エクスプローラーに表示されているか確認します。

方法2:USB-over-IP パススルーに USB Network Gate を使用する

主な目的:

USB Network Gateは、デバイスへのアクセスが制限されたLinuxゲストVMおよびServer Coreシステム向けのクロスプラットフォームソリューションとして際立っています。Hyper-Vとは独立して動作し、ハイパーバイザーの構成は不要です。

ネットワークレベルのUSBリダイレクトにより、Hyper-Vでは、あるコンピューターに物理的に接続されているUSBデバイスをローカルエリアネットワーク(LAN)経由で別のコンピューターから使用できるようになります。Hyper-V仮想マシン内では、USBデバイスはシステムに直接差し込まれたのと同じように表示されるため、違いに気づくことなく通常どおり使用できます。

このアプローチはHyper-Vとは独立して機能し、ハイパーバイザーを変更せずに利用できます。TCP/IP経由でUSBトラフィックを転送するため、さまざまなHyper-VのUSBデバイス接続に最適です。

USB Network Gateは、スマートカード、ウェブカメラ、プリンター、USBメモリ、ドングルなど、あらゆるUSBデバイスがHyper-V仮想マシンと通信できるようにします。USB-over-IPのアプローチは、デバイスとの直接的なやり取りが制限されるServer Core環境で稼働するHyper-Vホストでよく使用されます。

USB Network Gateは、Linuxユーザーが専用ハードウェアをフル機能のサポートと一貫したパフォーマンスを維持したまま接続するための唯一の適切な方法です。

USB Network Gateはクライアント-サーバー型ソリューションとして機能し、サーバー側のホストシステムに接続された物理USBデバイスへのアクセスを、クライアント側のリモートPCまたは仮想マシンに提供できます。このクライアント-サーバー構成により、Hyper-V VMは物理的な距離に関係なく、リモートデバイスをシステムに直接接続されているかのように扱えます。

長所:

  • ほとんどすべてのUSBデバイスに対応します
  • クロスプラットフォーム対応
  • Hyper-V の構成は不要です

短所:

  • サードパーティ製ソフトウェアのインストールが必要です
  • 運用およびライセンスのオーバーヘッドが追加されます

制限事項:

• 安定したネットワーク接続が必要
• ネットワーク遅延が発生し、リアルタイムデバイスに影響する可能性がある
• Hyper-V のネイティブ機能ではない(USB-over-IP アーキテクチャ)

最小システム要件: 

Windows 7 SP1 以降(Server 2008 R2 以降を含む)macOS 10.14 以降、Linux(Ubuntu および CentOS)Android 5.0 以降、Raspberry Pi OS に対応しています。

USB Network Gate を使用するには、ホストと VM の両方にインストールし、安定したネットワーク接続が利用可能であることを確認してください。

ネットワーク経由で Hyper-V で USB デバイスを使用する方法

1. ホストおよびゲストマシンの両方にUSB Network Gateをインストールしてください。

2. アプリを開き、Hyper-V ホストに接続されている USB デバイスを共有します。

USB Hyper-V ホストを共有

3. 仮想マシンを操作している間に、アプリを開いて共有USBデバイスを見つけてください。

Hyper-V ゲスト マシンに USB デバイスを接続します

4. 接続をクリックします。

次の動画では、ネットワーク経由で Hyper-V ゲスト マシンに USB デバイスを接続するための詳細な手順を確認できます。

USB Network Gate を使用して Hyper-V の USB デバイスを仮想マシンにマウントしてアクセスするのは、簡単で迅速かつ便利です。

方法 3: SCSI パススルーを使用して Hyper-V で物理ディスクにアクセスする

主要目的:

この方法の主な目的は、rw USB ディスクへの直接かつ排他的な VM アクセスを可能にすることで、ホストがデバイスに干渉しないようにすることです。このアプローチは、データ移行、VHDX なしの復旧、USB ドライブを VM に素早く接続する用途に適しています。

Hyper-V では、USB ストレージ デバイスを物理ディスクであるかのように仮想マシンで利用できるようにできます。このアーキテクチャでは、SCSI コントローラーを使用して USB デバイスをホストから切断し、仮想マシン (VM) に直接接続します。

注: 第 2 世代の仮想マシンには SCSI コントローラーが必要です。第 1 世代の VM は SCSI と IDE の両方で動作するためです。ただし、このケースでは SCSI の方が望ましいです。ホストから USB デバイスを取り外して VM に接続する必要があり、VM をシャットダウンせずに行う必要があるためです。

多くのユーザーはこの方法をUSBパススルーHyper-Vとよく勘違いします。似ていますが、このアプローチはマスストレージデバイスにしか機能しません。

長所:

  • Linux および Windows Hyper-V VM ユーザーに適しています
  • USBストレージデバイスへのアクセスを管理する機能を利用できるようになります

短所:

  • セットアップ手順は難しい
  • 動作中に取り外せないUSBマスストレージデバイスにのみ適用されます
  • USB ストレージ デバイスはホストまたは仮想マシンのいずれかに接続できますが、同時に両方に接続することはできません

制限事項:

• 外付けハードドライブやフラッシュドライブなどのUSBストレージデバイスのみをサポート
• USBデバイスは標準的なUSBハードウェアではなく、ドライブとして表示されます
• ホストと仮想マシンで同じデバイスを同時に使用することはできません
• 使用中のデバイスを常に取り外せるとは限りません
• スキャナー、ドングル、ウェブカメラ、HIDデバイス、スマートカードでは動作しません

最小システム要件: 

Windows 10/11 または Windows Server 上の Hyper V が必要です。さらに、ホスト上でオフラインに構成された追加ディスクが必要で、ターゲットはホストOSディスクではありません。

有効化する方法

1. ディスクの管理アプリを起動します。起動するには、スタートのコンテキスト メニューから[ディスクの管理]を開きます。あるいは、Win + R を押して[ファイル名を指定して実行]を開き、diskmgmt.msc を開きます。

diskmgmt.msc を実行する

2. ホストとVMは同時にUSBドライブにアクセスできないため、まずホスト側でUSBドライブをオフラインに設定する必要があります。USBドライブをオフラインに設定するには、ディスクの管理に一覧表示されているデバイスの中からUSBドライブを見つけて右クリックし、オフライン]オプションを選択します。

USB ドライブをオフラインに設定する

3. ホスト オペレーティング システムが USB ストレージに直接アクセスできなくなったので、Hyper-V の USB パススルーを有効にできます。Hyper-V マネージャーを開き、アクセスが必要な VM を右クリックして、コンテキスト メニューから[設定]を選択するだけです。

Hyper-V マシン設定を開く

4. 設定メニューの左側にあるSCSIタブを見つけてクリックします。次に、ハードドライブオプションの下にある[追加]をクリックします。

SCSI コントローラーにハードドライブを追加
注: SCSI コントローラーを使用する代わりに、ハードドライブを IDE コントローラーに追加できます。ただし、ユーザーは、まず VM をシャットダウンしない限り、VM から切断できないことに注意してください。時間を節約するために、稼働中の VM から取り外し可能な SCSI デバイスとしてディスクを追加することを推奨します。

5. 左側のメニューから[SCSI コントローラー > ハード ドライブ]の下にある[物理ハード ドライブ]オプションを選択し、次に USB ドライブを選択します。選択したドライブのディスク番号が、ディスクの管理でオフラインにしたディスクと一致していることを確認してください。OK]をクリックして変更を保存します。

ドライブを追加した後、Hyper-V VM のエクスプローラーを起動します。VM 内の USB ストレージ ドライブが表示されるはずです。

ホスト マシンで PowerShell を使用する場合

  1. ホスト マシンで USB ディスクを検出し、オフラインに設定します。

Get-Disk | Where-Object BusType -eq USB

Set-Disk -Number <DiskNumber> -IsOffline $true

2. ディスク番号を使用して、オフラインの物理ディスクを仮想マシンに接続します。
Add-VMHardDiskDrive -VMName “<VMName>” -ControllerType SCSI -DiskNumber <DiskNumber>

注: パススルー ディスクはエクスポートまたは移行ワークフローと互換性があり、VHDX ベースのストレージと比較してバックアップおよびチェックポイントに支障をきたす可能性があることに留意してください。

方法 4: Discrete Device Assignment(DDA)を使用して Hyper-V で USB パススルーを有効にする

主な目的

DDA は、PCIe USB コントローラーを仮想マシンに専用で割り当てることで、ほぼ実機同等の USB パススルーを提供し、低レベルのアクセスとベンダー製ドライバーを利用できるようにします。デバイスはホストから切り離され、VM は実質的にネイティブに近い性能と完全なドライバー互換性を得られます。この手法は、RDP リダイレクトでは USB デバイスのプロトコルおよびドライバー要件を満たせない場合の有効な代替手段です。

長所:

  • ほぼ実機のハードウェアパススルー
  • 専用コントローラーによるUSBデバイス向けの優れたパフォーマンスと互換性
  • ベンダードライバーを必要とする専用ハードウェア(ドングル、実験機器、セキュリティキー)に対応します

短所:

  • 高度なスキルが必要です
  • VM に割り当てられている間、ホストはデバイスにアクセスできません
  • デバイスを追加する際にVMの再起動が必要です

制限事項:

• VM の保存/復元なし、ライブ マイグレーションなし、デバイス割り当て中は動的メモリなし
• Windows Server 2016/2019/2022/2025 の Hyper-V でのみ動作 — Windows 10/11 Home では利用不可
• Gen2 VM が必要
• すべての PCIe USB コントローラーが互換性があるわけではありません — Microsoft の DDA スクリプトで確認してください

最小システム要件: 

対応 OS: Hyper-V を搭載した Windows Server エディション(2016、2019、2022、2025 など)

ハードウェア: EPT/NPT に対応した CPU と、割り込みおよび DMA リマッピングに対応する IOMMU が必要です。また、これらの機能を有効にする BIOS/ファームウェア設定も必要です(SR-IOV 要件に類似)

DDA を使用して USB コントローラーを Hyper-V VM にパススルーする方法

情報を収集し、環境を準備する:

  1. DDA の要件を確認する: Windows Server Hyper-V と、IOMMU/ACS およびデバイス分離をサポートするハードウェアが必要です。デバイスをアタッチしている間の制限事項について、DDA の計画ガイダンスを確認してください。
  2. コントローラーのロケーション パスを見つける: ホストでデバイス マネージャーを開く → [ユニバーサル シリアル バス コントローラー] を展開 → 専用にする USB コントローラーを選択 → [詳細] タブ → [プロパティ]: ロケーション パス → PCIROOT(…) 文字列をコピーします。


PowerShell でコントローラーを割り当てる(VM はオフである必要があります)

(任意) VM の MMIO をサイズ設定する:

$vm = “<VMName>”

Set-VM -Name $vm -LowMemoryMappedIoSpace 3GB -HighMemoryMappedIoSpace 33280MB

ホストからコントローラーを取り外して VM に割り当てる:

$loc = “<PCIROOT(…from Device Manager…)>”

Dismount-VMHostAssignableDevice -LocationPath $loc -Force

Add-VMAssignableDevice -VMName $vm -LocationPath $loc

VM を起動し、必要に応じてゲストにベンダー ドライバーをインストールします。

元に戻すには:

Remove-VMAssignableDevice -VMName $vm -LocationPath $loc

Mount-VMHostAssignableDevice -LocationPath $loc

注: DDA はすべてのコントローラーおよびデバイスで動作するわけではありません。続行する前に、Microsoft の DDA スクリプトまたはベンダーのドキュメントで互換性を確認してください。

結論

Hyper-V にはワンクリックで切り替えられる組み込みの USB パススルー機能はありませんが、お使いのオペレーティングシステムやハードウェア要件に応じた、ほかの柔軟な代替手段が用意されています。特定のワークフローに最適な方法を選べるように、本記事で取り上げた代替手法の概要を簡潔にまとめます。

方法 最適な用途 対応デバイス ゲストOS セットアップの複雑さ
USB Network Gate プロフェッショナル用途 ほぼすべて(ドングル、ウェブカメラなど) Windows、Linux、macOS
物理ディスク(SCSI) 大容量ストレージ 外付けHDD、フラッシュドライブのみ Windows、Linux
拡張セッション ローカル管理作業 フラッシュドライブなどの基本的なプラグアンドプレイデバイス Windowsのみ
RDPリダイレクト リモートアクセス 制限されたPnPデバイス Windowsのみ
DDA エンタープライズ/パワーユーザー USBコントローラー(PCIe) Windows Server

これらの違いを理解することで、時間を節約し、試行錯誤によるストレスを避けることができます。ネットワークベースのUSBアクセスの柔軟性を求める場合でも、拡張セッションモードのシンプルさを求める場合でも、物理デバイスとHyper-Vの仮想環境を連携させるためのツールを活用できるようになりました。

よくある質問

いいえ、Hyper-V には USB パススルーの組み込みオプションは含まれていません。USB デバイスを VM に接続できるのは、SCSI ディスク パススルー、USB Network Gate のようなサードパーティ製ソフトウェア、DDA、拡張セッション モード、または RDP リダイレクトなどの回避策を通じてのみです。

はい、USB Network Gate(USB-over-IP)や DDA などの方法を使用して、Hyper-V 仮想マシン内で USB ドングルを使用することは可能です。RDP リダイレクトは、ドライバーの制約により、すべてのデバイス種類で動作するとは限りません。

Hyper-V の離散デバイス割り当て (DDA) では、PCIe USB コントローラー全体を仮想マシンに専用で割り当てることができます。DDA を介してコントローラーが割り当てられると、ホストはそれにアクセスできなくなり、この機能は Windows Server 以降でのみ利用できます。

拡張セッション モードは、従来のネットワーク接続を使用する代わりに、VMBus 上の VMConnect を経由して RDP をルーティングします。VM に IP アドレスが割り当てられていない場合でも引き続き動作します。mstsc.exe を介した標準の RDP は、VM がネットワーク上で到達可能な場合にのみ動作します。

はい。ただし、機能には制限があります。RDP リダイレクトと拡張セッション モードの両方は Windows 10 および 11 でサポートされています。DDA は Windows Server のみでサポートされています。Windows 10 および 11 で完全なクロスデバイス サポートが必要な場合、USB Network Gate が最も実用的な選択肢です。