ThinLinX Support > ThinLinX Help Desk > Knowledgebase

Search help:

Why aren't my RDP mode USB redirections working?


Unlike Citrix and Horizon clients, the RDP client doesn't have a useful default position on USB device redirection and will not attempt to redirect anything by default.  Consequently, if you want RDP mode to redirect any USB device you will have to use TMS or Tlxconfig to set "Redirect USB" to Manual in the Mode window, and then click on the "Show Redirections" button that appears, select the eligible devices that you want to redirect (they will have to be already plugged in when you do this), and change the value in the "Redirect" column from "Policy Default" to "Yes".

RDP USB redirection will only work under the following conditions:

  • If not grayed out, the RDP Submode option must be set to RemoteFX or "RemoteFX (software only)", because the RDP option downgrades the RDP protocol to v7, which lacks support for USB redirection.  We removed the RDP Submode option in TMS 8.2.0 and later / TLXOS 4.8.0 and later, because there is in practice never a good reason to force Submode = RDP (you'd only ever need that for Windows Server 2003 or earlier, and FreeRDP will fall back to that as needed anyway).
  • If the RDP server is a desktop edition of Windows, you must be running at least Windows 7/8/8.1 Enterprise, or Windows 10/11 Professional.  Lesser editions lack the necessary RemoteFX features.
  • If the RDP server is a server edition of Windows, it must be Windows 2008 R2 or later, and must have the Remote Desktop Session Host (RDSH) role installed.
  • If the RDP server is Windows 10/11 or Windows Server 2016 or later, you will need to edit group/local policy to enable redirection of certain types of USB devices (e.g. printers/scanners) because this is disabled by default for recent Windows O/S releases.  In the Group Policy Editor, you must set "Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Device and Resource Redirection\Do not allow supported Plug and Play device redirection" to Disabled, and then run "gpupdate /force" on your RDP server (or wait a few minutes).

Please note also that you may have issues if your USB device is integrated into a monitor that you are directly connecting to a Raspberry Pi, because monitor manufacturers like to save a few dollars by not powering their built-in USB hubs, and the Raspberry Pi - being a very low-power device - often cannot provide sufficient power to operate an unpowered hub.  For best results, connect your monitor's unpowered USB hub to an external powered USB hub, and then connect the powered hub to your Pi.  Or just avoid using the monitor's USB hub and plug devices directly into the Pi instead.

It is not normally necessary to redirect USB storage devices, because access to these will be automatically provided via client drive redirection.  Storage devices will appears subfolders under the share named "Storage on <client-hostname>" (or \\tsclient\storage on really old Windows systems), whose names correspond to the volume name (if any) or a Linux device pathname (e.g. sda1) otherwise. This share corresponds to the /media area on your client.  Because the API lacks any kind of "safe removal" callback, we have had to automount filesytems using a one-second idle timeout and the "sync" option (because we have no idea when they might be physically unplugged), which will make writes to redirected drives very slow.

When trying to determine why USB redirection isn't working in RDP mode, to save time you should first test that it works when using Windows' own RDP client, mstsc.exe, because there are several reasons why it might not (see above condition list).  For this to work, your account on the client PC must have Administrator rights, i.e. be a member of the Administrators (or Domain Admins) group, otherwise you will need to make another group/local policy change ("Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Connection Client\RemoteFX USB Device Redirection\Allow RDP Redirection of other supported RemoteFX USB devices from this computer", set to Enabled and change RemoteFX USB Redirection Access Rights to "Administrators and Users").

If you intend to redirect a USB webcam or printer, please note that mstsc.exe will not let you do that using RemoteFX USB redirection.  The is purely a Windows client limitation, and the Linux RDP client is not limited in this way.  However, it means that when testing whether USB redirection works using the Windows RDP client, you should attempt to redirect some other type of USB peripheral instead (not a storage device, the Windows client won't allow USB redirection of that either), e.g. a USB audio device.

The USB redirection option in mstsc.exe is somewhat hidden, and has nothing to do with more visible high-level audio/printer/port/drive redirection options:

Once you connect, you will see a new icon on the drop-down toolbar, which you can click on to see details of the redirections:

You can then check Device Manager to see whether the USB device has been detected by the server.

If all that seems to work, you can move on to testing USB redirection using TLXOS.  Please note that the FreeRDP client cannot handle USB hotplug events, so the USB device must be plugged in before the session begins and remain plugged in until you have finished using it.


Related articles Why isn't USB redirection working for my Pi-connected peripheral?
Default USB redirection policies
CUPS printer redirection (using Citrix Universal Print Driver) isn't working!
How can I redirect a microphone in Horizon mode on the Pi?
Serial port redirection in RDP mode
Article details
Article ID: 16
Category: Frequently Asked Questions
Date added: 2019-05-29 02:08:39
Views: 6360

« Go back