What we gained with the development of virtualization technology is the much-desired ability to create a virtual version of computer hardware, including computing, storage, and networking resources. However, connecting to such physical resources as USB devices can still be a real challenge for users of virtual machines.
In this guide, we’ll consider several simple methods to enable Hyper-V USB passthrough so that your VM can work with any USB devices attached to the host computer.
What is Hyper-V USB passthrough?
Hyper-V USB passthrough functionality allows you to access the USB device from within a virtual machine. There is a way to enable USB passthrough on Hyper-V for a memory stick, but you’ll have to use Windows storage subsystem.
But what if you need to get access to a USB device plugged into your local PC but find out that the Hyper-V environment doesn’t natively support USB passthrough? Well, as you may know, Hyper-V is a type-1 hypervisor, which means one operating system instance locks a USB port from all other OS instances. Therefore, it may not assign a USB port to a particular guest. Thankfully, there are several popular ways to enable Hyper-V USB support and now we’ll take a closer look at each of them.
How to access USB in Hyper-V - a software method
4.8 Rank based on 78+ users
USB over IP is a powerful software designed to make USB devices accessible from any remote computer, be it a PC working in the next room or a virtual machine running on a computer located miles away. This program can be your indispensable tool to enable Hyper-V USB passthrough on Windows 10, 7, 8, and others.
If you don’t know how to connect to USB in Hyper-V, here is a How-to video guide:
How to connect to USB in Hyper-V - the simple instructions
It’s also worth mentioning that FlexiHub allows creating cross-platform connections. It can enable Hyper-V USB passthrough from Linux to Windows, from Windows to Mac and in many other combinations.
Known issues with Hyper-V USB device passthrough organized with native methods
Here is what you have to keep in mind before opting for native methods of USB passthrough to Hyper-V:
- Platform restrictions: said methods rely upon Windows storage subsystem so using them to set up Hyper-V USB passthrough on Linux (or any other OS that’s not Windows) is out of question, sadly.
- An extremely limited list of supported devices: for the native methods to work, your USB peripheral must be recognized as a “Mass Storage Device”. No exceptions.
- No sharing: once your device is set in passthrough mode, you can access it only from the guest OS. That’s why using these methods to permanently connect a USB to Hyper-V is definitely not the best idea.
- Poor choice for a cloud: with these methods, the USB device is always locked to a specific host PC while there's no way to anchor a cloud-based Hyper-V guest system or preestimate where it’s going to run for your next session.
It all adds up to a conclusion: native methods of adding USB support for Hyper-V are by no means all-purpose. In case they don’t work for your specific scenario (that is highly likely), consider getting a dedicated software tool.
How to access USB from Hyper-V over a Remote Desktop Connection
In order to connect a USB device within a remote desktop session to VM Hyper-V, just take the following steps:
- To begin, you should allow Remote Desktop Connections on your guest system. To do this, connect to your virtual machine and find “System and Security” settings in the Control Panel. Select “Allow remote access”.
- You will see the System Properties window. In the “Remote” tab, check the “Allow remote assistance connections to this computer” box. Also, make sure that the “Allow remote connections to this computer” option is selected. Hit OK.
- Now, if you want to access a Hyper-V USB device, you should initiate a Remote Desktop session.
- To do this, execute the mstsc.exe command, click “Show options” in the Remote Desktop Connection window and go to the “Local Resources” tab. Click “More” in the section “Local devices and resources”.
- Check the “Other supported plug-and-play devices” box in the menu that will open. Hit OK.
- Click “Connect” to start your Remote Desktop session.
It’s also worth mentioning that in this scenario it’s required that the host and guest machines are connected to the same network.
Benefits and pitfalls of using RDP for Hyper-V USB passthrough:
🗹 Works for literally any hypervisor you can name;
🗹 Instant access to USB devices, once RDP connection is up;
🗹 Group Policy feature for overall control;
🗹 All USB devices plugged into your host PC are accessible from a virtual machine.
✖ The instant RDP session is over, the USB device will be disconnected;
✖ Most probably, you’ll have to install some extra drivers on your VM;
✖ Very limited range of supported devices, since this used to be a printer-oriented feature;
✖ Utterly low bit rate, more often than not;
✖ Won’t work on any OS other than MS Windows;
✖ A solid network link between your guest OS and a host PC (the one that has your USB device plugged into) is an absolute must-have;
✖ You’ll have to keep your TCP port 3389 open, whether or not you have a firewall;
Basically, USB over RDP performance is similar to the remote connectivity through Terminal Services (or the like). It is most efficient when used to access peripherals attached to end-user machines.
How to enable USB device in Hyper-V with the Enhanced Session Mode
The Enhanced Session Mode makes it possible to redirect USB device to Hyper-V on Windows 10 and 8.1 (available by default), Windows Server 2012 R2 and Windows Server 2016 (can be enabled manually). This mode allows you to forward local resources to your Hyper-V VM using the Virtual Machine Connection tool. What’s important is that this method requires only the host computer to be connected to the network and doesn’t need network connectivity to the guest OS.
Here’s how it works:
- On a host computer, you go to the Hyper-V Manager, right-click the name of the host and choose Hyper-V Settings.
- In the Setting window, you will see the Server and User sections. Select Enhanced Session Mode Policy in the Server section and allow the enhanced session mode by checking the corresponding box.
- Now, choose “Enhanced Session Mode” in the User section and check the “Use enhanced session mode” box.
- Click OK and the changes will be saved.
What you should do next is select a local resource to connect to. These can be printers, smart cards, USB drives, etc.
To allow Hyper-V access to attached USB devices, take the following steps:
- Start the Hyper-V Manager and double-click the name of your virtual machine.
- In the pop-up window, click “Show Options” to configure your VM’s future connections.
- After that, go to the tab “Local resources” and click “More” in the section “Local devices and resources”.
- Then, check the boxes “Other supported Plug and Play devices” and “Devices that I plug in later”. Hit OK.
- If you want this configuration to be saved for all future connections, check the corresponding box in the “Display” tab. Click “Connect” to implement the changes.