A lot of people have been complaining about USB disk support in Citrix Presentation Server. When a user connects a USB drive while working in a Citrix ICA session, the drive will not become visible in that session. While Microsoft has already added support for this in their RDP protocol, Citrix lags behind on implementing this in ICA.
While researching the possibilities of adding support for this ‘hot plugging’ myself, I stumbled upon a great tool called ‘USBDLM’ written by Uwe Sieber. By default, Windows allocates the first available drive letter to an inserted USB storage device which makes management of this device somewhat troublesome. USBDLM installs as a service on a Win32 client and enables YOU, the administrator, to predefine where and how USB disks are made available to your operating system using a simple ini-file. (Just the way we like it!)
While reading the manual, I also came across the possibility to mount USB storage devices to a predefined folder. This is when I realized that this tool could be of great value to the Citrix community. Below you will find a set of instructions on how to make hot plugging USB disks possible within your environment.
The How to Guide
First of all, download USBDLM from http://www.uwe-sieber.de/usbdlm_e.html, extract it, and follow the simple steps as described below. Mind you, USBDLM is NOT free for commercial use so please read the license agreement.
Step 1: Edit the configuration file (on the client)
In the UBDLM directory you will find a USBDLM_example.ini file. Copy this file, rename it to “USBDLM.ini,” and open it using notepad. Scroll down to the [setting] part and add the “ForceDriveLetters=1” setting. Now, scroll down to the [DriveLetters] section and change the “Letter1=” to “Letter1=C:\USB\%DiskName%”. Make sure you save the ini file in ANSI format. UNICODE is not supported.
Step 2: Creating a mount folder (on the client)
As said, USBDLM is able to mount a USB storage device to a folder instead of assigning a drive letter to it. To enable this feature we need to pre-create a folder where USBDLM can mount the USB storage device. Following the previous step we need to create a folder called “C:\USB”. The folder %DiskName% will be auto-created.
Step 3: Making all USB storage devices available through one drive letter (on the client)
Substitute the folder that we created in the previous step using the user’s login script. CMD-based login scripts could add the following line: “SUBST X: C:\USB”. From now on all client USB devices will be available though this drive letter.
Step 4: Enable Client drive mappings (on the server)
There are a number of ways to enable client drive mapping for your Citrix farm. Use the method that best suits your environment.
Step 5: Log on to Citrix farm
Log on to your farm with client drives enabled. The substituted drive will be visible as a normal client drive. Now insert your USB storage device and wait for the contents to show up.
Here's a screen shot from the client showing the local USB device and the remote folder.