Recently I was troubleshooting an issue regarding the interoperability of USB devices and XenDesktop/XenApp machines in 2 different connection scenarios.  Initially, neither connection method worked meaning my USB devices were seen on my XenDesktop VM, but when I connected to published applications on Citrix, the USB devices were either:

a. seen but inaccessible
b. not seen at all

The following CTX article and blog post helped tremendously in determining the issue and the solution:

Basically it all boils down to using the registry key NativeDriveMapping (value TRUE or FALSE, FALSE is default value) found in HKLM\SOFTWARE\Wow6432Node\Citrix\ICA Client\Engine\Configuration\Advances\Modules\ClientDrive (64-bit path) to enable what I’ll call USB pass-through. 

**Note: For 32-bit systems, remove Wow6432Node from the registry path.
As I said before, I had two connection scenarios to consider:

1. Connecting to XenDesktop VM using a zero client with applications published from XenApp 6.5.

In order to access USB devices in XenApp published applications in this connection scenario, I had to set the NativeDriveMapping value to TRUE on the virtual desktop.  In this case, this will be the primary connection scenario so I made the registry change on the master VM.

2. Repurposed Windows machines connecting to XenDesktop VMs with applications published from XenApp 6.5.

In order to access USB devices in XenApp published applications in the connection scenario, the following changes were required:

-On the repurposed Windows client/desktop, the NativeDriveMapping registry value must be set to TRUE
On the Virtual desktop, the NativeDriveMapping registry value must be set to FALSE