|
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.
|
|
|
|
|
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 context of the system where the letter is assigned. The USB drive then appears to be invisible. This is fixed by SP3 in most situations.
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.
And, for USB devices that have no serial number (in violation of the USB standards) you have to do it too when you attach it to a different USB port.
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
- 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.
USBDLM runs as Win32 service under Windows 2000, XP, Server 2003, Vista, Windows 7/8 and Server 2008 (R2). An x64 version for the x64 Edition of Windows is available too.
|
|
|
|
|
Installation |
Unzip the distribution (USBDLM.ZIP) file to "C:\Program Files" (an USBDLM folder is included).
Under Vista and Win7 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
_install.cmd
Without administrator privileges you will be prompted for them.
You can change the USBDLM.INI without restarting the service because it's checked each time a new drive is attached.
You can uninstall the service using parameter -uninstall:
_uninstall.cmd
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.
|
|
|
|
|
Configuration |
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)
[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.
You can also use the short notation:
[DriveLetters]
Letters=U,Y,Z
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 have a
card for or not. USBDLM can remove the reader's drive letter until a media is inserted.
[Settings]
NoMediaNoLetter=1
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):
[DriveLetters1]
DeviceType=MSCR
Letters=R,W
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!
[NetworkLetters]
Letters=F,G
Balloon Tips
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
There is much more USBDLM can do, just take some time and read the help file...
|
|
|
|
|
History |
For the complete history check out the help file which is available
online as HTML version too.
V4.3.0 (30 April 2009)
- Bugfix: Volume Label sometimes not read after media change under Vista, see http://support.microsoft.com/kb/943632
- New: ListUsbDrives shows the sections from the USBDLM.INI which are used for a drive
- New: Faster operation by gathering required drive information only
- New: Multiple NTFS folders can be assingned as mount points, also in addition to a drive letter
- New: In sections [OnArrival], OnRemoval etc up to 10 commands can be executed (open1 to open9 and the known open)
- New: [OnArrival] and AutoRun.inf for TrueCrypt volumes
- New: When a DeviceID is configured then the BusType for non USB drives can be omitted, same for the DriveType e.g. for CDROM drives
- New: [OnArrival] can start a program under Vista with full rights ("elevated")
- New: Criteria UserIsAdmin is under Vista related to the "elevated" user, so it is 1 for an Admin under UAC
- New: Criteria for absence of a file (FileNotExists)
- New: [OnRemovalFailed] is executed asynchronousely to avoid event ping pong when using RemoveDrive
- New: AutoRun on System Events
- New: Handling of first time arrivals under Windows 2000 optimized
- New: Using [OnArrival], OnRemoval etc there is the new default criterion MinVolumeSize=1, so a media must be present
- New: Drive letters can be checked on resume from standby and hibernation mode
- New: Drive letters by Volume Serial Number
- New: Drive description for USB drives in the menu of "Safely Remove Hardware"
- New: Balloons under Vista in almost correct design
- New: Balloons with fade out effect and shadow (if activated in the Windows settings)
- New: Using USBDLM Variables for environment variables can (and should) be configured in detail
V4.3.1 (1 June 2009)
- Bugfix: Delay on Windows standby and hibernation removed
- Bugfix: Slow responding drives handled more tolerant
- Bugfix: Firewire drives have again the short, "handmade" name in the balloon tip
V4.3.2 (7 July 2009)
- Bugfix: When only NTFS mountpoints are configured in a section then an assigned drive letter was not removed
- Bugfix: Text color in the balloon tips always black even configured different in Windows
- Bugfix: ListUsbDrives shows for harddrives and removable drives the correct "Disk DosDevName" (so far it showed the PDO name)
- New: On startup USBDLM can swap drive letters in some situations if required
- New: Section numbers from 1 to 9 can be noted as 01 .. 09, e.g. [DriveLetters01]
- New: Items Letter, Letters, Letter1 bis Letter9 - all understand all formats (single letter, list of letters, mountpoint, INI file)
V4.4.0 (1 November 2009)
- Bugfix: BusTypes in list notation (e.g. BusTypes=USB,SCSI) didn't work
- Bugfix: Deactivating System Restore for new drives didn't work
- Bugfix: OnArrival did not work for drives with no media present, even MinDiskSize=- was configured
- Bugfix: ListUsbDrives now shows all sections effective for a drive
- New: x64 version available
- New: Determining USB port names causes no more delays
- New: Startup of the USBDLM service accelerated
- New: Additional search path for executables
- New: Alternative notation of the USB Port Name
- New: Letters by USB-Port much faster now
- New: Label and Icon from autorun.inf files can be used
- New: From autorun.inf on x64 systems the section [autorun.amd64] is read first
- New: autorun.inf can be read even redirected by IniFileMapping
- New: VolumeSerial criteria can be used with wildcards
- New: "BitLocker To Go" encrypted drives are recognized as such
V4.4.1 (11 November 2009)
- Bugfix: Hiding drives from the "Safely Remove Hardware" might not work under Vista, under Window 7 it still does and will not work for "Removable" drives
- Bugfix: ListUsbDrives always showed a warning about a USBDLM.INI in the Vista/Win7 virtual store
- Bugfix: Delay on service startup on some systems removed
- Bugfix: Close button on the BalloonTip might be drawn incomplete under XP
V4.4.2 (13 December 2009)
- Bugfix: Variable %UsbSerial% was empty since V4.4.0
- Bugfix: Drive letter swapping on startup not performed when the USBDLM service started after the user's logon
- Bugfix: FileExists when used with wildcards worked only when exactly one file was found
- New: Swapping driveletters on startup can deal with more than two letters
V4.5.0 (9 May 2010)
- New: Passwords for drives
- New: AutoRun for other devices than drives
- New: AutoRun works for remote users
- New: Multiple AutoRun sections on system events depending on criteria
- New: Vista "Scan and Fix" can be suppressed
V4.5.1 (13 June 2010)
- Bugfix: On resume from standby or hibernation non responding card readers got assigned a drive letter even they should not because of NoMediaNoLetter=1
- Bugfix: When dismounting a TrueCrypt volume in an OnRemovalRequest section then the removal message for the TrueCrypt volume was not processed by USBDLM; in result no OnArrival and autorun.inf was processed on next arrival of this TrueCrypt volume
- Bugfix: The password dialog was not shown on some systems
- Bugfix: ListUsbDrives tool crashed with latest usb.id file
- New: Password can be received with an anonymous logon
V4.5.2 (1 August 2010)
- Bugfix: BitLocker drives often not detected as such
- Bugfix: USBDLM timeout error in the Windows Event Log on some slowly starting systems
- Bugfix: non responding drives was not tested again, so their OnArrival section was not executed
- Bugfix: Delay on startup of the USBDLM service removed
- Bugfix: OnArrival sections sometimes executed twice
- Bugfix: Problems with Balloontips for devices with quotation marks in the name
- Bugfix: Several fixes for Windows 2000
- New: Letters by Computer Name
- New: Letters by running process
- New: ListUsbDrives shows USB 3.0 Super Speed
V4.5.3 (5 September 2010)
- Bugfix: USBDLM prevented roaming user profiles written back to the server on user logoff or shutdown
- Bugfix: Text_mounted_to_plr for the balloon tips works now
- New: Dock and Undock system events
- New: Handling large USBDLM.INI files accelerated
- New: Some optimization
V4.5.4 (10 September 2010)
- Bugfix: With USBDLM V4.5.3 OnBalloonClick stopped working after standby or hibernation
V4.5.5 (12 October 2010)
- Bugfix: OnDeviceArrival did not work with USBDLM V4.5.4
- New: Some grammar for slavonic language balloon tips
V4.5.6 (14 October 2010)
- Bugfix: With five or more drives in the balloon tip the word "drives" was missing in V4.5.5
- New: Multiple DeviceArrival events for the same device are ignored
V4.5.7 (6 November 2010)
- Bugfix: Since V4.5.3 registry settings did not work
- Bugfix: Since V4.5.3 INI settings did not work if the last section name is unknown
V4.5.8 (17 November 2010)
- Bugfix: Sicce V4.5 USB floppy drives got a high letter assigned instead of keeping them at A: or B:
- Bugfix: Since V4.5.3 USBDLM changed the Windows timer resolution from 10 or 15 ms to 1 ms - the result might be a slighly higher power consumption of the CPU
V4.5.9 (20 Feb 2011)
- Bugfix: Since V4.5.1 USBDLM stopped working under very rare conditions which is if all the following is true: USB drive attached which is recognized as cardreader, an [Explorer] section is used, no [OnArrival], no [OnRemovalRequest] and no [OnRemoval] for this drive is configured
V4.6.0 (20 Feb 2011)
- New: Changeover to Unicode: USBDLM.INI, BalloonTips, file names etc have no more problems with codepages and charsets
- New: OnUserActivated and OnUserDeactivated system events
- New: Explorer Icon and Label can be defined in the volume's DriveLetters section
- New: Executable files are searched for first in the Windows search path (the PATH environment variable) and then in the working directory
- New: OnArrival for network and subst drives
- New: The FileExists criteria sees user drives (as network, subst and TrueCrypt drives)
- New: The drive letter can be directly extracted from the Volume Label to the new variable %LetterFromLabel% which can be configured as drive letter
- New: ListUsbDrives shows started with parameter -v all USBDLM-variables
- New: USBDLM can activate the write cache for USB drives
- New: x64 MSI is available
- New: USBDLM.WXS file is provided for creating MSI file by means of the Microsoft WIX toolset, see Creating an MSI
V4.6.1 (23 Feb 2011)
- Bugfix: No balloontips under Windows Server 2008 and under Window Vista and Windows 7 if the UAC is deactivated
V4.6.2 (15 March 2011)
- Bugfix: Since V4.6 settings from the registry did not work correctly
V4.6.3 (21 March 2011)
- Bugfix: Setting USB drives to the policy "Optimize for speed" and activating the write cache worked only, if the drive's registry key "Classpnp" was already present, which is the case only if the removal policy was manually changed before
- New: New variable %PureVolumeName% gives something like Volume{06588842-39a4-11e0-8027-806d6172696f} which is useful when dealing with tools like DD which want to see volume names like \\.\Volume{06588842-39a4-11e0-8027-806d6172696f}
V4.6.4 (26 April 2011)
V4.6.5 (13 May 2011)
- Bugfix: Since V4.6 possible crash on arrival of multiple network or subst drives at the same time
- New: Setting VirtualVolumes for deactivating USBDLM dealing with virtual drives (Network, Subst, TrueCrypt and other user specific drives)
V4.6.6 (27 May 2011)
- Bugfix: Section NetworkLetters/ExcludedLetters had no effect since V4.6
V4.6.7 (30 May 2011)
- Bugfix: Passwords did not work under Vista/Win7 since V4.6
V4.6.8 (05 June 2011)
- Bugfix: Criteria UserGroup did not work on some Vista/Win7 installations since V4.6
V4.6.8.1 (08 June 2011)
- Bugfix: Some function stopped working after a while in V4.6.8.0
V4.6.8.2 (19 June 2011)
- Bugfix: Since V4.6 Firewire drives had a crippled FriendlyName, e.g. in the BalloonTip
V4.6.8.3 (10 July 2011)
- Bugfix: Since V4.6 crash on install if WriteLogFile=1 and the log file cannot be created, e.g. due to missing privileges, invalid path, etc
- Bugfix: Crash when FileExists criteria is evaluated on system and device events
V4.6.9.1 (11 Sept 2011)
- Bugfix: Since V4.6 the external deviceids.txt file worked as Unicode only
- New: Some time criteria
- New: Win7 BusTypes Virtual and VirtualFileBackedVirtual
V4.6.9.2 (08 Oct 2011)
- Bugfix: Since V4.6 autorun.inf open usually did not work
- New: Timeout for criteria FileExists, DirExists can be configured
- New: Registry setting for USB WriteProtect can be set
V4.7.0.0 (15 Jan 2012)
- Bugfix: Criteria MaxTimeSinceBoot did not work
- New: Letters by USB-Port works with non USB drives by generating a port name from the location string
- New: Letters by Operating System Version
- New: deviceid text files are cached instead of being read each time
- New: ListUsbDrives shows (when started with -a) active filter drivers for drives and their device classes
- New: ListUsbDrives shows partition and FAT cluster alignment
- New: Warning balloon-tip when a drive with GUID partition table (GPT) is attached on XP or Windows 2000
V4.7.1.0 (09 Sept 2012)
- Bugfix: After standby or hibernation drives without a media was removed from USBDLM's internal drivelist; as a result OnRemovalRequest and OnRemoval events did not work anymore
- Bugfix: On Windows 2000 OnArrival and BalloonTips did not work with some devices
- Bugfix: No Balloontips for TrueCrypt volumes with ShowTrueCrypt=1 and ShowVirtual=0
- Bugfix: AutoRuns sometimes not excuted on system start if AutoRunOnLogon=1 and AutoRunOnStartup=0
- New: Letters by Disk Signature
- New: StaticLetters - drive letter which USBDLM will never change. This way you can still assign certain drive letters by means of the Windows Disk Management
- New: DeviceType OtfeVolume for virtual drives created by FreeOTFE
- New: In OnDeviceArrival sections all criteria not related to a new drive are available
- New: Deleting the 'System Volume Information' folder works on NTFS drives
- New: Some optimations
V4.7.2.0 (10 April 2013)
- New: Output of programs started hidden or as "LocalSystem" is redirected to the log-file
- Bugfix: Crash with more than 160 drives of one class
- Bugfix: USB-Portname not determined when the drive is part of a USB composite device
- Bugfix: Crash on removal of a drive if its VolumeName could not be determined on arrival
- Bugfix: Crash ListUsbDrives if a partition has an alignment >= 4 GB
- Bugfix: When attaching a USB floppy drive a wrong balloontip was shown for a moment
V4.7.3.0 (20 Mai 2013)
- Bugfix: Crash if user is member of a huge number of user groups (~ >100)
- New: ListUsbDrives commandline tool replaced by UsbDriveInfo GUI tool; UsbDriveInfo is still available standalone
- New: The criteria UserGroup accepts group SIDs too
- New: Group membership is determined in a different way (now based upon the user's access token); This should work with cached credentials and NetUserGroups=1 is no more required
- New: Command interface for restricted programs to flush the write cache, dismount, eject, reactivatable safely remove hardware
- New: DeviceType "WindowsRecovery" for Windows Recovery partitions
- New: USBDLM ensures that USBDLM.EXE and INI are writable to admins only
- New: _edit-ini.cmd for opening the USBDLM.INI with admin previleges
V4.7.3.1 (22 Mai 2013)
- Bugfix: Crash on some computers
V4.7.3.2 (09 June 2013)
- Bugfix (again): Crash on some computers
|
|
|
|
|
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.
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.
|
|
|
|
|
Plans |
No more big plans at the moment. Everything I ever had in mind for USBDLM is implemented in USBDLM V4.6.
Plans for a graphical configuration tool are stalled at the moment because I've no idea how it should look like to be more efficient than the INI files.
The GUI version of ListUsbDrives called UsbDriveInfo is finished and comes with USBDLM since V4.7.3.
|
|
|
|
Counter since Feb. 1998
last change: 20 August 2013
The phone number is here because of the strange german law. Please don't call me, write an eMail instead.
Home: http://www.uwe-sieber.de/english.html
|