Control USB Drive Letter Assignment in Windows XP/2003/Vista/2008

In Windows XP/2003/Vista/2008, when a removable drive (USB flash drive, flash card reader, portable hard drive, etc.) is attached for the first time, Windows mounts it to the first available local drive letter.

So far so good. But if there is a network share on this letter, Windows will use it anyway for the new USB drive, because network shares are specific to the current user and not visible in the context of the system where the letter is assigned.
In this example I have a USB disk that had been previously assigned the first available drive letter (F: in my case). I removed it, and then mapped a network share to the same drive letter:
usb drv 1 small
I now re-inserted the USB disk, but it did not get the F: drive letter assigned to it as it had before, because the network share now holds the F: drive letter. The USB disk appears to be invisible, and opening Windows Explorer does not show you the inserted disk.
You can change the letter assignments in the Windows Disk Management Console with a lot of mouse clicks but you have to do it again for every new device.
To change the assigned drive letter open Computer Management from the Administrative Tools folder, or by right-clicking My Computer > Manage.
usb drv 2
Expand Storage > Disk Management. There you’ll see the USB disk with its original drive letter (or no drive letter at all, depending on your OS).
usb drv 3 small
Right-click the partition on the removable disk and select Change Drive Letter and Paths.
usb drv 4 small
In the Change Drive Letter and Paths For window, click Change.
usb drv 5 small
In the Change Drive Letter and Paths window, click the drive letter drop down list and select the right drive letter.
usb drv 6 small
You will be prompted about the fact that some programs or shortcuts might stop working if you change the disk’s drive letter. Click Yes.
usb drv 7 small
You can now access the USB drive.
usb drv 8 small

Enter the USBDLM utility

The USBDLM is a freeware for personal use Windows service that gives control over Window’s drive letter assignment for USB drives. Running as service makes it independent of the logged on user’s privileges, so there is no need to give the users the privilege to change drive letters.It automatically solves conflicts between USB drives and network drives of the currently logged on user. Furthermore you can define new default letters for USB drives and much more.

usb drv 9 small
usb drv 10 small
USB drive letter manager – USBDLM http://www.uwe-sieber.de/usbdlm_e.html
Download USBDLMhttp://www.uwe-sieber.de/files/usbdlm.zip (about 180KB)
What can USBDLM do for newly attached USB drives?

  • Check if the letter is used by a network share of the currently logged on user and assign the next letter that is really available
  • Reserve letters, so they are not used for local drives
  • Assign a letter from a list of new default letters, also dependent on many different criteria as the active user, drive type, connection (USB, FireWire), USB port, volume label, size and others
  • Assign letters for a specific USB drive by putting an INI file on the drive
  • Remove the drive letters of card readers until a card is inserted
  • Show a balloon tip with the assigned drive letter(s)
  • Define autorun events depending on many different criteria
  • Many other things, see help file, available online as HTML version too

All functions are applied to USB drives at the moment they are being attached, when the USBDLM service starts up and when a user logs on.

Usage

Instructions can be found on the author’s site, so you’d better read them from there.
Running without a configuration USBDLM only prevents that an USB drive gets the letter of a network share drive of the currently logged on user. It remounts then to the next letter that is really available.
However it is worth noting that USBDLM is configured thru a text file, the USBDLM.INI. The USBDLM.INI is read from the folder of the USBDLM.EXE.
New default letters for new USB drives (flash or hard drive)

[DriveLetters]
Letter1=U
Letter2=Y
Letter3=Z

USBDLM can have up to 9 ‘LetterX’ entries in each section. They don’t have to be continuous.
For Card readers, the typical 20-in-1 card reader eats one drive letter for each of its slots – if we have a card for or not. USBDLM can remove the reader’s drive letter until a media is inserted.

[Settings]
NoMediaNoLetter=1

USBDLM assings then a drive letter as configured. If you need different drive letters for a multislot cardreader, then use the criterion ‘DeviceType’ in a DriveLetters section (MSCR is short for MultiSlotCardReaders which can be used too):

[DriveLetters1]
DeviceType=MSCR
Letter1=R
Letter2=W
Letter3=

You can prevent Windows mounting to certain letters by putting them into section ExcludedLetters. This is especially useful for letters of network shares which Windows may assign to USB drives while booting.

​[ExcludedLetters]
Letter1=F
Letter2=
Letter3=

USBDLM can show a balloon tip with information about the drive letter(s) or mount points used for a just attached drive:

[BalloonTips]
Enabled=1

I hope you found this article useful, and that it saves you time on the job!
Got a question? Post it on our Windows Server 2008 forums!