Stan said:
In my experience, no third-party tool is required. Windows does not
automatically use the same letter every time for the same device, but
when I assign a letter to a device once, Windows remembers it for all
future connections of that device.
And yet I have seen, almost every couple of cold boots, where a USB
dongle will have its drive letter changed. I'll assign it "M" (which is
above anything else that gets assigned). There is no other removable
media (USB or other devices) getting assigned drive letters above "E".
Yet, after a a couple cold boots, that dongle might end up getting
assigned the next drive letter available (which is "E" since "D" is the
last one for a hard disk). This screws up my backups wanting to use
drive E. I hide a third hard disk by not assigning it a drive letter
until the backup job runs. The backup job has a pre-command function so
I use diskpart to assign the drive letter before the backup, run the
backup (which expects to save to drive E), and remove the drive letter
after the backup completes. Because the dongle gets assigned "E" (when
the backup isn't running), and because its software expects to find "M",
I have to reassign the dongle to "M" to get its software to recognize it
again. If the software fails to find the device (which happens on a
cold reboot) then I know that I have to go change its drive letter ...
again ... and rerun the software. This is one of the reasons why I
leave my computer powered on all the time.
In violation of the USB specifications, some USB devices have no serial
number to clearly differentiate themselves. That means when you plug it
into a different USB port, Windows won't know if it is the same or
different device as already enumerated in the registry hence the change
in drive letters.
The trick of assigning a drive letter way down the list, like starting
from "Z" and progressing backward, often works but not always. That
trick sticks the drive letter assignment for awhile but it isn't
permanent. If you want to *guarantee* the device gets assigned the same
drive letter then you need a drive letter manager that interogates the
presentation data (or enumeration data if already recorded in the
registry) from the device to clearly identify it.
If you don't like the idea of having to pay for a program with tons of
features (that you may not want or may not use) and just want something
that fixes the drive letters based on their enumeration data then look
at:
USB Drive Letter Manager
http://www.uwe-sieber.de/usbdlm_e.html
It's freeware (for private and school use only). As I recall, it
harkens back to the olden days when you edited an .ini file to configure
the program instead of using a pretty GUI. It runs, I believe, as an NT
service so it loads before you even login.