USBDLM V4.9.1.0 - USB Drive Letter Manager for Windows

  This page is available in German language too

[Configuration] [News] [Prices] [Download]
  What it is
USBDLM is a Windows service that gives control over Windows' 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 or subst drives of the currently logged on user.
Furthermore you can define new default letters for USB drives and much more.

  What it is not
USBDLM isn't a wonder tool. If Windows has problems with the USB drives itself then USBDLM cannot fix it.
Here are some tips for solving problems with USB drives.

  Getting Started
When a removable drive (USB flash drive, flash card reader, portable hard drive) is attached for the first time, Windows mounts it to the first available "local" drive letter. If there is a network share on this letter, Windows XP will use it anyway for the new USB drive because since XP network shares are specific to the current user and not visible in the "System" context where the letter is assigned. The USB drive then appears to be invisible. This is fixed by XP-SP3 in most situations.
Windows can save only one letter per drive and one drive per letter. Therefore the assingments often overwrite each other, especially on low letters near the first available ones.
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.

USBDLM can 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
  • extract the letter from the volume label
  • 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
  • activate a basic protection against 'BadUSB' devices; USBDLM can ask on arrival of a USB keyboard device if it shall be activated
  • 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.

USBDLM runs as service under Windows XP, Server 2003, Vista, Windows 7/8 and Server 2008 (R2) and higher.


Unzip the distribution (USBDLM.ZIP) file to "C:\Program Files" (an USBDLM folder is included). Under Vista and Win7/8 I suggest a different folder, for instance "C:\Tools" to prevent trouble caused by the Windows "Virtual Store" where the USBDLM.INI might be redirected to without telling the user.

Then enter your preferred configuration into the USBDLM.INI (see below). There is a sample file included called USBDLM_sample.INI. Either create a new USBDLM.INI or rename the sample.

If you are logged on with administrator privileges you can simply install it by starting the

Without administrator privileges you will be prompted for them.
The _install.cmd does not copy and files it only registers the USBDLM.EXE as Windows service and starts it.

You can change the USBDLM.INI without restarting the service because it's checked for changes each time a new drive is attached.

You can uninstall the service using parameter -uninstall:

Both can be done without the message box by using the following USBDLM commandline parameters
USBDLM -silentinstall
USBDLM -silentuninstall

It returns Errorlevel 0 on success, 1 on failure.

You can stop and start the installed service by means of the _stop.cmd and _start.cmd and of course by "net stop USBDLM" / "net start USBDLM".


Running without a configuration USBDLM only prevents that a new drive gets the letter of a network share or a subst drive of the currently logged on user. It remounts then to the next letter that is really available.

USBDLM is configured thru a text file, the USBDLM.INI. The USBDLM.INI is read from the folder of the USBDLM.EXE.
If required, read at Wikipedia how INI files work.

New default letters for new USB drives (flash or harddrive)

Have a look into the help file USBDLM_ENG.CHM for more details. If you get the "cannot display the webpage" error then the help file has the NTFS file attribute "downloaded from untrusted source" and Microsoft doesn't trust its own CHM file format. To fix this, right click the USBDLM_E.CHM, select Properties and click "Unblock".
The help file is available online as HTML version too.

Card Readers

The typical 20-in-1 card reader eats one drive letter for each of its slots - if we own a card for or not. USBDLM can remove the reader's drive letters until a media is inserted.

USBDLM assigns 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 MultiSlotCardReader):

Network drive letters

You can prevent Windows mounting local drives to certain letters by putting them into section NetworkLetters. This is especially useful for letters of network shares which Windows may assign to USB drives while booting. Do not configure other letters than network, subst and TrueCrypt drives here!


Balloon Tips

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


There is much more USBDLM can do, just take some time and read the help file...

USBDLM V5 gets Balloontips on removal, here I need translations from the text snippets in French, Italian, Spanish and Portuguese as USBDLM V4 already has:

  • Safely removed
  • Unsafely removed
  • Removed
  • Ejected
  • Network Drive
  • Subst Drive

  Latest History
For the complete history check out the help file which is available online as HTML version too.

V4.9.9.99 beta for V5.0.0.0 (04 Oct 2015)

  • Bugfix: Customizing balloon tip text snippets did not work
  • Bugfix: No fallback to english for not yet translated balloon tip texts
  • Bugfix: USB SuperSpeed drives where shown as High-Speed under Win8/10
  • New: USB SuperSpeedPlus shown in BalloonTips and UsbDriveInfo
  • New: Compact balloon tips for multi-slot card readers if only one slot has a media present
V4.9.9.98 beta for V5.0.0.0 (06 Sept 2015)
  • Bugfix: Removal Policy was written to the registry even no OptimizeUsbDrivesForSpeed parameter was configured
  • Bugfix: Detection of the USB speed did not work on TI controllers under Win XP..Win7
  • New: Balloontips can be customized way more flexible
  • New: AutoDismount
V4.9.9.97 beta for V5.0.0.0 (23 Aug 2015)
  • Bugfix: Under Windows 8 and 10 USB-SuperSpeed was shown as High-Speed in the Balloontip
V4.9.9.96 beta for V5.0.0.0 (16 Aug 2015)
  • Bugfix: DeviceType TrueCrypt was still unreliable in V4.9.9.95 beta
  • New: Configurable Balloontip texts on removal
V4.9.9.95 beta für V5.0.0.0 (12. August 2015)
  • Bugfix: DeviceType TrueCrypt did not work in V4.9.9.94 beta
V4.9.9.94 beta for V5.0.0.0 (04 August 2015)
  • Bugfix: More than one FileExists in a section didn't work without the numbering
  • Bugfix: DeviceTypes CardReader and MSCR not set when the Disk device has the DriveType FIXED
  • New: Supressing Windows Balloontips works under Windows 10
V4.9.9.93 beta for V5.0.0.0 (05 July 2015)
  • New: For sections and values there is no more need for numbering; For unnumbered sections the order of appearence is what counts
  • New: Ballontips show in the icon if an USB drive is running at High-Speed or SuperSpeed
  • New: Ballontips on removal with information if the removal was safe or not (need translations for new texts)
  • New: _install.cmd and _uninstall.cmd renamed to what they really do: _service_register.cmd and _service_deregister.cmd; _start.cmd and stop.cmd renamed to _service_start.cmd and _service_stop.cmd to fit in the new naming scheme
  • Workaround: Windows 7's Alt-Tab facility with Aero enabled is screwed up if there is a visible zero sized topmost window around; USBDLM used one for receiving volume notifications; now it is no more topmost nor visible which seems to make Windows 7 happy
  • Workaround: DismountOnSleep=1 caused a 10 Seconds delay when USBDLM tries to dismount the drive-letter-less "System Restore" partition for an unknown reason; USBDLM doen't try to dismount this volume anymore
V4.9.1.0 (06 Sept 2015)
  • Bugfix: starting cmd and bat files with spaces in the path did not work since V4.8.8.6
  • Bugfix: Removal Policy was written to the registry even no OptimizeUsbDrivesForSpeed parameter was configured
V4.9.0.0 (04 Aug 2015)
  • Bugfix: DeviceTypes CardReader and MSCR not set when the Disk device has the DriveType FIXED
  • New: Suppressing Windows BalloonTips works with Windows 10
V4.8.9.9 (12 July 2015)
  • Workaround: Windows 7's Alt-Tab facility with Aero enabled is screwed up if there is a visible zero sized topmost window around; USBDLM used one for receiving volume notifications; now it is no more topmost nor visible which seems to make Windows 7 happy
  • Workaround: DismountOnSleep=1 caused a 10 Seconds delay for an unknown reason when USBDLM tries to dismount the drive-letter-less "System Restore" partition; USBDLM doesn't try to dismount this volume anymore
V4.8.9.8 (17 June 2015)
  • Bugfix: PnP Manager errors in Windows XP's EventLog because USBDLM unregistered devicenotifications too late on service stop
  • Bugfix: With Windows AutoMount disabled USBDLM did not bring volumes online even there is a valid DriveLetters section for it
  • Bugfix: MD5 check for open= worked only with uppercase MD5 hashes
V4.8.9.7 (10 May 2015)
  • Bugfix: Drive letter of iPods and ignored devices was removed by USBDLM since V4.8.6
V4.8.9.6 (29 March 2015)
  • Bugfix: UsbWriteProtect did not work if the registry key HKLM\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies doesn't exist
V4.8.9.5 (09 March 2015)
  • New: Limits of AutoRun delay, wait etc. increased to 24h; time units can be used, e.g. 10s instead of 10000
  • New: Letters by Time can be defined using multiple times
  • New: Letters by Time can be defined depending on the weekday
V4.8.9.4 (15 February 2015)
  • Bugfix: Activation of potential BadUSB devices didn't always work
  • Bugfix: Windows since Vista with active UAC triggers a volume arrival event for TrueCrypt volume long after they had been mounted sometimes; Now USBDLM skips Balloontip and AutoRun here
V4.8.9.3 (02 February 2015)
  • Bugfix: Since V4.6.9.2 crash USBDLM when executing system event
V4.8.9.2 (01 February 2015)
  • Bugfix: Occasional crash USBDLM on arrival of a TrueCrypt volume
V4.8.9.1 (18 January 2015)
  • Bugfix: Occasional crash USBDLM on arrival of a volume
  • Bugfix: Floppy access on USBDLM startup removed under XP
V4.8.8.9 (28 December 2014)
  • Bugfix: Since V4.8.4 virtual volumes not handled correctly unter Vista+ with active UAC
  • Bugfix: Drive size in balloontips now rounded to full Gigabytes again
  • New: Support for the TrueCrypt replacement VeraCrypt
  • New: UsbDriveInfo can add and remove NTFS mountpoints
V4.8.8.8 (10 November 2014)
  • Bugfix: On creation of the initial USBDLM.INI the line NoMediaNoLetter=0 was written twice
  • New: DeleteSviFolder works under other Windows versions than XP
V4.8.8.7 (14 October 2014)
  • Bugfix: Keep Alive sectionname was documented wrong as DriveKeepAlive, correct is DiskKeepAlive
  • Bugfix: USBDLM sometimes created unnessecary no-letter entries in the MountManager database
V4.8.8.6 (12 October 2014)
  • Bugfix: On AutoRun of CMD and BAT files (e.g. open="C:\Batch\test.cmd") no params passed since V4.8.8.0
  • Bugfix: Holding the Shift key pressed to skip AutoRuns did not work since Vista; "Solution": Force=1 is default now under Vista+ (Shift key ignored) and USBDLM_usr.exe is asked for the Shift key state if Force=0 is set for an open line
  • Bugfix: UsbDriveInfo x64 showed several debug information not intended for end users
  • Bugfix: Balloontip text for multiple partitions was used even there is only one partition with a volume
  • New: Keep Alive for drives
V4.8.8.5 (19 September 2014)
  • Bugfix: In some situations no letter was assigned, no autoruns executed and balloon tips not shown
  • Bugfix: Multiple FIXED drives attached at the same controller no more shown in a common balloon tip
V4.8.8.4 (17 September 2014)
  • Bugfix: In some situations autoruns wasn't executed and balloon tips not shown
V4.8.8.3 (27 August 2014)
  • Bugfix: Crash on very long volume kernel names
V4.8.8.2 (21 August 2014)
  • Bugfix: Handling of potential "BadUSB" devices did not work unter Vista+ unless a [OnDeviceArrival] section is present
  • Bugfix: Since V4.6 letters in [NetworkLetters] did not overrule letters in [DriveLetters] sections (as documented)
V4.8.8.1 (19 August 2014)
  • Bugfix: Since V4.8.8.0 the logfile was always written to C:\_USBDLM.LOG
  • Bugfix: UsbDriveInfo did not read USBDLM.INI changes on refresh
V4.8.8.0 (17 August 2014)
  • Bugfix: Since V4.5.9 OnUserLogon section executed for the first user only logged on at the same time
  • Bugfix: Since V4.8.7 on arrival of a drive the drive letter was removed for a short moment even is was not required
  • Bugfix: Since V4.8.7 newly attached volumes not handled correctly if the was other volume with an identical device ID attached before
  • Bugfix: Since V4.8.7 the USB port criteria was not reliable
  • Bugfix: When registering as Windows service by means of the Windows API function CreateService USBDLM passed the path to the USBDLM.exe in the parameter lpBinaryPathName unquoted even it contains spaces. Despite the name of the parameter the Service Control Manager resolves it as a command line, thus with C:\Program Files\USBDLM\USBDLM.exe it would execute an existing C:\Program.exe with system previleges. The MSI did it right. USBDLM corrects the path without a reinstall.
  • New: Setting SafeCommandLines to reject ambiguous open= command lines
  • New: UsbDriveInfo warns for command lines which contain spaces but the executable not quoted
  • New: "BadUSB" blocking: On arrival of an USB keyboard or network device USBDLM can ask the user if this is ok



For home users I suggest the ZIP file. Just unzip to "C:\Program Files" and run the _install.cmd (or _service_register.cmd in the beta).
The MSI is for admins who want to deploy the software in their network. An MSI with integrated USBDLM.INI is not difficult to create, see USBDLM help under Creating an MSI. There is also some information about using the MSI for USBDLM updates.

The software is fully functional and does not expire. There is no 'full version'.

Download latest release V4.9.1.0:
(about 750 KB)
(about 750 KB)

(about 850 KB)
(about 850 KB)

ListUsbDrives - the commandline version of UsbDriveInfo:

Beta release:

Download V4.9.9.99 beta for V5.0.0.0 (04 Oct 2015):
Win32 version:
x64 version:

Previous releases


  Conditions and Prices USBDLM

USBDLM is Freeware for private and educational (schools, colleges, universities) use only. The students shall outnumber all others.
Otherwise one licence per computer is required after a 30 day test period even though the software does not expire.

To support admins in schools which are often voluntary workers I made USBDLM freeware for schools, colleges and universities. But that's the line I've drawn and even your organization is non profit, good and important I have to say, it's beyond that line. Ask me for a discount in this case.

I don't ask for donations but some users insist, so
PayPal and BitCoins 19ktLtQr3URoi1YM6ZBy9SRodteGiNf9Wd / QR are welcome.

Prices with effect from June 2011
(Euro prices are constant, USD prices are floating):

Purchase of: 
Price per licence
1 to 9 licences
15.00 USD
10 to 99 licences
9.00 USD
100 to 999 licences
6.75 USD
1000 to 9999 licences
4.50 USD
>10000 licences
2.25 USD

You can order directly at me, I send offer and invoice on request.
An online order is possible at the KAGI online Shop (USA, California) with credit card, check or cash. VAT is charged depending on your country and can be skipped by having a VAT ID number.

The licence is delivered as licence number by eMail or on the invoice. It's not required for the software, the software is not limited in any way and it does not expire.

KAGI Online Shop (USA, California)

All licences are not limited in time and valid for future versions too. All updates are free of charge. Purchasers of V1.x, 2.x and 3.x are free to use V4.x.



USBDLM V5 will need no more section and value numbering in the USBDLM.INI. The section priority is defined by they appearance in the INI file.
_install.cmd and _uninstall.cmd will be renamed to what they really do: _service_register.cmd and _service_deregister.cmd
There will be optional Balloontips on removal with an information if the removal was 'safe' or 'unsafe'.
Balloontips for USB drives show in the icon if the device is running at High-Speed or SuperSpeed


Counter since Feb. 1998

last change: 06 Sept 2015

The phone number is here because of the strange german law. Please don't call me, write an eMail instead.