Accesso ai dispositivi USB Hyper-V: i 4 migliori approcci di connessione

Hyper-V eccelle come hypervisor aziendale robusto. Tuttavia, il suo supporto per i dispositivi USB rimane una delle sue principali carenze. Sebbene gli utenti si aspettino un semplice interruttore di “passthrough”, in realtà è necessaria una strategia migliore e più pratica.

Avvertenza: 

Hyper-V non dispone di alcun pulsante “allega” integrato per i controller USD. Quindi, Hyper-V non può connettere dispositivi USB, come scanner, webcam, dongle, ecc., fisicamente a una VM a livello hardware. 

Dato che il passthrough USB integrato in Hyper-V non è un’opzione praticabile, sono disponibili approcci indiretti: 

• USB-over-IP: Questo approccio utilizza hub USB basati su rete o software di terze parti per collegare dispositivi locali a una V;
• Reindirizzamento RDP: Questo approccio ti aiuta ad accedere ai dispositivi locali tramite una sessione di Desktop remoto;
• Mappatura disco offline: Questo metodo ti aiuta ad accedere all’archiviazione USB presentandola a un sistema come dispositivo disco fisico;
• DDA (Discrete Device Assignment): Questo approccio funziona inoltrando un intero controller USB PCIe direttamente a una macchina virtuale a livello hardware;

In questo articolo spiegheremo le capacità e i limiti di Hyper-V, confronteremo i vantaggi e gli svantaggi di ciascun approccio alternativo, per aiutarti a trovare l’approccio giusto adatto al tuo flusso di lavoro. 

Nota per gli utenti specifici di Linux: Approcci, come la Modalità sessione avanzata e il reindirizzamento RDP integrato, sono progettati specificamente per gli utenti Windows. Ma se sei un utente Linux, è consigliabile passare direttamente all’approccio USB Network Gate. Questa è la soluzione più stabile per eseguire flussi di lavoro in una VM Linux. DDA non è inoltre disponibile per le VM guest Linux.

Ora parliamo dei quattro workaround che abbiamo promesso.

Metodo 1: Reindirizzamento del dispositivo integrato tramite RDP

Obiettivo principale:

RDP consente agli utenti di accedere rapidamente a file e dispositivi periferici su macchine virtuali connesse alla rete. Dispositivi come webcam e stampanti beneficiano di prestazioni ottimali grazie al reindirizzamento di alto livello. Il reindirizzamento di basso livello è meglio riservarlo all’hardware che dipende da driver specializzati. Gli amministratori utilizzano usbdevicestoredirect per impostare le classi di dispositivi idonee e gestire centralmente il reindirizzamento tramite Criteri di gruppo. 

Il Remote Desktop Protocol (RDP) offre il modo più semplice per accedere a un passthrough di dispositivi USB in Hyper-V. Questo approccio alternativo funziona solo su Windows senza fare affidamento su software di terze parti. Pertanto, il metodo RDP viene utilizzato principalmente per i dispositivi periferici, come stampanti, smart card e unità flash. 

Hyper-V implementa questo approccio in due modi diversi in base al metodo utilizzato per accedere alla Macchina virtuale. Vediamoli di seguito. 

Modalità sessione avanzata tramite Gestione Hyper-V

In Modalità sessione avanzata, Hyper-V utilizza il reindirizzamento delle risorse locali per presentare i dispositivi e i servizi lato host a una sessione VM, anche se non è presente alcuna connessione di rete. Questo metodo utilizza VMBus invece del TCP/IP standard. VMBus è un canale di comunicazione dedicato e ad alta velocità tra i sistemi operativi guest e host.

Pro:

  • Supporta la reindirizzazione dei dispositivi USB senza fare affidamento sulla connettività di rete
  • Implementa il reindirizzamento del dispositivo locale sull'interfaccia VMBus per bassa latenza
  • Facilita vari dispositivi periferici, come dispositivi flash, stampanti, ecc.

Contro:

  • Supporta solo il sistema operativo Windows sulle VM guest.
  • È necessario selezionare i dispositivi USB che si desidera collegare prima di avviare una macchina virtuale.

Limitazioni

• Supporta solo sistemi operativi guest Windows
• Richiede VMBus e Gestione Hyper-V invece dei client RDP tradizionali
• Non disponibile nelle installazioni Server Core e in alcuni ambienti aziendali con protezioni avanzate 

Nota: Il metodo Modalità sessione avanzata è per lo più attivo per impostazione predefinita sugli host Windows 10 e 11.

Requisiti di sistema:

Host: Windows 10/11 o Windows Server 2016+ con i criteri della Modalità sessione avanzata abilitati. Supporta VMConnect in esecuzione su Windows 10/11 o Server 2016+. Guest: Deve eseguire Windows 10/11 o Server 2016+ con Desktop remoto abilitato.

Come eseguire il passthrough USB in Hyper-V?

1. Avvia Gestione Hyper-V sul computer host. Quindi, fai clic con il pulsante destro del mouse sul nome dell’host e seleziona Impostazioni Hyper-V nel menu contestuale che appare.

apri le impostazioni di Hyper-V tramite il menu contestuale

2. Puoi trovare le sezioni Server e Utente nella finestra Impostazioni. Seleziona Criteri della modalità sessione avanzata nel pannello Server e spunta la casella di controllo accanto a Consenti modalità sessione avanzata.

Seleziona criterio modalità sessione avanzata

3. Successivamente, seleziona Modalità sessione avanzata nella sezione Utente e seleziona la casella Usa modalità sessione avanzata. Fai clic su OK per confermare e salvare le modifiche.

Modalità sessione avanzata dalla sezione Utente

Ora puoi accedere ai dispositivi USB all’interno di qualsiasi macchina virtuale Hyper-V dopo aver abilitato la Modalità sessione avanzata.

Nota: Chiudi eventuali sessioni VM Hyper-V attive a questo punto.

4. Avvia Hyper-V Manager e fai doppio clic sul nome della macchina virtuale.

5. Per configurare le prossime connessioni della tua VM, seleziona Mostra opzioni nel menu a comparsa.

6. Quindi, seleziona Risorse locali e fai clic su Altro in Dispositivi e risorse locali.

7. Quindi, seleziona le opzioni “Altri dispositivi Plug and Play supportati” e “Dispositivi che collego in un secondo momento” e conferma facendo clic su OK.

8. Seleziona la casella appropriata nella scheda Schermo per salvare questa configurazione per tutte le connessioni successive.

9. Fai clic su Connetti per applicare le modifiche.

Utilizzando PowerShell (host)

1. Attiva globalmente la Modalità sessione avanzata:
Set-VMHost -EnableEnhancedSessionMode $true

2. Connettiti con VMConnect e scegli le risorse locali.

Reindirizzamento dei dispositivi basato su RDP utilizzando MSTSC

Quando una VM dispone di un indirizzo IP specifico ed è accessibile sulla rete, è possibile utilizzare il client standard Connessione desktop remoto (mstsc.exe) per stabilire una connessione. Questo approccio funziona senza la necessità di Hyper-V Manager. 

Pro:

  • Utilizza il client RDP standard mentre lavora in rete
  • Non dipende da Hyper-V Manager per il funzionamento
  • Ideale per ambienti di accesso remoto

Contro:

  • I dispositivi USB vengono rilasciati immediatamente al termine della sessione RDP
  • Le prestazioni dipendono in larga misura dalla latenza di rete e dalla larghezza di banda disponibile

Limitazioni:

• Dipende da un indirizzo IP assegnato e da una connessione di rete attiva
• Consente solo dispositivi Plug and Play
• Non fornisce un accesso USB persistente al di fuori di una sessione RDP attiva

Requisiti minimi di sistema:

Guest: Windows deve essere installato con Desktop remoto abilitato e disponibile sulla rete.

Client: È richiesto un client RDP con supporto per la reindirizzazione necessaria e la reindirizzazione USB di basso livello è limitata solo ai client Windows. 

Come attivare

1. Dovrai fornire l’accesso alle Connessioni Desktop remoto sulla tua VM. Connettiti alla tua macchina virtuale e cerca nel Pannello di controllo le opzioni Sistema e sicurezza. Fai clic su Consenti accesso remoto.

2. Assicurati che le caselle Consenti connessioni remote a questo computer e Consenti connessioni di assistenza remota a questo computer siano selezionate, quindi fai clic su OK nella scheda Remoto della finestra Proprietà del sistema. Caselle Consenti connessioni remote a questo computer e Consenti connessioni di assistenza remota a questo computer selezionate

3. Premi Win + R per avviare il programma Esegui e digita mstsc.exe nella casella di testo. Premi Invio per eseguire l’applicazione Connessione Desktop remoto.

4. Fare clic sul pulsante Mostra opzioni per espandere la finestra di dialogo RDC.

5. Apri la scheda Risorse locali e fai clic su Altro nella sezione Dispositivi e risorse locali.

6. Nel menu che appare, abilita la casella di controllo Altri dispositivi Plug and Play (PnP) supportati. Fai clic su OK.

7. Torna alla scheda Impostazioni generali e connettiti alla tua macchina virtuale utilizzando il suo nome utente e indirizzo IP.

8. Per avviare la sessione Desktop remoto, fai clic su Connetti.

9. Accedi alla VM e verifica se i dispositivi USB aggiunti sono visualizzati in Esplora file.

Metodo 2: Utilizzo di USB Network Gate per il passthrough USB-over-IP

Obiettivo principale:

USB Network Gate si distingue come soluzione multipiattaforma per VM guest Linux e sistemi Server Core con accesso limitato ai dispositivi. Funziona in modo indipendente da Hyper-V e non richiede la configurazione dell’hypervisor.

Il reindirizzamento USB a livello di rete per Hyper-V rende possibile che i dispositivi USB fisicamente collegati a un computer vengano utilizzati da un altro computer tramite una rete locale (LAN). All’interno della macchina virtuale Hyper-V, il dispositivo USB appare come se fosse collegato direttamente al sistema, quindi puoi utilizzarlo normalmente senza notare alcuna differenza. 

Questo approccio funziona indipendentemente da Hyper-V e può essere utilizzato senza modificare l’hypervisor. Instrada il traffico USB su TCP/IP, rendendo questo approccio ideale per varie connessioni di dispositivi USB su Hyper-V. 

USB Network Gate consente a qualsiasi dispositivo USB, inclusi smart card, webcam, stampanti, chiavette USB, dongle e altro, di stabilire una comunicazione con una macchina virtuale Hyper-V. L’approccio USB-over-IP viene spesso utilizzato su host Hyper-V che operano in distribuzioni Server Core, dove l’interazione diretta con i dispositivi è limitata. 

USB Network Gate è l’unico modo adatto per gli utenti Linux di collegare hardware dedicato mantenendo il pieno supporto delle funzionalità e prestazioni costanti. 

USB Network Gate funziona come soluzione client-server, consentendoti di dare accesso ai dispositivi USB fisici da un sistema host lato server a PC remoti o macchine virtuali lato client. Questa configurazione client-server consente alla VM Hyper-V di lavorare con dispositivi remoti come se fossero collegati direttamente al sistema, indipendentemente dalla loro distanza fisica. 

Pro:

  • Funziona con quasi tutti i dispositivi USB
  • Supporto multipiattaforma
  • Nessuna configurazione Hyper-V richiesta

Contro:

  • Richiede l'installazione di software di terze parti
  • Aggiunge overhead operativo e di licenza

Limitazioni:

• Richiede una connettività di rete stabile
• Introduce una latenza di rete che può influire sui dispositivi in tempo reale
• Non è una funzionalità nativa di Hyper-V (architettura USB-over-IP)

Requisiti minimi di sistema: 

Compatibile con Windows 7 SP1+ e versioni successive (incluso Server 2008 R2+), macOS 10.14+, Linux (Ubuntu e CentOS), Android 5.0+ e Raspberry Pi OS.

Per utilizzare USB Network Gate, installalo sia sull’host sia sulla VM e assicurati che sia disponibile una connessione di rete stabile. 

Come utilizzare dispositivi USB in Hyper-V tramite una rete

1. Installa USB Network Gate sia sulla macchina host che su quella guest.

2. Apri l’app e condividi il dispositivo USB collegato all’host Hyper-V.

condividi host Hyper-V USB

3. Durante l’utilizzo della macchina virtuale, apri l’app e individua il dispositivo USB condiviso.

collega il dispositivo USB alla macchina guest Hyper-V

4. Fai clic su Connetti.

Puoi trovare istruzioni dettagliate su come collegare un dispositivo USB a una macchina guest Hyper-V tramite la rete nel seguente video:

Utilizzare USB Network Gate per montare e accedere ai dispositivi USB Hyper-V su una macchina virtuale è facile, veloce e conveniente.

Metodo 3: Accesso a un disco fisico in Hyper-V utilizzando il passthrough SCSI

Obiettivo principale:

L’obiettivo principale di questo metodo è consentire un accesso diretto ed esclusivo della VM a un disco USB rw, garantendo che l’host non interferisca con il dispositivo. Questo approccio funziona bene per la migrazione dei dati, il ripristino senza VHDX e la connessione rapida di unità USB alle VM. 

Hyper-V consente di rendere i dispositivi di archiviazione USB disponibili alle macchine virtuali come se fossero dischi fisici. In questa architettura, utilizza un controller SCSI per disconnettere i dispositivi USB dall’host e collegarli direttamente alle Macchine Virtuali (VM).

Nota: Per le macchine virtuali di generazione 2 è necessario un controller SCSI. Perché le VM di generazione 1 funzionano sia su SCSI che su IDE. Tuttavia, in questo caso è preferibile SCSI, quando è necessario rimuovere i dispositivi USB dall’host e collegarli alla VM senza arrestare la VM.

Molti utenti spesso scambiano questo metodo per il passthrough USB Hyper-V. Sebbene sia lo stesso, questo approccio funziona solo per i dispositivi di archiviazione di massa. 

Pro:

  • Funziona bene per gli utenti di VM Hyper-V su Linux e Windows
  • Avrai la possibilità di gestire l’accesso ai dispositivi di archiviazione USB

Contro:

  • Il processo di configurazione è impegnativo
  • Si applica solo ai dispositivi di archiviazione di massa USB che non sono rimovibili durante il funzionamento
  • Un dispositivo di archiviazione USB può essere collegato all’host oppure alla macchina virtuale, ma non a entrambi contemporaneamente

Limitazioni:

• Supporta solo dispositivi di archiviazione USB, come dischi rigidi esterni o unità flash
• I dispositivi USB vengono presentati come unità, non come hardware USB standard
• L’host e la macchina virtuale non possono usare il dispositivo contemporaneamente
• Non è sempre possibile rimuovere il dispositivo mentre è in uso
• Non funziona con scanner, dongle, webcam, dispositivi HID o smart card

Requisiti minimi di sistema: 

È richiesto Hyper V su Windows 10/11 o Windows Server, oltre a un disco aggiuntivo configurato offline sull’host, e il target non è il disco del sistema operativo dell’host. 

Come attivare

1. Avvia l’app Gestione Disco. Per farlo, apri Gestione Disco dal menu contestuale Start. In alternativa, premi Win + R per aprire il programma Esegui e avvia diskmgmt.msc.

esegui diskmgmt.msc

2. Poiché l’host e la VM non possono accedere all’unità USB contemporaneamente, devi prima impostare l’unità USB come offline sull’host. Per impostare l’unità USB come offline, individua l’unità tra i dispositivi elencati in Gestione disco, fai clic con il pulsante destro del mouse su di essa e seleziona l’opzione Offline.

imposta l'unità USB come offline

3. Ora che il sistema operativo host non ha accesso diretto all’archiviazione USB, puoi abilitare il passthrough USB di Hyper-V. Ti basta aprire Gestione Hyper-V, fare clic con il pulsante destro del mouse sulla VM che richiede l’accesso e scegliere Impostazioni nel menu contestuale.

apri le impostazioni della macchina Hyper-V

4. Trova la scheda SCSI sul lato sinistro del menu delle impostazioni e fai clic su di essa. Successivamente, fai clic su Aggiungi sotto l’opzione Disco rigido.

aggiungi Disco rigido nel controller SCSI
Nota: Invece di utilizzare un controller SCSI, puoi aggiungere il disco rigido al controller IDE. Tuttavia, tieni presente che gli utenti non potranno scollegarlo dalla VM senza prima spegnerla. Consigliamo di introdurre il disco come dispositivo SCSI che può essere rimosso da una VM attiva per risparmiare tempo.

5. Seleziona l’opzione Disco rigido fisico in Controller SCSI > Disco rigido dal menu a sinistra, quindi seleziona l’unità USB. Assicurati che il numero del disco nell’unità selezionata corrisponda al disco che hai messo offline in Gestione disco. Fai clic su OK per salvare le modifiche.

Avvia Esplora file della tua VM Hyper-V dopo aver aggiunto l’unità. L’unità di archiviazione USB all’interno della VM dovrebbe ora essere visibile.

Con PowerShell sulla macchina host

  1. Rileva il disco USB sulla macchina host e impostalo su offline.

Get-Disk | Where-Object BusType -eq USB

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

2. Usa il numero del disco per collegare il disco fisico offline alla macchina virtuale.
Add-VMHardDiskDrive -VMName “<VMName>” -ControllerType SCSI -DiskNumber <DiskNumber>

Nota: Tieni presente che i dischi pass-through sono compatibili con i flussi di lavoro di esportazione o migrazione e potrebbero compromettere backup e checkpoint rispetto allo storage basato su VHDX.

Metodo 4: utilizzo dell’assegnazione di dispositivi discreti (DDA) per abilitare il passthrough USB in Hyper-V

Scopo principale

DDA fornisce un passthrough USB quasi reale dedicando un controller USB PCIe a una macchina virtuale, consentendo l’accesso a basso livello e i driver del produttore. Il dispositivo viene rimosso dall’host mentre la VM riceve prestazioni sostanzialmente native e piena compatibilità dei driver. Questa tecnica è un’alternativa valida quando la reindirizzamento RDP non può soddisfare i requisiti di protocollo e driver del dispositivo USB.

Pro:

  • Passthrough hardware quasi reale
  • Prestazioni e compatibilità eccellenti per dispositivi USB con un controller dedicato
  • Funziona con hardware specializzato che richiede driver del fornitore (dongle, apparecchiature di laboratorio, chiavi di sicurezza)

Contro:

  • Richiede competenze avanzate
  • Nessun accesso host al dispositivo mentre è assegnato alla VM
  • Richiede il riavvio della VM quando si aggiunge il dispositivo

Limitazioni:

• Nessun salvataggio/ripristino della VM, nessuna migrazione live, nessuna memoria dinamica mentre il dispositivo è assegnato
• Funziona solo su Windows Server 2016/2019/2022/2025 con Hyper-V — non disponibile su Windows 10/11 Home
• Richiede una VM Gen2
• Non tutti i controller USB PCIe sono compatibili — verifica con lo script DDA di Microsoft

Requisiti minimi di sistema: 

Sistema operativo supportato: edizioni di Windows Server con Hyper-V, come 2016, 2019, 2022 e 2025

Hardware: è richiesto il supporto della CPU per EPT/NPT e un IOMMU con remapping di interrupt e DMA, insieme alle impostazioni BIOS/firmware abilitate per queste funzionalità (simile ai requisiti SR-IOV).

Come usare DDA per passare un controller USB a una VM Hyper-V

Raccogli le informazioni e prepara l’ambiente:

  1. Conferma i requisiti DDA: ti servono Windows Server Hyper-V e hardware che supporti IOMMU/ACS e l’isolamento dei dispositivi. Consulta la guida alla pianificazione DDA per le limitazioni mentre il dispositivo è collegato.
  2. Trova il percorso di posizione del controller: apri Gestione dispositivi sull’host → espandi Controller Universal Serial Bus → scegli il controller USB da dedicare → scheda Dettagli → Proprietà: Percorsi di posizione → copia la stringa PCIROOT(…).


Assegna il controller con PowerShell (la VM deve essere spenta)

(Facoltativo) Dimensiona MMIO per la VM:

$vm = “<VMName>”

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

Smonta il controller dall’host e assegnalo alla VM:

$loc = “<PCIROOT(…da Gestione dispositivi…)>”

Dismount-VMHostAssignableDevice -LocationPath $loc -Force

Add-VMAssignableDevice -VMName $vm -LocationPath $loc

Avvia la VM e installa il driver del fornitore nel guest, se necessario.

Per ripristinare:

Remove-VMAssignableDevice -VMName $vm -LocationPath $loc

Mount-VMHostAssignableDevice -LocationPath $loc

Nota: DDA non funziona con tutti i controller e i dispositivi. Verifica la compatibilità con lo script DDA di Microsoft o con la documentazione del fornitore prima di procedere.

Conclusione

Sebbene Hyper-V non disponga di un’opzione integrata per il passthrough USB attivabile con un clic, offre altre alternative flessibili in base al sistema operativo e ai requisiti hardware. Per selezionare l’approccio più adatto al tuo flusso di lavoro specifico, forniamo un riepilogo rapido dei metodi alternativi trattati in questo articolo. 

Metodo Ideale per Dispositivi supportati Sistema operativo guest Complessità di configurazione
USB Network Gate Uso professionale Quasi qualsiasi (dongle, webcam, ecc.) Windows, Linux, macOS Bassa
Disco fisico (SCSI) Archiviazione di grandi dimensioni Solo HDD esterni, unità flash Windows, Linux Media
Sessione avanzata Lavoro di amministrazione locale Dispositivi Plug and Play di base, come le unità flash Solo Windows Bassa
Reindirizzamento RDP Accesso remoto Dispositivi PnP limitati Solo Windows Bassa
DDA Aziende / Power user Controller USB (PCIe) Windows Server Alta

Comprendere queste differenze ti aiuta a risparmiare tempo ed evitare la frustrazione del metodo per tentativi ed errori. Che tu voglia la flessibilità dell’accesso USB basato sulla rete o la semplicità della Modalità sessione avanzata, ora puoi utilizzare gli strumenti che mettono insieme i tuoi dispositivi fisici e la tua configurazione virtuale Hyper-V.

FAQ

No, Hyper-V non include un’opzione integrata per il passthrough USB. Puoi collegare dispositivi USB a una VM solo tramite soluzioni alternative, come il passthrough del disco SCSI, software di terze parti come USB Network Gate, DDA, modalità sessione avanzata o reindirizzamento RDP.

Sì, è possibile utilizzare una chiavetta USB all’interno di una macchina virtuale Hyper-V utilizzando metodi come USB Network Gate (USB-over-IP) e DDA. Il reindirizzamento RDP potrebbe non funzionare con tutti i tipi di dispositivi a causa di vincoli dei driver.

L’assegnazione di dispositivi discreti (DDA) in Hyper-V consente di dedicare un intero controller USB PCIe a una macchina virtuale. Quando un controller viene assegnato tramite DDA, l’host perde l’accesso ad esso e la funzionalità è disponibile solo su Windows Server e versioni successive. 

La Modalità sessione avanzata instrada RDP tramite VMConnect su VMBus invece di utilizzare una connessione di rete tradizionale. Continua a funzionare anche quando alla VM non è assegnato alcun indirizzo IP. RDP standard tramite mstsc.exe funziona solo quando la VM è raggiungibile sulla rete.

Sì, tuttavia, ha funzionalità limitate. Sia il reindirizzamento RDP sia la Modalità sessione avanzata sono supportati su Windows 10 e 11. DDA è supportato solo su Windows Server. Quando hai bisogno del pieno supporto multi-dispositivo su Windows 10 e 11, USB Network Gate è la scelta più pratica.