Index
USB Drive Letter Manager V4.2
Einstieg
Installation
Konfiguration
Probleme
Lizenz-Vereinbarung
Homepage:
http://www.uwe-sieber.de/usbdlm.html
Tips für USB-Laufwerke:
http://www.uwe-sieber.de/usbstick.html
EMail:
mail@uwe-sieber.de
Einstieg
Der USB Drive Letter Manager 'USBDLM' ist ein Window-Dienst, der Kontrolle über die Zuordnung von Laufwerksbuchstaben für USB-Laufwerke gibt. Man kann Buchstaben für USB-Laufwerke definieren, auch abhängig vom USB-Port, der Laufwerks-Größe u.v.a.
Konflikte mit Netz- und Subst-Laufwerken werden auch ohne Konfiguration behoben.
Als Windows-Dienst ist USBDLM unabhängig von den Rechten des angemeldeten Nutzers.
USBDLM läuft unter Windows 2000, XP, Server 2003 und Vista. Unter folgenden Systemen wurde getestet:
Windows 2000 SP4
Windows 2000 SP4 + Rollup 1
Windows XP SP2
Windows XP SP3
Windows 2003 Server SP1
Windows Vista Ultimate
Windows Vista Bussiness N x64 SP1
Konditionen
USBDLM ist Freeware für die private Nutzung sowie für Bildungseinrichtungen. Anderenfalls ist - nach einer 30-tägigen Testzeit - pro Computer eine Lizenz nötig, s.unten.
Bildungseinrichtungen gelten als solche, wenn Zahl der eingeschriebenen Schüler und Studenten höher ist als die der sonstigen Mitarbeiter.
Preise gibts hier:
http://www.uwe-sieber.de/usbdlm.html
Lizenz-Vereinbarung
Die Software ist auch ohne Lizenz voll funktionsfähig - es gibt keine "Vollversion".
Wozu?
Beim erstmaligen Anschließen eines USB-Datenträgers (Stick, CardReader, Festplatte) vergibt Windows 2000/XP/Vista dafür den ersten freien lokalen Laufwerks-Buchstaben - der Datenträger wird auf den Buchstaben 'gemountet', dort 'bereitgestellt'. Den Buchstaben kann man dann in der Datenträger-Verwaltung mit einiger Klickerei umstellen und im Normalfall wird Windows sich das für genau diesen Datenträger merken. Windows merkt sich aber nur genau eine Zuordnung pro Buchstabe.
Für jeden neuen USB-Datenträger geht das Ganze von vorne los, ebenso wenn man ein Gerät, das im Widerspruch zu den USB-Standards keine Seriennummer hat, an einen anderen USB-Port anschließt.
Netz- und Subst-Laufwerke sind ab Windows XP nutzerspezifisch und damit keine 'lokalen' mehr. Hat man auf dem ersten freien lokalen Buchstaben ein Netz- oder Subst-Laufwerk, bekommt ein neues USB-Laufwerk unter XP genau diesen Buchstaben und es scheint, als hätte das Laufwerk keinen Buchstaben bekommen. Tatsächlich kommt man nur nicht ran...
Mit USBDLM kann man
Konflikte mit Netz- und Subst-Laufwerken beheben lassen (keine Konfiguration nötig)
Laufwerksbuchstaben von der Nutzung durch USB- und Firewire-Laufwerke ausschließen
Für alle neuen USB-Datenträger eine Liste von Standard-Buchstaben vorgeben, auch abhängig von einer Vielzahl an Kriterien, z.B. Laufwerks-Typ, Anschluß (USB, FireWire), USB-Port, Datenträgerbezeichnung, Größe des Datenträgers, Hardware-ID u.v.a.
Laufwerksbuchstaben von Kartenlesern entfernen und genau dann einen Buchstaben zuordnen, wenn eine Karte eingelegt wird
Beim Anschließen eines Laufwerks einen aussagekräftigen Balloontip anzeigen lassen
Ausführen eines Autostarts, auch abhängig von o.g. Kriterien
u.v.a.
Statt Buchstaben können auch leere NTFS-Ordner als Mount-Punkte angegeben werden, was aber einige Einschränkungen und Probleme mit sich bringt, siehe Konfiguration.
Installation
Einfach die ZIP-Datei entpacken, z.B. nach C:\Programme - ein Ordner USBDLM ist enthalten. Im Ergebnis sollten die Dateien dann z.B. in C:\Programme\USBDLM liegen.
Unter Vista besser in einen Order wie C:\Tools installieren, da unter C:\Programme Vista die Datei in den "Virtal Store" umleitet, wenn sie von einem eingeschränkten Nutzer bearbeitet wird.
Dann in die USBDLM.INI die gewünschen LW-Buchstaben eintragen. Es ist ein Beispiel-INI enthalten - die USBDLM_sample.INI. Entweder eine neue USBDLM.INI anlegen oder die USBDLM_sample.INI in USBDLM.INI umbenennen und bearbeiten.
Zum Installieren des USBDLM-Dienstes einfach die USBDLM.EXE mit dem Paramter -install starten.
Genau das macht die
USBDLM -install
oder
_install.cmd
Damit werden keinerlei Dateien kopiert. USBDLM wird nur als Dienst registriert und gestartet.
Ohne Admin-Rechte startet sich die USBDLM.EXE selbst nochmal und fordert dabei die nötigen Admin-Rechten an.
USBDLM trägt sich mit der Startart 'Automatisch' ein - wird also bei jedem Systemstart automatisch geladen.
Der Dienst kann mit dem Parameter -uninstall gestoppt und deinstalliert werden - das macht die
_uninstall.cmd
Beides geht auch ohne MessageBox:
USBDLM -silentinstall
USBDLM -silentuninstall
Es gibt dann bei Erfolg Errorlevel 0, sonst 1 zurück.
Der installierte Dienst kann mit _stop.cmd und _start.cmd gestoppt und gestartet werden.
Auf der Kommandozeile kann man auch das Windows-Kommando NET bemühen:
net stop USBDLM
net start USBDLM
Wenn der USBDLM-Dienst gestartet wird, wird die USBDLM.EXE aus dem Pfad genommen, aus dem der Dienst installiert wurde! Von wo aus der Dienst gestartet wird, spielt keine Rolle, soll ein neues Verzeichnis benutzt werden, dort einmal _uninstall.cmd und dann _install.cmd ausführen.
Die Laufwerks-Einstellungen in der USBDLM.INI können geändert werden, ohne den Dienst neu zu starten - die INI wird bei jedem Anschließen eines Laufwerks gelesen, wenn sich ihr Datei-Datum/Uhrzeit geändert hat.
Mehr dazu unter Konfiguration.
Konfiguration
USBDLM wird über eine INI-Datei namens USBDLM.INI konfiguriert die im selben Verzeichnis wie die USBDLM.EXE liegt. Eine INI-Datei kann z.B. mit dem Windows-Editor 'Notepad' bearbeitet werden - einfach im Explorer doppelklicken.
Mitgeliefert wird als Beispiel die USBDLM_Sample.INI - die kann man sich umbenennen oder eine neue USBDLM.INI anlegen.
Das Editieren der USBDLM.INI erfordert Admin-Rechte, da sie im Programme-Verzeichnis liegt - da haben auf NTFS-formatierten Laufwerken nur Admins Schreibzugriff.
INI-Dateien sind in Abschnitte unterteilt - jeder Abschnitt beginnt mit dem Abschnitts-Namen in eckigen Klammern, z.B. [DriveLetters] und erstreckt sich bis zum Beginn des nächsten Abschnitts oder bis zum Datei-Ende. Jeden Abschnitt darf es nur einmal geben! Die Konfigurations-Einstellungen stehen unter den jeweiligen Abschnitts-Namen - ihre Bedeutung ist abhängig vom Abschnitt in dem sie stehen. Innerhalb eines Abschnitts darf es jeden Wert nur einmal geben.
Ab V3.3.1 kann USBDLM seine Einstellungen alternativ aus der Registry lesen, und zwar unter
HKLM/Software/Uwe Sieber/USBDLM
Wenn dieser Schlüssel vorhanden ist, wird die USBDLM.INI ignoriert! Nur die Einstellungen für die Log-Datei kommen immer aus der USBDLM.INI.
Für jeden INI-Abschnitt ist ein Schlüssel anzulegen, die Werte müssen vom Typ REG_SZ sein. Damit USBDLM Änderungen im laufenden Betrieb bemerkt, kann der Wert (Standard) unter HKLM/Software/Uwe Sieber/USBDLM auf einen anderen (beliebigen) Wert gesetzt werden.. USBDLM liest dann die Konfiguration neu ein.
Hier gibt's eine Beispiel REG-Datei: http://www.uwe-sieber.de/files/usbdlm_sample.reg
Ganz ohne Konfiguration behebt USBDLM Konflikte mit Netz- und Subst-Laufwerken.
USBDLM bietet vielfältige Möglichkeiten, auf die Vergabe von Laufwerksbuchstaben Einfluß zu nehmen. Für jede Vorgabe gibt es einen Abschnitt in der USBDLM.INI mit maximal 9 Laufwerksbuchstaben. Die einfachste Variante für Laufwerksbuchstaben für USB-Sticks und Festplatten sieht so aus:
[DriveLetters]
Letter1=U
Letter2=V
Letter3=W
Letter4=X
Letter5=Y
Die Buchstaben werden von 1 bis 9 eingelesen. Auf den ersten geeigneten wird dann umgemountet. Das Mounten auf mehrere Buchstaben oder auf einen Buchstaben und zusätzlich in ein NTFS-Verzeichnis ist nicht vorgesehen.
Wenn nur Buchstaben im Spiel sind, kann man auch eine kompakte Notation in einem Wert 'Letters' nutzen:
[DriveLetters]
Letters=U,V,W,X,Y
Oder noch kürzer:
[DriveLetters]
Letters=UVWXY
Aufeinanderfolgende Buchstaben kann man per "von-bis" notieren:
[DriveLetters]
Letters=U-W
U-W wäre die Kurzfassung von U,V,W. Absteigend gehts auch, W-U steht also für W,V,U.
Wenn Letters und Letter1..Letter9 zusammen eingesetzt werden, haben die Letters Vorrang. Beispiel:
[DriveLetters]
Letters=X-Z
Letter1=J
Letter2=K
So würde USBDLM die Laufwerksbuchstaben X, Y, Z, J und K probieren.
Wenn generell Mangel an Laufwerksbuchstaben herrscht, kann nach dem letzten Buchstaben noch einen NTFS-Ordner für Notfälle (kein freier Buchstabe übrig) konfigurieren.
Letter9=C:\%DevName%
%DevName% ist eine USBDLM-Variable und wird durch den Geräte-Namen des Laufwerks ersetzt. USBDLM legt dann einen Ordner an und mountet das Laufwerk dorthin. Das funktioniert nur auf NTFS-Laufwerken.
USBDLM ordnet immer nur einen Laufwerksbuchstaben oder Mountpunkt zu. Will man Laufwerksbuchstaben und NTFS-Mountpunkt gleichzeitig haben, läßt man USBDLM auf den NTFS-Mountpunkt mounten und per läßt den Buchstaben per AutoRun und das MOUNTVOL-Kommando zuordnen.
Kein Buchstabe / Laufwerk entfernen
Um ein Laufwerk zu verstecken, kann auch 'kein Buchstabe' konfiguriert werden - ein einzelnes Minus-Zeichen steht dafür. So bekommt kein USB-Laufwerk eine Buchstaben mehr:
[DriveLetters]
Letter1=-
Soll das Gerät gleich ganz entfernt werden ("Vorbereiten zum sicheren Entfernen"), konfiguriert man 2x Minus:
[DriveLetters]
Letter1=--
Um auf einer USB-Festplatte die erste Partition auf X: zu haben und die zweite Partition zu verstecken:
[DriveLetters]
Letter1=X
Letter2=-
Das funktioniert aber nur, wenn X: auch frei ist, sonst wird für alle Partitionen der Platte der Buchstabe entfernt!
Um auf einer USB-Festplatte die erste Partition zu verstecken und die zweite unter X: zu haben, funktioniert das nicht:
[DriveLetters]
Letter1=-
Letter2=X
Warum? Es wird für das Laufwerk von Letter1 bis 9 nach einem freien Buchstaben gesucht. "Kein Buchstabe" ist aber immer frei, somit wird Letter2 nie erreicht. Allen Partitionen wird der Buchstabe weggenommen.
Hier hilft ein eigener Abschnitt mit der Partitionsnummer als Kriterium .
Buchstaben abhängig von bestimmten Kriterien
Um einen [DriveLetters] Abschnitt nur auf bestimmte Laufwerke anzuwenden, kann man Kriterien definieren. Sollen verschiedene Gruppen gebildet werden, sind die Abschnitte zu numerieren, es wird dann von 1 aufsteigend überprüft.
USBDLM benutzt immer nur die Einstellungen des ersten passenden Abschnitts! Es gibt kein Ausweichen auf den nächsten passenden Abschnitt, falls alle konfigurierten Buchstaben eines Abschnitts vergeben sind!
Beispiel zum Sperren von Laufwerken über 10 GB, kleinere auf U, V und W:
;ab 10GB Buchstaben entfernen
[DriveLetters1]
MinDiskSize=10GB
Letter1=-
;alle anderen auf U, V, W
[DriveLetters2]
Letter1=U
Letter2=V
Letter3=W
Oder kurz:
[DriveLetters2]
Letters=U,V,W
Das ist ausführlich unter Buchstaben abhängig von bestimmten Kriterien beschrieben.
Sonstige Einstellungen - [Settings]
Mounten in NTFS-Ordner
Statt Laufwerks-Buchstaben können auch leere NTFS-Order als Mount-Points ('Bereitstellungspunkte') angegeben werden, siehe Mounten in NTFS-Ordner
Mounten in NTFS-Ordner
Statt Laufwerks-Buchstaben können auch leere NTFS-Order als Mount-Points ('Bereitstellungspunkte') angegeben werden. Dabei kann USBDLM den letzten Teil des Ordner-Pfades selbst anlegen. Wenn z.B. 'C:\_USB-Sticks\Stick1' konfiguriert ist, muß zumindest der Ordner 'C:\_USB-Sticks' bereits vorhanden sein.
Die Ordner bleiben auch nach dem Entfernen des Laufwerks erhalten und können auch problemlos umbenannt werden. USBDLM akzeptiert das, solange der Ordner sich im gleichen übergeordeten Ordner wie der konfigurierte befindet.
Beim Mounten in NTFS-Ordner kann man den Gerätenamen, die Datenträger-Bezeichung oder jede andere USBDLM-Variable nutzen:
Einfach '%DevName%' oder '%VolumeLabel%' konfigurieren - das wird dann durch den Gerätenamen bzw. die Datenträgerbezeichnung ("Volume Label") ersetzt.
Beispiel: Angenommen der Geräte-Name ist 'Corsair Flash Voyager'...
[DriveLetters]
Letter1=C:\_USB\%DevName%
Dann würde USBDLM in 'C:\_USB' den Ordner 'Corsair Flash Voyager' anlegen und das Laufwerk dorthin mounten.
Im Gegensatz zu Laufwerksbuchstaben bleiben NTFS-Mountpunkte beim Entfernen des Laufwerks erhalten. USBDLM kann sie aber löschen:
[Settings]
DeleteMountPointsOnRemoval=1
Wenn allerdings ein Laufwerk entfernt wird, während der USBDLM-Dienst nicht läuft, z.B. wenn Windows schon heruntergefahren ist, klappt das mit dem Entfernen natürlich nicht.
USBDLM kann das beim nächten Start oder beim Nutzerwechsel nachholen. Konfiguriert werden die Ordner, die die Mountpunkte enthalten, passend zum oberen Beispiel also
[DeleteUnusedNtfsMountpoints]
Folder1=C:\_USB
Folder2=
Das Mounten in NTFS-Ordner bringt allerdings einige Nachteile mit sich: Viele Windows-Funktionen für Laufwerke stehen dann über den Windows-Explorer nicht mehr zur Verfügung, z.B. AutoRun, Auswerfen, Defragmentieren, Formatieren...
Für Wechseldatenträger sieht Windows keine Papierkorb-Funktion vor. Mountet man aber einen Wechseldatenträger in einen NTFS-Ordner, wird das von Windows beim Löschen nicht berücksichtigt - es wird dann der Papierkorb des Wirts-Laufwerks benutzt!
Normalerweise werden die Dateien beim 'Löschen' dorthin verschoben, d.h. es wird nur der Datei-Eintrag geändert, die Daten bleiben unangetastet.
Löscht man eine Datei auf einem in ein NTFS-Verzeichnis gemounteten Laufwerk, geht das mit dem Verschieben nicht, da sich Datei und der Papierkorb-Ordner auf verschiedenen physichen Laufwerken befinden.
Die zu löschende Datei wird deshalb in den Papierkorb kopiert und anschließend gelöscht, was je nach Dateigröße entsprechend dauert. Bei Ordnern funktioniert's garnicht - es gibt eine irreführende Fehlermeldung. Also beim Löschen die Umschalt-Taste festhalten um den Papierkorb zu übergehen oder den Papierkorb des Wirtslaufwerks ganz abschalten.
Bekommen die Laufwerke immer wieder Laufwerksbuchstaben, ist eine andere Software am Werk, die die Buchstaben bei passender Gelegenheit überprüft und ggf. zuordnet.
Bekannt dafür ist das U3 Launchpad auf U3-Sticks (die U3launch.exe auf dem Pseudo-CDROM), siehe kein Medium, kein Buchstabe.
Alles in Allem ist das Mounten in NTFS-Ordner nicht zu empfehlen. Bei knappen Laufwerksbuchstaben besser die USBDLM-Funkion "kein Medium, kein Buchstabe" benutzen.
Einstellungen
Die im Folgenden beschriebenen Einstellungen sind in der USBDLM.INI im Abschnitt [Settings] einzutragen.
In den Beispielen wird immer wieder aufs Neue der Abschnitt [Settings] genannt. Damit ist natürlich der eine gemeinsame Abschnitt gemeint. Es kann nur einen geben...
Die Einstellungen werden ab V4.2 bis auf wenige Ausnahmen sofort wirksam.
Laufwerks-Buchstaben beim Start überprüfen
Die gemachten Laufwerks-Einstellungen werden standardmäßig bei Start des USBDLM-Dienstes überprüft, um auch beim Booten bereits angeschlossene Laufwerke zu erfassen.
Soll USBDLM das nicht tun:
[Settings]
CheckLettersOnStartup=0
Konflikte mit Netz-Laufwerken können hier nicht ohne weiteres behoben werden, da diese zu diesem Zeitpunkt noch nicht vorhanden sind und USBDLM nicht in die Zukunft blicken kann... Außderdem würde das Anlegen der Netzlaufwerke eh fehlschlagen, wenn der jeweilige Buchstaben schon besetzt ist.
Künftige Netz-Laufwerke, die hier berücksichtigt werden sollen, müssen deshalb im Abschnitt [ExcludedLetters] eingetragen werden.
Laufwerks-Buchstaben beim Nutzer-Login / Nutzerwechsel überprüfen
Die konfigurierten Laufwerks-Einstellungen werden standardmäßig beim Wechsel des aktiven Nutzers überprüft, um nutzerabhängige Konfigurationen zu berücksichtigen.
Soll USBDLM das nicht tun:
[Settings]
CheckLettersOnLogon=0
AutoRuns bei Nutzer-Login / Nutzerwechsel ausführen
Die konfigurierten AutoRun-Ereignisse werden standardmäßig nur bei Anschließen eines Laufwerks bzw. Einlegen eines Datenträgers überprüft und ggf. ausgeführt.
Soll USBDLM AutoRuns auch beim Login oder Nutzerwechsel ausführen:
[Settings]
AutoRunOnLogon=1
Beim automatischen Logon ist der USBDLM-Dienst möglicherweise noch nicht gestartet, da XP nicht auf den Start aller Dienste wartet - die Illusion vom schnellen Start hat Vorrang. USBDLM verpaßt so das Logon-Ereignis.
Deshalb führt USBDLM beim Dienst-Start die AutoRuns dennoch aus, wenn seit dem Systemstart weniger als zwei Minuten vergangen sind und bereits ein Nutzer eingeloggt ist, es sich also offenbar um einen verpaßten Logon handelt.
NTFS-Order beim Entfernen des Laufwerks löschen
Wird in Ordner auf NTFS-Laufwerken gemoutet, können diese Ordner beim Entfernen des dort bereitgestellten Laufwerks durch USBDLM gelöscht werden - normalerweise bleiben sie erhalten.
[Settings]
DeleteMountPointsOnRemoval=1
Externe Mount-Ereignisse
Wenn Laufwerksbuchstaben manuell geändert werden, wird USBDLM darüber nicht benachrichtigt, weil es ein Windows-Dienst ist. Meist ergeben sich daraus keine Nachteile, nur exotische Funktionen wie OnRemoval funktionieren dann nicht, weil der Laufwerksbuchstabe nicht mehr paßt.
Bei Bedarf kann USBDLM aber ein unsichtbares Fenster anlegen, das die Benachrichtigungen empfängt (Neustart des Dienstes erforderlich).
[Settings]
ExternalMountEvents=1
Unter XP mit der "Schnellen Benutzerumschaltung" (Fast User Switching - kurz FUS) funktioniert das nur für den ersten angemeldeten Nutzer. Under Vista funktioniert es gar nicht. Das wird in der kommenden V4.3 behoben - die bekommt ein Hilfsprogramm, das im Kontext des angemeldeten Nutzers läuft und die entsprechenden Benachrichtigungen an den USBDLM-Dienst weiterleitet.
Richtlinie "Für Leistung optimieren" für USB-Laufwerke
Unter XP und höher kann man für USB-Laufwerke zwischen den "Richtlinien" "Für schnelles Entfernen optimieren" und "Für Leistung optimieren" wählen, mit der Behauptung, letztere würde einen Schreibcache aktivieren. Tut es aber nicht, wenn es sich beim Laufwerk um einen "Wechseldatenträger" handelt - so geben sich fast alle USB-Sticks zu erkennen! "Für Leistung optimieren" aktiviert für Wechseldatenträger lediglich die Möglichkeit, das Laufwerk mit NTFS zu formatieren und dann bekommt man tatsächlich einen Schreibecache - auch auf anderen Rechnern, da unabhängig von der Richtlinie... Es geht allein um die Erlaubnis, mit NTFS zu formatieren.
Auf FAT-formatieren USB-Festplatten wird tatsächlich ein Schreibcache aktiviert, mit NTFS hat man auch hier in jedem Fall einen Schreibcache.
USBDLM kann die Richtlinie für alle USB-Laufwerke auf für "Für Leistung optimieren" umstellen:
[Settings]
OptimizeUsbDrivesForSpeed=1
Bei erstmals angeschlossenen Laufwerken klappt das sofort. Vorhandene Laufwerke müssen zweimal neu angeschlossen werden.
Debug-Infos
Wenn es Probleme gibt, kann man u.U. anhand von Debug-Ausgaben herausfinden, was schiefläuft.
Für Ausgaben in die Log-Datei ist WriteLogFile=1 zu setzen. Standardmäßig wird eine _USBDLM.LOG ins Stammverzeichnis des Windows-Laufwerks geschrieben. Mit LogFile=Pfad\Datei läßt sich ein anderes Ziel festlegen.
Für Live-Debug-Ausgaben, die man mit SysInternals DebugView einfangen kann, ist WriteDebugInfo=1 zu setzen.
Wie dedailiert die Ausgaben ausfallen, wird über den LogLevel 1 bis 5 gesteuert, wobei ab 4 extrem ins Detail geht. Beispiel:
[Settings]
LogLevel=3
WriteLogFile=1
LogFile=C:\USBDLM.LOG
WriteDebugInfo=1
Ab V4.2 ist dafür kein Neustart des USBDLM-Dienstes nötig.
Die USBDLM.LOG wird beim Start in USBDLM_BAK.LOG umbenannt, eine vorhandene USBDLM_BAK.LOG wird gelöscht.
Umstieg von V3.x
Statt für jedes Kriterium einen eigenen Abschnittstyp wird jetzt nur noch ein Typ benutzt, [DriveLettersX]. In jedem Abschnitt können alle unterstützten Kriterien konfiguriert werden, so wie das schon von z.B. [DriveLettersBySize] mit MinSizeMB=xxxx bekannt ist.
Die Reihenfolge der Auswertung ist nicht mehr fest vorgegeben, sie jetzt hängt allein von den Abschnittsnummern ab
USBDLM.INI auf dem Laufwerk gibt's so nicht mehr, kann aber leicht nachgebildet werden, siehe Konfiguration. Der Vorteil ist, daß man die Funktion nicht sperren muß, wenn sie nicht gewollt ist und das man für die Priorität freie Hand hat.
RunOnArrival gibts nicht mehr, kann aber per AutoRun nachgebaut werden
[DriveLettersMultiSlotCardReader] gibts nicht mehr, die werden jetzt wie jedes andere USB-Wechsellaufwerk behandelt. Eine Sonderbehandlung einschließlich der BaseFolder-Funktion kann aber leicht über den Geräte-Typ nachgebildet werden
Alle Abschnitte gelten nur für USB-Laufwerke, für andere Typen muß ein Bus-Typ konfiguriert werden.
Beispiele für die Umstellung
ALT (V3.x) Neu (ab V4.0)
----------------------------------------------------------------------------
USBDLM.INI auf dem Laufwerk [DriveLetters1]
FileExists=%drive%\usbdlm.ini
Letters=%drive%\usbdlm.ini
[MultiSlotCardReaders] [DriveLetters5]
BaseFolder=C:\CardReader DeviceType=MSCR
Letter1=C:\CardReader\%DevName%
[DriveLettersSize1] [DriveLetters10]
MinSizeMB=10000 MinVolumeSize=10GB
Letter1=X Letter1=X
[DriveLettersFirewire] [DriveLetters20]
Letter1=X BusType=Firewire
Letter1=X
[DriveLettersCDROM] [DriveLetters25]
Letter1=X DriveType=CDROM
Letter1=X
[DriveLettersU3AutoRun] [DriveLetters30]
Letter1=X DriveType=CDROM
DeviceType=U3
Letter1=X
;ein USB-Laufwerk:
[DriveLettersDeviceID1] [DriveLetters40]
DeviceID1=Corsair Flash Voyager DeviceID1=Corsair Flash Voyager
Letter1=X Letter1=X
;ein ATA-Laufwerk:
[DriveLettersDeviceID1] [DriveLetters45]
DeviceID1=IC35L120AVV207-0 DeviceID1=IC35L120AVV207-0
Letter1=X BusType=ATA
Letter1=X
[DriveLettersUsbPort1] [DriveLetters50]
PortName=3-1-1 PortName=3-1-1
Letter1=X Letter1=X
[Settings] [BalloonTips]
ShowBalloonTips Enabled
BalloonTipTimeout Timeout
ShowSizeInBalloons ShowSize
BalloonWaitForLastVolume WaitForLastVolume
[NoBallonsFor] [BalloonTipsExclude]
[Settings] [Settings]
AutoRunEnabled=1 AutoRunInf=1
EjectServer discontinued
History
V4.2.3 (14. September 2008)
Bugfix: Das Ausführen von [OnArrival] konnte seit V4.0 trotz Einstellung Force=1 durch Halten der Shift-Taste übergangen werden
Bugfix: Das Ausführen der autorun.inf Open-Zeile wurde seit V4.2 standardmäßig ohne Admin-Rechte gemacht (AutoRunInfRestricted war standardmäßig aktiviert)
Bugfix: [NoMediaNoLetterInclude] hat meist nicht funktioniert
V4.2.2 (17. August 2008)
Bugfix: [OnArrival], [OnRemoval] funktioniert wieder ohne Angabe eines Arbeitsverzeichnisses wenn das Laufwerk keinen Mount-Punkt hat
Bugfix: [OnRemoval] funktioniert wieder ohne Angabe eines Arbeitsverzeichnisses
Bugfix: [OnRemoval] wird beim Entfernen einer Karte aus einem Kartenleser ausgelöst
Bugfix: Neue BusTypes SD und MMC (Laptop-Kartenleser) funktionieren
Bugfix: Virtuelle Laufwerke der Vista "Volumen-Schattenkopie" bekommen keinen Laufwerksbuchstaben mehr
Bugfix: Verzögerung beim Herunterfahren von Windows beseitigt
V4.2.1 (19. April 2008)
Bugfix: Bei autorun.inf, [OnArrival] usw. ist das Stammverzeichnis wieder das aktuelle Verzeichnis
V4.2.0 (12. April 2008)
Bugfix: Probleme mit NTFS-Mountpunkten länger als 51 Zeichen behoben
Bugfix: AutoRun-Programme schafften es unter Vista nicht in den Vordergrund
Neu/Bugfix: Auch nicht verbundene Netz-Laufwerke werden berücksichtigt
Neu: NoMediaNoLetter funktioniert unter Windows 2000
Neu: Fast alle Einstellungen werden ohne Neustart des USBDLM-Dienstes wirksam
Neu: Wildcards bei vielen Konfigurations-Parametern möglich
Neu: Bestimmte Laufwerke können komplett ignoriert werden
Neu: Laufwerke und sonstige Geräte können aus "Hardware sicher entfernen" entfernt werden
Neu: Richtlinie "Für Geschwindigkeit optimieren" kann für USB-Laufwerke gesetzt werden
Neu: Beim AutoRun können USBDLM-Variablen dem ausgeführten Programmen als Umgebungsvariablen zur Verfügung gestellt werden
Neu: Beim AutoRun kann das Programm ohne Admin-Rechte ausgeführt werden (falls der Nutzer Admin ist), oder auch im Kontext "Local System", falls die Rechte des angemeldeten Nutzers nicht ausreichen
Neu: Ungenutzte NTFS-Mountpunkte können beim Start des Dienstes entsorgt werden
V4.1.0 (19. Oktober 2007)
Bugfix: Die letzten zwei Zeilen der USBDLM.INI wurden ignoriert (zwei oder mehr leere Zeilen am Ende haben geholfen...)
Bugfix: OnRemoval funktioniert auch beim Entnehmen einer Karte aus einem Kartenleser
Bugfix: Auch mit NoMediaNoLetter=0 hat sich USBDLM für einige Benachrichtigungen registriert, unter Vista64 wurde dadurch das "Vorbereiten zum sicheren Entfernen" verhindert
Bugfix: USBDLM-Dienst unter Vista nicht mehr als "interaktiv" gekennzeichnet -> keine Fehlermeldungen mehr im Syslog
Workaround: NoMediaNoLetter funktioniert unter Vista64
Neu: NoMediaNoLetter kann feiner abgestuft werden
Neu: NoMediaNoLetter kann für einzelne Geräte erzwungen werden per Abschnitt [NoMediaNoLetterInclude] (analog zu [NoMediaNoLetterExclude])
Neu: Laufwerksbuchstaben-Liste in Kurz-Notation, z.B. Letters=R,X,Y,Z
Neu: User=- als Kriterium für "kein Nutzter angemeldet"
V4.0.2 (26. August 2007)
Bugfix: Die in eine Datei umgeleiteten Ausgaben von ListUsbDrives hatten ein falsches Format für den Zeilenvorschub, das der Windows Editor nicht vernünftig anzeigen kann
Bugfix: AutoRun-Ereignisse für Laufwerke ohne Laufwerksbuchstaben funktionierten nur mit dem zusätzlichen Kriterium Letter=-
Bugfix: Unter Windows 2000 haben Partitionsnummern und Balloontips bei Festplatten mit mehreren Partitionen nicht funktioniert
V4.0.1 (20. Juli 2007)
Bugfix: "ExcludedLetters" hat meist nicht funktioniert
Bugfix: ListUsbDrives konnte ohne Admin-Rechte nicht alle Informationen anzeigen
V4.0.0 (15. Juli 2007)
Neu: Neues Format für die USBDLM.INI, damit keine festen Prioritäten, mehr Möglichkeiten
Neu: LW-Buchstaben abhängig von aktiven Nutzer, dessen Gruppe oder dessen Admin-Status
Neu: AutoRun beim Einlegen eines Mediums (auch CD/DVD)
Neu: AutoRun-Ereignisse abhängig von allen Kriterien anhand derer USBDLM Laufwerksbuchstaben vergibt
Neu: AutoRun beim "Vorbereiten zum sicheren Entferenen" und nach dem Entfernen eines Laufwerks
Neu: Balloontip-Texte in verschiedenen Sprachen integriert
Neu: AutoRun beim Klick auf den BalloonTip
Neu: Laufwerks-Ereignisse ins Windows System-Protokoll
V3.4.2 (9.5.2007)
Bugfix: mehrere (falsche) Buchstaben im Balloon-Tip angezeigt, wenn Hardwareerkennung unvollständig
Bugfix: Erkennung von U3-Laufwerken verbessert
V3.4.1 (1.5.2007)
Bugfix: V3.4.0 basiert auf altem Code - alle für V3.4.0 versprochenen Funktionen gehen jetzt wirkich...
Bugfix: open= in autorun.inf geht jetzt auch ohne Pfadangabe wenn die auszuführende Datei auf dem angeschlossenen Laufwerk liegt
V3.4.0 (18.4.2007)
Bugfix: Absturz bei mehr als 10 Laufwerken am selben Controller, z.B. bei virtuellen CD-ROMs
Bugfix: Windows Explorer hat in der Baumansicht Laufwerk u.U. ohne Namen angezeigt
Neu: LW-Buchstaben abhängig von der LW-Größe auch abh. von der Größe des Datenträgers
Neu: LW-Buchstaben abhängig vom Laufwerks-Namen ("Volume Label")
Neu: LW-Buchstaben abhängig von der Geräte-ID kann IDs aus externer Datei laden
V3.3.1 (20.3.2007)
Bugfix: Möglicher Absturz auf Rechnern mit HyperThreading oder meheren CPU-Kernen
Bufgix: Errorlevel bei der Installation mit -silentinstall war immernoch 'falschrum' - jetzt 0 bei Erfolg
Neu/Fix: das Entfernen von Laufwerksbuchstaben für NoMediaNoLetter wir leicht verzögert gemacht, um vereinzelte Probleme mit dem Windows Explorer zu vermeiden
Neu/Fix: Beim Zuordnen von Laufwerksbuchstaben für NoMediaNoLetter wird das verzögert an den Windows Explorer gemeldet, da er sonst im Verzeichnisbaum den Laufwerksnamen nicht anzeigen will
Neu/Fix: Bei Deinstallation und NoMediaNoLetter=1 werden Laufwerksbuchstaben von Cardreadern wiederhergestellt
V3.3.0 (08.02.2007)
Bugfix: Errorlevel bei der Installation waren 'falschrum' - jetzt 0 bei Erfolg
Neu: kein Problem mit AutoRun mehr unter Vista und Windows 2000
Neu: Installation, Deinstallation, Start und Stop fordern bei Bedarf Admin-Rechte an
Neu: AutoRun kann über einen Schlüssel abgesichert werden
Neu: Kein LW-Buchstabe für Laufwerke die keinen Buchstaben haben und TrueCrypt-Container sind
Neu: viel Feinschliff :-)
Neu: statt des guten alten HLP-Format die Hilfe jetzt als CHM, weil Vista HLP standardmäßig nicht unterstützt
V3.2.0 (11.12.2006)
Bugfix: DeleteMountpointOnRemoval funktionierte nicht seit V3.0
Neu: 'kein Buchstabe' kann konfiguriert werden, z.B. um bestimmte Laufwerke loszuwerden oder um zu verhindern, daß Nutzer darauf zugreifen
Neu: Laufwerksbuchstaben können abhängig von der Geräte-ID des Laufwerks konfiguriert werden
Neu: BallonTips können für bestimmte Laufwerke deaktiviert werden
Hinweis: Diese Version stand bis 6.1.2006 mit der falschen Versionsnummer 3.1.6.1beta zum Download.
V3.1.0 (6.11.2006)
Bugfix: Balloontips funktionierten nicht für den zweiten angemeldeten Nutzer bei 'schneller Benutzerumschaltung' unter XP und generell unter Vista
Bugfix: Die Autorun-Funktion hat Programm im Kontext 'Local System' statt im Kontext des aktiven Nutzers gestartet
Neu: Laufwerksbuchstaben für USB-Floppies
V3.0.3 (22.10.2006)
Bugfix: Mit NoMediaNoLetter=1 ist USBDLM V3.0.2 beim Start abgestürtzt...
Bugfix: Erkennen von Konflikten mit Netz-Laufwerken beim Start hat u.U. nicht funkiontiert
Neu: Multislot-CardReader mit nur zwei Slots werden als solche erkannt, wenn sie wenn sie zwei Slots haben und 'reader' im Geräte-Namen haben
Neu: IDE- und PCI-CardReader sollten erkannt werden
V3.0.2 (16.10.2006)
Bugfix: Mit NoMediaNoLetter=1 verloren USB-Floppies ihren Laufwerksbuchstaben, wenn sie ohne eingelegtes Medium angeschlossen wurden
V3.0.1 (7.10.2006)
Bei AutoRun und RunOnArrival wird das neue Laufwerk zum aktuellen Verzeichnis gemacht, so daß Programme oder Batch-Dateien dort gefunden werden
V3.0.0 (3.10.2006)
Anwenden der Einstellungen beim Start des Dienstes
Über Abschnitt [ExcludedLetters] können Buchstaben für die Nutzung durch USB-LWs ausgeschlossen werden
Lesen von weiteren [ExcludedLetters] aus einer externen USBDLM.INI, z.B. von einen Serverkann
Behandlung von U3-Autorun-Laufwerken
Ausführen der open= Zeile in der autorun.inf auf Wechseldatenträgern
Globales AutoRun beim Anschließen eines beliebigen USB- oder Firewire-Laufwerks
Balloon-Tip mit Informationen über die zugeordnenten Mount-Punkte
V2.4.4 (7.9.2006)
Anpassung: Ein USB-Gerät das zwei Laufwerke enthält, wird nicht mehr als Multislot-Cardreader eingestuft (erst ab drei Laufwerken)
V2.4.3 (28.8.2006)
Bugfix: Unter Windows 2000 gabs eine Fehlermeldung 'Datenträger einlegen' wenn ein USB-Laufwerk ohne eingelegtes Medium angeschlossen wurde
Neu/Fix: Dienst-Name geändert von 'USB Drive Letter Manager' in 'USBDLM'
V2.4.2 (16.6.2006)
Bugfix: bei V2.4.1 konnte der Dienst auf manchen Rechnern beim Systemstart nicht gestartet werden
Log-Datei zum Debuggen kann aktiviert werden
kann als 'Eject-Server' für das Kommandozeilen-Tool EjectMedia dienen
V2.4.1 (11.6.2006)
USB-Floppy-Laufwerke werden ignoriert
Problem mit doppelt angelegten Mount-Points für Multislot-Cardreader behoben
Tipp-Fehler im Dienst-Namen korrigiert ('USB drive letter mananger')
Errorlevel nach -install, -silentinstall usw. korrigiert
V2.4 (21.5.2006)
erkennt neue USB-Laufwerk auch dann, wenn sie keinen Mount-Punkt bekommen haben - damit funktioniert auch das Mounten in NTFS-Order vernünftig
auf Wunsch Löschen von als Mount-Punkt benutzten NTFS-Ordnern beim Entfernen des Laufwerks
Mounten in NTFS-Ordner anhand des Geräte- oder Laufwerks-Namens
Laufwerksbuchstaben für USB-CD/DVD-Laufwerke
V2.3 (5.5.2006)
erkennt Netz- und Subst-Laufwerke des angemeldeten Nutzers und remountet ggf. auf den nächsten wirklich freien Buchstaben
V2.2.2 (18.4.2006)
funktioniert auch mit Laufwerken die nach dem Anschließen mehr als 10 Sekunden brauchen bis der Laufwerksbuchstabe erscheint
V2.2.1 (2.4.2006)
funktioniert wieder unter Windows 2000 (V2.2 tat das nicht...)
V2.2 (29.3.2006)
funktioniert unter Windows Vista
Suche nach c't USB Agent standardmäßig deaktiviert
V2.1 (19.3.2006)
Vergabe der LW-Buchstaben abhängig vom USB-Port funktioniert auch mit USB-Laufwerken die als 'Lokale Datenträger' eingebunden werden
Ummounten von Multislot-Cardreadern auch auf Laufwerks-Buchstaben oder Mount-Points
V2.0 (7.3.2006)
Vergabe der LW-Buchstaben abhängig vom USB-Port
Ummounten von Multislot-Cardreadern in einen NTFS-Ordner
Statt Laufwerks-Buchstaben sind auch leere NTFS-Ordner als Mount-Points möglich (experimentell)
V1.1.1 (17.1.2006)
Fehler bei der Erkennung von USB und Firewire behoben der eine 'Access Violation' verursachte
V1.1 (15.1.2006)
Einige Timeouts verlängert
Erkennung von USB und Firewire funktioniert auch unter Windows 2000
V1.0 (10.1.2006)
Vergabe der LW-Buchstaben abhängig von der Datenträger-Größe möglich
Ausschluß-Liste für LW-Buchstaben, um eine USBDLM.INI auf dem angeschlossenen Datenträger
zu 'überstimmen'
Ausschluß-Liste für Datenträger-Bezeichnungen
Kein Ummounten, wenn auf dem Laufwerk eine usbagent.inf liegt und der c't USB Agent läuft
Nur noch für Nutzung im privaten und Bildungs-Bereich Freeware
V0.6 (15.12.2005)
Vorhandensein eines Mediums im Laufwerk wird nicht mehr an dessen Seriennummer festgemacht, da
sich gezeigt hat, daß Sticks ab Werk oft keine haben
V0.5 (24.10.2005)
Kümmert sich nur noch um Laufwerke, die Typ 'DRIVE_FIXED' oder 'DRIVE_REMOVABLE' sind und
wechselbare Medien haben oder Hotplug-Geräte sind. Letzterer Test funktioniert nur unter XP...
V0.4 (5.9.2005)
Kümmert sich auch um Laufwerke mit Typ 'DRIVE_FIXED' (bisher nur 'DRIVE_REMOVABLE')
V0.3 (25.8.2005)
Erste veröffentlichte Version
Neue Standard-Buchstaben für USB-Sticks und Festplatten
In den Abschnitten [DriveLetters] und [DriveLetters1] bis [DriveLetters99]werden neue Standard-Buchstaben für USB-Festplatten und Sticks festgelegt.
Beispiel:
[DriveLetters]
Letter1=U
Letter2=V
Letter3=W
Oder in Kurznotation:
[DriveLetters]
Letters=U,V,W
Da im Abschnitt keine Kriterien angegeben sind, kommen die Standard-Kriterien zum Zuge, das sind
BusType=USB
DriveType1=REMOVABLE
DriveType2=FIXED
Der Abschnitt ist also für USB-Wechseldatenträger und USB-Festplatten zutreffend.
Die Laufwerksbuchstaben können auch aus einer externen INI-Datei gelesen werden, z.B. auf dem angeschlossenen Laufwerk:
[DriveLetters]
Letters=%drive%\usbdlm.ini
Man kann auch beides kombinieren - die externe Datei hat Vorrang:
[DriveLetters]
Letters=%drive%\usbdlm.ini
Letter1=U
Letter2=V
In der externen INI-Datei ist nur ein einfacher Abschnitt [DriveLetters] ohne Kriterien zulässig, wie der im ersten Beispiel.
Soll ein Abschnitt nur zuständig sein, wenn die USBDLM.INI auf dem Laufwerk vorhanden ist, brauchts ein eintsprechendes Kriterium:
[DriveLetters10]
FileExists=%drive%\usbdlm.ini
Letters=%drive%\usbdlm.ini
Kein Medium, kein Buchstabe
Der typische 20 in 1 Cardreader verbrät für jeden Karten-Slot einen kostbaren Laufwerks-Buchstaben - ob man eine Karte dafür besitzt oder nicht. Und man weiß eh nie, welcher Buchstabe zu welchem Slot gehört. Also weg mit den Buchstaben und genau dann einen zuordnen, wenn ein Medium eingelegt wird:
[Settings]
NoMediaNoLetter=1
Um wirksam zu werden, muß das betreffende Gerät neu angeschlossen oder der USBDLM-Dienst neu gestartet werden.
Unter Windows 2000 funktioniert das leider nicht, weil das Sytem die notwendigen Benachrichtigungen nicht unterstützt.
Unterstützt werden nur Wechseldatenträger, aber keine Floppies oder CD-ROMs. Außerdem sind Laufwerke ausgeschlossen, die "iomega" im Namen haben, da mir diese Funktion für ZIP- und JAZ-Drives ungeeignet erscheint.
NoMediaNoLetter=0 -> kein Laufwerk
NoMediaNoLetter=1 -> nur Multislot-Cardreader
NoMediaNoLetter=2 -> auch Singleslot-Cardreader
NoMediaNoLetter=3 -> alle Wechseldatenträger
Singleslot-Cardreader lassen sich nicht sicher erkennen. USBDLM versucht es anhand einiger charakteristischer Zeichen im Gerätenamen, wie "flash", "card", "reader" und einigen anderen. Wenn ein Kartenleser nicht als solcher erkannt wird, entweder NoMediaNoLetter=3 setzten oder einen Abschnitt [NoMediaNoLetterInclude] nutzen, siehe unten.
Buchstaben kommen immer wieder
Tauchen die Buchstaben hartnäckig immer wieder auf, ist eine andere Software am Werk, die die Buchstaben bei passender Gelegenheit überprüft und ggf. zuordnet.
Bekannt dafür ist das U3 Launchpad auf U3-Sticks (die U3launch.exe auf dem Pseudo-CDROM).
Workaround: Keine Admin-Rechte für das U3-Launchpad - dann kann es keine Laufwerksbuchstaben ändern. Entweder als "Eingeschränkter Nutzer" arbeiten, oder das U3-Lauchpad ohne Admin-Rechte starten - das kann USBDLM erledigen:
[OnArrival]
DriveType=CDROM
FileExists=%drive%\u3launch.exe
open=%drive%\u3launch.exe
restricted=1
Die aktuelle Version des U3-Launchpads 1.6 funktioniert leider nicht ohne Admin-Rechte...
Geräte von dieser Funktion ausschließen
Mit manchen Geräten gibt es Probleme. USBDLM wird dann mit Nachrichten geflutet oder es nimmt einem Gerät den Buchstaben weg, weil es zunächst wie ohne eingelegten Datenträger erscheint.
Beispiel zum Ausschließen des Apple iPod:
[NoMediaNoLetterExclude]
DeviceID1=ven_apple&prod_ipod
Das ist bereits fest eingebaut, weil der iPod ein erprobtes Problem-Gerät ist...
Außerdem sind Geräte ausgeschlossen, die "Iomega", "ZIP" oder "JAZ" enthalten, da für solche floppy-artigen Laufwerke NoMediaNoLetter nicht angemessen wäre...
Funktion für bestimmte Geräte erzwingen
Beispiel für ein altes Iomega IDE ZIP-Drive und ein ATAPI-CDROM:
[NoMediaNoLetterInclude]
DeviceID1=IDE\DISKIOMEGA_ZIP_100
DeviceID2=IDE\CDROMHL-DT-ST_DVDRRW_GWA-4161B
Beim Einlegen eines Mediums ordent USBDLM dann den ersten freien Buchstaben zu. Soll es ein bestimmter sein, muß man ihn entsprechend konfigurieren:
[DriveLetters10]
DeviceID=IDE\DISKIOMEGA_ZIP_100
Letter=Z
[DriveLetters12]
DeviceID=IDE\CDROMHL-DT-ST_DVDRRW_GWA-4161B
Letter=L
LW-Buchstaben abhängig von bestimmten Kriterien
Ab V4.0 kann man die Buchstaben abhängig von einer Vielzahl an Kriterien vergeben.
Man braucht dann mehrere Abschitte [DriveLettersX], in denen jeweils andere Kriteriten definiert sind.
Die Abschnitte werden von Nummer 1 an aufwärts bis 99 eingelesen. Zum Schluß noch der Abschnitt [DriveLetters] (ohne Nummer).
Der erste Abschnitt mit passenden Kriterien wird verwendet (und nur dieser). Das bedeutet, daß man immer vom speziellen Fall aufwärts zu den allgemeineren konfiguriert. Man benutzt am besten Abschnitts-Nummern in 10er-Schritten - dann kann man problemlos mal einen einfügen ohne neu numerieren zu müssen.
Standard-Kriterien sind:
BusType=USB
und
DriveType1=REMOVABLE
DriveType2=FIXED
Das heißt, wenn keine Kriterien angegeben werden, ist ein Abschnitt für alle USB-Sticks und USB-Festplatten zutreffend, was dem Verhalten von USBDLM bis V3.x entspricht. Abweichend von V3.x sind Multslot-Cardreader nicht mehr ausgenommen.
Gibt man einen anderen BusType bzw. DriveType an, wird die jeweile Vorgabe natürlich außer Kraft gesetzt.
Ein paar einfache Beipiele:
1. FireWire-Laufwerke auf F, USB-Laufwerke ab 10GB auf U, alle anderen USB-Sticks- und Platten auf W oder Z:
;FireWire auf F:
[DriveLetters10]
BusType=FireWire
Letter1=F
;USB >10GB auf U:
[DriveLetters20]
MinDiskSize=10GB
Letter1=U
;alle übrigen USB-Laufwerke auf W: oder Z:
[DriveLetters]
Letter1=W
Letter2=Z
2. USB-Multislot-Cardreader auf L, M, N, O; alle anderen USB-Sticks- und Platten auf W oder Z:
;MultiSlotCardReader auf L:, M:, N: und O:
[DriveLetters10]
DeviceType=MSCR
Letters=L,M,N,O
;alle übrigen USB-Laufwerke auf W: oder Z:
[DriveLetters]
Letters=W,Z
Es können auch mehrere Kriterien gleichen Typs - dann numeriert - angegeben werden. Davon muß dann eines passen.
Auch mehrere Kriterien verschiedenen Typs sind möglich - dann muß ein Eintrag jeden Typs passen.
Bsp: USB- und FireWire-Laufwerke ab 10GB auf F:
[DriveLetters10]
BusType1=USB
BusType2=FireWire
MinDiskSize=10GB
Letter1=F
Bsp: CF-Karten im PCMCIA-Slot auf P:
[DriveLetters10]
BusType=ATA
DeviceID=PCI\VEN_1217&DEV_7135
Letter1=P
Die DeviceID zeigt ListUsbDrives (die "Ctrl2 Dev ID").
Die verschiednen Kriterien sind in den folgenden Abschnitten beschrieben.
Buchstaben abhängig von der Laufwerks-Größe
Die Laufwerks-Größe kann sowohl auf den gesamten Datenträger (die Disk) als auch auf das einzelne Laufwerk (das Volume) bezogen werden.
Die Größe wird sinnvollerweise mit Einheit wie KB, MB oder GB versehen, sonst sind Bytes gemeint!
Die Einheiten verstehen sich 10 hoch n Bytes - ein MB sind also 1.000.000 Bytes
Eine 40GB-Platte hat typischerweise ein Größe von knapp über 40GB, eine einzelne Partition darauf aber meist nur knapp unter 40GB!
Wenn die Grenze z.B. bei 40GB liegen soll, also besser etwas weniger angeben, z.B. 39GB.
Nur ganze Zahlen sind zulässig.
Es kann jeweils eine maximale oder eine minimale Größe angegeben werden, verfügbare Einträge sind also:
MinVolumeSize
MinDiskSize
MaxVolumeSize
MaxDiskSize
Beispiel:
;USB-Datenträger ab einschl. 40GB auf U:
[DriveLetters10]
MinDiskSize=39GB
Letter1=U
;USB-Partition ab einschl. 10GB auf X:
[DriveLetters20]
MinVolumeSize=9GB
Letter1=X
LW-Buchstaben abhängig von der Geräte-ID
Das Vorgeben von Buchstaben abhängig von der Geräte-ID (im folgenden Device-ID genannt) ist etwas unhandlich zu konfigurieren, z.B. so:
[DriveLetters10]
DeviceID1=USB\VID_067B&PID_2517
DeviceID2=USB\VID_1234&PID_5678
Letter1=U
[DriveLetters20]
DeviceID1=USB\VID_9876&PID_5432
Letter1=X
Oder etwas weniger kryptisch mit dem Geräte-Namen:
[DriveLetters10]
DeviceID1=Corsair Flash Voyager
Letter1=V
Die Device-ID muß man sich erstmal ermitteln. Dazu das betreffende Laufwerk anschließen und ListUsbDrives_To_Notepad starten. Als Device-ID kann die 'Drive DevID', 'Ctrl DevID' oder der 'Friendly Name' verwendet werden, bei ATA-Laufwerken geht zusätzlich die 'Ctrl2 DevID'.
Der String-Vergleich erfolgt unabhängig von Groß-/Kleinschreibung. Ein beliebiger Teil des Strings kann eine Übereinstimmung ergeben. Es müssen mindestens 8 Zeichen konfiguriert werden.
Ab V4.2 können alternativ können Wildcards benutzt werden.
"Drive DevID" ist die Geräte-ID des Laufwerks, "Ctrl DevID" die des im Gerätebaum eine Ebene höher liegenden 'Controllers' (bei USB-Laufwerken z.B. die USB-Bridge, bei ATA-Laufwerken ein logischer IDE-Kanal), und die "Ctrl2 DevID" noch eine Ebene darüber (bei USB-Laufwerken ein USB-Hub oder Root-Hub, bei ATA-Lauferken der IDE-Controller).
MountPoint = U:\
Volume Label = Voyager_2GB
Size = 2.0 GB (NTFS)
Volume Name = \\?\Volume{d9e95680-6d80-11db-afb8-000102b35cc3}\
Drive DevID = USBSTOR\DISK&VEN_CORSAIR&PROD_FLASH_VOYAGER&REV_1.00\..
Ctrl DevID = USB\VID_067B&PID_2517\6&12115AD4&2&1
Ctrl2 DevID = USB\VID_067B&PID_2515\5&1BBE8508&0&1
Volume DevName = \Device\Harddisk4\DP(1)0-0+25
Disk DevName = \Device\000000ae
Device Number = 4
Friendly Name = Corsair Flash Voyager
USB Version = 2.0 (high speed)
USB Serial = ---
USB Port Name = 5-1-1
Alle numerierten Einträge sind wie immer von 1 bis 9 möglich. Für eine große Zahl Device-IDs kann auf eine externe Datei verwiesen werden - das spart die lästige Numerierung und läßt sich etwas schneller einlesen:
[DriveLetters10]
DeviceIDs=C:\USBDLM_DeviceIDs.txt
Letter1=V
In der Text-Datei steht dann je Zeile eine Geräte-ID, ohne Einleitung, ohne Nummer.
Leerzeilen sind erlaubt, Zeilen die mit einem Semikolon beginnen, sind Kommentare.
Beispiel:
;Stick vom Admin (der Dativ ist dem Genitiv sein Tod)
USB\VID_067B&PID_2517
USB\VID_1234&PID_56789
;Sticks vom Chef
USB\VID_9876&PID_5432
USB\VID_4567&PID_4321
;Sticks vom Fußfolk
USB\VID_3456&PID_3543
USB\VID_3456&PID_1432
Nutzung der USB-Seriennummer
Im oben genannten Beispiel ist die Device-ID 'USB\VID_067B&PID_2517\6&12115AD4&2&1'. In den letzten Teil (hinter dem letzten Schrägstrich) schreibt Windows die USB-Seriennummer. Dummerweise ist der hier verwendete USB-Stick 'Corsair Flash Voyager 2GB' (altes Modell) einer bei dem die USB-Seriennummer eingespart wurde. Deshalb wurde dieser Teil der Device-ID von Windows generiert, was am mehrfachen Vorkommen des & Zeichens zu erkennen ist.
Bei Geräten, die eine Seriennummer haben, kann man den ganzen String verwenden oder einfach nur die Seriennummer:
[DriveLetters10]
DeviceID1=1234567890ABCD
Letter1=V
Wenn man dann noch Letter1=-- für alle anderen USB-Laufwerke ( [DriveLetters] ) konfiguriert, hat man den einzigen funktionierenden USB-Stick und ist plötzlich ganz wichtig. USB-Floppies und CD-ROMs sollten dann auch gesperrt werden:
[DriveLetters]
DriveType1=floppy
DriveType2=cdrom
DriveType3=removable
DriveType4=fixed
Letter=--
Oder kurz:
[DriveLetters]
DriveType=any
Letter=--
Bei billigen Kartenlesern und manchen USB-Festplatten sind die Seriennummern aller Exemplare identsch - ein Verstoß gegen die USB-Massenspeicher-Spezifikation (oder eine sehr eigenwillige Interpretation), siehe auch hier:
http://www.uwe-sieber.de/usbtrouble.html
LW-Buchstaben abhängig vom USB-Port
USB-Portnamen zu ermitteln ist recht aufwendig und kann bei einer großen Anzahl von USB-Ports durchaus ein bis zwei Sekunden dauern. Also nur benutzen, wenn es wirklich sein muß...
Das Ganze ist etwas unhandlich zu konfigurieren, z.B. so:
[DriveLetters10]
PortName=3-2
Letter1=U
Letter2=R
Letter3=
;für mehrere Ports, z.B. alle an einem Hub der an 5-1 hängt
[DriveLetters20]
PortName1=5-1-1
PortName2=5-1-2
PortName3=5-1-3
PortName4=5-1-4
Letter1=X
Letter2=
Letter3=
Oder kurz unter Nutzung von Wildcards beim PortName:
[DriveLetters20]
PortName1=5-1-?
Letter1=X
Letter2=
Letter3=
Den Portnamen muß man sich erstmal ermitteln: Dazu an die betreffenden Ports ein USB-Laufwerk anschließen und ListUsbDrives starten, wo man dann die Port-Namen ablesen kann. ListUsbDrives gibt für jedes USB-Laufwerk sowas aus:
MountPoint = U:\
VolumeLabel = VOYAGER1GB
Size = 991 MB
MultiReader = no
Drive Type = removable drive
DOS Device = \Device\Harddisk8\DP(1)0-0+17
Device Name = Corsair Flash Voyager
USB Version = 2.0 (high speed)
Serial = ---
USB Port = 3-2
Für den Port, an dem dieses Laufwerk angeschlossen ist, wäre die Einstellung für 'PortName' 3-2.
Wenn noch ein USB-Hub dazwischen ist, wäre ein typischer Port-Name 3-1-1, bei zwei Hubs 3-1-1-1 usw.
7-Port-Hubs sind manchmal zwei hintereinander geschaltete 4-Port-Hubs - dann nicht wundern, wenn bei 4 Ports ein Glied zuviel in der Kennung steht.
Bei USB 2.0 hat jeder physische USB-Port zwei Inkarnationen - eine für USB 1.1 und eine für USB 2.0.
Mit Microsofts UVCView kann man sich ein Bild machen.
Es gibt keine sichere Möglichkeit zu bestimmen, welche USB1- mit welcher USB2-Inkarnation den selben physichen Port teilt. Um für USB1 und USB2-Laufwerke an einem Port einen festen Laufwerks-Buchstaben zu erhalten, muß man beide Port-Namen ermitteln, indem man ListUsbDrives einmal mit angeschlossenem USB1- und einmal mit USB2-Laufwerk ausführt.
Den zweiten Port-Namen kann man einfach - wie oben gezeigt - als weiteren 'PortNameX' eintragen.
Aber wer hat schon USB1-Laufwerke...
Unter Windows 2000 sind insbesondere USB-Controller auf PCI oder PCMCIA-Karten gelegentlich 'abweichend' ins System eingebunden. ListUsbDrives und USBDLM können hier die Portnamen nicht ermitteln.
Buchstaben abhängig vom Laufwerks-Namen
Der Laufwerks-Name (auch "Datenträger-Bezeichnung", "Volume Label") ist das, was man im Windows Explorer bei Rechts-Klick auf ein Laufwerk -> Eigenschaften im erscheinenden Dialog eingeben kann.
Das was der Windows Explorer in Laufwerksliste als Namen anzeigt kann sowohl die Datenträger-Bezeichnung als auch eine Einstellung aus der Registry sein. Das was man beim Einfach-Klick auf ein Laufwerk als Name eingeben kann ist nicht das Volume-Label sondern nur ein Anzeige-Name der in der Registry hinterlegt wird.
Beispiel:
[DriveLetters10]
VolumeLabel1=Montag
VolumeLabel2=Mittwoch
VolumeLabel3=Freitag
Letter1=U
[DriveLetters20]
VolumeLabel1=Dienstag
VolumeLabel2=Donnerstag
VolumeLabel3=Samstag
Letter1=X
Laufwerke die Montag, Mittwoch oder Freitag heißen, landen so auf U, Dienstag, Donnerstag, Samstag auf X.
Wildcards können benutzt werden:
[DriveLetters30]
VolumeLabel1=Backup?
Letter1=X
Würde z.B. für Backup1, Backup2 usw. passen.
Laufwerks-Buchstaben abhängig vom Laufwerks-Typ
Folgende für USBDLM relevanten Laufwerks-Typen (DriveType) sind definiert:
FLOPPY Diskettenlaufwerke
REMOVABLE sonstige Wechseldatenträger, z.B. Kartenleser, aber auch die meisten USB-Sticks
FIXED Festplatten
CDROM CD/DVD-Laufwerke
UNKNOWN unbekannt, manche Kartenleser in Laptops
RAMDISK RAM-Disk (viele RAM-Disks erscheinen als FIXED)
ALL / ANY Beliebiger Typ ( Vorsicht! )
Beispiel für USB-CD-ROM auf R:
[DriveLetters10]
DriveType=CDROM
Letter1=R
Wenn kein DriveType angegeben ist, gilt für einen Abschnitt die Vorgabe REMOVABLE oder FIXED, also Sticks, Cardreader, Festplatten und sonstige USB-Wechsellaufwerke wie USB-ZIP, USB-JAZ, USB-MO...
Sollen alle Laufwerks-Typen zutreffend sein, kann kurz "ALL" konfiguriert werden. Um z.B. für alle Nicht-Admins für alle USB-Laufwerke den Buchstaben wegzunehmen konfiguriert man:
[DriveLetters10]
UserGroup=Administratoren
Letter1=X
Letter2=Y
Letter3=Z
;keine USB-Laufwerke für alle anderen
[DriveLetters90]
DriveType=ALL
Letter1=--
Niemals sowas konfigurieren:
;all others
[DriveLetters90]
BusType=ALL
DriveType=ALL
Letter1=-
Das würde die Buchstaben aller Laufwerke entfernen, ob USB oder nicht ist egal dank BusType=ALL.
Siehe auch Buchstaben abhängig vom aktiven Nutzer.
Laufwerks-Buchstaben abhängig vom Geräte-Typ
Der Geräte-Typ ist etwas USBDLM-spezifisches, um spezielle Geräte gesondert behandeln zu können.
Definiert sind:
MSCR -> Multislot-Cardreader
U3 -> U3-Stick oder eine Festplatte mit virtuellem CDROM, z.B. für Verschlüsselungs-Software
Floppy -> Disketten-Laufwerk
CardReader -> Laufwerk mit 'Reader' oder anderen Zeichenketten im Namen die darauf hinweisen...
FlashCardReader -> Laufwerke mit 'Card' oder 'Flash' im Gerätenamen
TrueCrypt -> Laufwerk, das ein TrueCrypt-Container ist (oder Container einer anderen Verschlüsselungs-Software)
ListUsbDrives zeigt den oder die zutreffenden Geräte-Typen an.
Beispiel für Multislot-Cardreader auf L, M, N, O
[DriveLetters10]
DeviceType=MSCR
Letters=L,M,N,O
Beispiel für Multislot-Cardreader in ein NTFS-Verzeichnis und Nutzung des Geräte-Names (entspricht der Einstellung "BaseFolder" von USBDLM bis V3.x)
[DriveLetters10]
DeviceType=MSCR
Letter1=C:\CardReader\%DevName%
Unter C:\CardReader (der Ordner muß vorhanden sein) werden dann Ordner anhand der Gerätenamen der Slots angelegt, z.B. 'USB2.0 CF_MD', 'USB2.0 SD_MMC' usw., vorrausgesetzt, der Reader hat für seine Slot 'sprechende' Gerätenamen wie die eben genannten. Bei Ramsch-Readern heißen schon mal alle Slots gleich, z.B. 'USB USB', 'Generic USB' oder 'General Flash Disk' - dann hängt USBDLM notgedrungen Ziffern an, wenn es der letzte konfigurierte Mount-Punkt ist, sonst wird der nächste probiert.
USBDLM erkennt einen Multislot-Cardreader als solchen, wenn er drei oder mehr Slots hat. Außderdem werden USB-Reader mit zwei Slots als Multislot-Cardreader erkannt, wenn sie 'reader' oder 'card' und 'flash' im Gerätenamen haben.
Nicht-USB-Cardreader, wie sie oft in neueren Laptops anzutreffen sind, werden standardmäßig nicht behandelt. Das läßt sich aber über die Geräte-ID plus Bus-Typ erzwingen.
Beispiel zum Verstecken von Laufwerken, die als TrueCrypt-Container genutzt werden:
[DriveLetters10]
DeviceType1=TrueCrypt
Letter1=-
Die Erkennung von TrueCrypt-Volumes funktioniert nur solange TrueCrypt das Volume noch nicht gemountet hat, da TrueCrypt sich exclusiven Zugriff gönnt und USBDLM das Volume dann nicht mehr testen kann.
Beispiel zum Verstecken von U3-AutoRun-CD-ROMs:
[DriveLetters10]
DriveType=CDROM
DeviceType=U3
Letter1=-
U3 ist ein Standard für USB-Sticks, der es erlaubt, auf einem USB-Stick alle Einstellungen, Programme und Daten zu speichern, so daß ein Anwender auf Fremd-Rechnern arbeiten kann, ohne auf diesem Spuren davon zu hinterlassen. Dazu soll beim Anschließen des Stick automatisch das 'U3-Launchpad' starten - ein Startmenü, das sich im Systray einnistet. Da Windows XP die Zeile open= in der autorun.inf aber nur auf CD-ROM-Laufwerken standardmäßig ausführt, hat man U3-Sticks kurzerhand ein zusätzliches virtuelles CD-ROM-Laufwerk mit einer autorun.inf und dem U3-Startprogramm verpaßt. Das ist das oben genannte 'U3-Autorun-Laufwerk'. Tolle Lösung, die gerechterweise unter Vista nicht mehr ohne Rückfrage funktioniert.
Will man davon nix wissen, konfiguriert man einfach 'kein Laufwerksbuchstabe' als Mount-Punkt, wie oben gezeigt. Dann geht dafür kein Autorun mehr und es wird kein Laufwerksbuchstabe verschwendet.
USBDLM sieht alles als U3 was ein CDROM und ein normales Laufwerk auf einem USB-Gerät vereint. So findet sich ein virtuelles CDROM auch auf Laufwerken mit Verschlüsselungs-Funktion oder auf Werbe-Sticks.
Will man das CD-ROM von U3-Sticks loswerden, aber das einer Festplatte behalten, muß man dieses virtuelle CD-ROM in einem Abschnitt mit niedrigerer Nummer abfangen:
[DriveLetters10]
DeviceID=DeviceID des CDROM-Laufwerks
DriveType=CDROM
DeviceType=U3
Letter1=R
Um einen U3-Stick in einen normalen zu verwandeln, bietet U3 übrigens ein Uninstall-Tool an:
http://u3.com/uninstall
Damit kann man auch seine eigene ISO-Datei zum U3-Autorun-Laufwerk machen. Ein grandioses Einfallstor für Schadsoftware auf zum zufällig finden hinterlassenen USB-Sticks...
LW-Buchstaben abhängig vom Bus-Typ
Mit Bus-Typ ist die Anschluß-Art des Laufwerks gemeint, wie USB, FireWire, SCSI usw.
Wenn kein BusType konfiguriert ist, gilt der Standard BusType=USB, Abschnitte ohne BusType sind also nur für USB-Laufwerke wirksam.
ListUsbDrives zeigt den BusType aller Laufwerke an, wenn es mit Parameter -a (wie alle) gestartet wird. Das macht die ListUsbDrives_To_Notepad.cmd.
Mögliche BusTypes sind:
USB
FireWire
SCSI
ATAPI
ATA
SSA
Fibre
RAID
iSCSI
SATA (ab 2003 Server, XP-64 und Vista)
SAS (ab 2003 Server, XP-64 und Vista)
SD (manche interne Laptop SD-Cardreader)
MMC (manche interne Laptop MMC-Cardreader)
Unknown (manche interne Laptop-Cardreader, virtuelle Laufwerke, Standard-Floppys)
ANY oder ALL (jeder BusType - Vorsicht, USBDLM könnte IDE oder SATA Lauferke remounten!)
SATA-Platten haben bis einschließlich XP nie den BusType=SATA, der war unter XP noch nicht definiert. Dort erscheinen SATA-Platten entweder als ATA oder SCSI.
Bus-Typen bitte mit großer Vorsicht konfigurieren. Wer Unsinn konfiguriert bekommt ihn!
Besser immer zusätzlich eine DeviceID konfigurieren - die ist eindeutig.
Beispiel: USB- und FireWire-Platten größer 100GB auf X:
[DriveLetters10]
BusType1=USB
BusType2=FireWire
MinDiskSize=100GB
Letter1=X
Beispiel für ATA-Platte mit DeviceID 'IC35L120AVV207-0' auf X:
[DriveLetters20]
BusType=ATA
DeviceID1=IC35L120AVV207-0
Letter1=X
Beispiel für internen Laptop-Cardreader:
[DriveLetters30]
BusType=SCSI
DeviceID1=SCSI\DISK&VEN_O2MICRO&PROD_SD
Letter1=X
Beispiel für virtuelle CD-Laufwerke, die von Elby CloneDrive angelegt werden auf V, W, X, Y:
[DriveLetters10]
BusType=SCSI
DeviceID=ELBY CLONEDRIVE
Letters=V-Y
Buchstaben abhängig von der Partitionsnummer
Laufwerke auf Festplatten haben Partitionsnummern - ListUsbDrive zeigt sie.
Beispiel zum Verstecken von Partition 2 auf einer bestimmten Festplatte:
[DriveLetters10]
DeviceID=USB\VID_04B4&PID_6830\1234567890AB
PartitionNumber=2
Letter1=-
Nicht Letter=-- konfigurieren, da das die gesamte Festplatte abmeldet!
LW-Buchstaben abhängig vom Vorhandensein einer Datei
Beispiel: Laufwerksbuchstabe A: wenn auf dem angeschlossenen Laufwerk die Datei \drive_a.id existiert
[DriveLetters10]
FileExists=%Drive%\drive_a.id
Letter1=A
So funktioniert das nur für USB-Laufwerke, wegen des Standardwertes BusType=USB.
Soll das auch für andere als USB-Laufwerke funktionieren, muß man nachhelfen:
[DriveLetters10]
BusType1=USB
BusType2=FireWire
BusType3=SCSI
FileExists=%Drive%\drive_a.id
Letter1=A
Ab V4.2 können für die Datei Wildcards verwendet werden. Die Auswertung erfolgt dabei durch Windows - die Wildcards arbeiten somit abweichend von den USBDLM-internen Wildcards.
Es wird nur genau das angegebene Verzeichnis durchsucht, keine Unterordner!
Beispiel zum Starten eines Bildbetrachters beim Auffinden mindestens einer JPG-Datei oder des Ordners "DCIM", wie er von allen Digitalkameras angelegt wird und "VideoPlayer" bei AVI und MPG:
[OnArrival10]
FileExists1=%Drive%\*.jpg
FileExists2=%Drive%\DCIM
open=C:\Programme\Bildbetrachter\Bildbetrachter.exe %Root%
[OnArrival20]
FileExists1=%Drive%\*.avi
FileExists2=%Drive%\*.mpg
FileExists3=%Drive%\*.mpeg
open=C:\Programme\VideoPlayer\VideoPlayer.exe %Root%
LW-Buchstaben abhängig vom aktiven Nutzer
Der aktive Nutzer kann über seinen Nutzernamen und/oder seine Nutzer-Gruppe angegeben werden.
Für Gruppen die auf einem Server definiert sind, kann USBDLM als lokaler Dienst die Gruppenzugehörigkeit nicht ermilleln.
Deshalb startet USBDLM sich selbst nochmal im Kontext des angemeldeten Nutzers, liest die Gruppenzugehörigkeiten aus und meldet sie an den USBDLM-Dienst.
Das passiert unmittelbar nach der Logon-Nachricht - da hat kein Nutzter die Chance in die Kommunikation zwischen
USBDLM-Dienst und USBDLM-Nutzer-Instanz einzugreifen.
Unter Windows 2000 ist das etwas kritisch - hier muß auf den Windows-Explorer gewartet werden, bevor USBDLM
sich im Kontext des Nutzers starten kann. Hier wäre es denkbar, daß der (sehr fortgeschrittene) Nutzer die Daten fälscht.
Damit USBDLM diesen Aufwand treibt:
[Settings]
NetUserGroups=1
Beispiel für Nutzer-Namen:
[DriveLetters10]
UserName1=Vater
UserName2=Mutter
Letter1=X
Letter2=Y
;keine USB-Laufwerke für die Kids
[DriveLetters20]
UserName1=KleinKind
UserName2=GrossKind
DeviceType=ANY
Letter1=-
DeviceType=ANY ist nötig, damit auch USB-Floppy- und USB-CDROM-Laufwerke keinen Buchstaben bekommen.
Beispiel für Gruppen-Namen:
[DriveLetters10]
UserGroup=Administratoren
Letter1=X
Letter2=Y
;keine USB-Laufwerke für alle anderen
[DriveLetters20]
DeviceType=ANY
Letter1=-
Oder umgekehrt:
;keine USB-Laufwerke für Entrechtete
[DriveLetters10]
UserGroup1=Benutzer
UserGroup2=Gäste
DeviceType=ANY
Letter1=-
;alle anderen haben's gut
[DriveLetters20]
Letter1=X
Letter2=Y
Oder über "Admin oder nicht":
[DriveLetters10]
UserIsAdmin=1
Letter1=X
Letter2=Y
;keine USB-Laufwerke fürs Fußvolk
[DriveLetters20]
UserIsAdmin=0
DeviceType=ANY
Letter1=-
Damit ein bestimmter Stick auch bei einem Rechtlosen funktioniert, kann man noch einen Abschnitt mit der Geräte-ID des Sticks einfügen, siehe Buchstaben abhängig von der Geräte-ID.
;der geht immer, weil Abschnitt Nr. 15 vor Nr. 20 ausgewertet wird
[DriveLetters15]
DeviceID=USB\VID_067B&PID_2517
Letter1=X
Letter2=Y
Wenn kein Nutzer aktiv ist, sind Nutzername und Gruppe leer, es wird also kein Abschnitt benutzt in dem UserGroup oder UserName definiert sind. UserIsAdmin ist 0 wenn kein Nutzer angemeldet ist.
Um einen Abschnitt bei "kein Nutzer angemeldet" wirksam zu machen, kann UserName=- oder UserGroup=- konfiguriert werden.
Prioritäten
Bis Version 3.x waren die Prioritäten der Konfiguration fest verdrahtet. Mit Version 4 hat man völlig freie Hand.
Es wird immer [DriveLetters1] bis [DriveLetters99] und zuletzt noch [DriveLetters] ausgewertet. Der erste Abschnitt bei dem die Kriterien zum Laufwerk passen (und nur dieser) wird benutzt. Also immer vom speziellen Fall zum allgemeinen hin aufwärts konfigurieren.
Wenn alle Abschnitte [DriveLettersX] keine Neuzuordnung des Laufwerks-Buchstaben ergeben haben, wird noch gepüft, ob der vergebene Laufwerksbuchstabe vom derzeit aktiven Nutzer schon als Netz- oder Subst-Laufwerk verwendet wird. Dann ordnet USBDLM den nächsten wirklich freien Buchstaben zu.
Zuletzt wird noch geprüft, ob das neue Laufwerk überhaupt einen Mount-Punkt bekommen hat. Falls nicht, wird es dem ersten freien Buchstaben zugeordnet. Natürlich nur wenn das Laufwerk nicht auf "kein Buchstabe" konfiguriert wurde...
AutoRun
Windows AutoRun
Das Windows-AutoRun ist nicht jedermanns Sache: Dumme Fragen, sinnfreies Herumsuchen, Tendenz zu Eigenleben, Vergesslichkeit und Nichtfunktionieren...
Also am besten abschalten und USBDLM überlassen. Abschalten geht am besten mit meinem Tool AutoRunSettings.
Mit Microsoft TweakUI kann man es nicht für Festplatten ausschalten und es aktiviert nebenbei AutoRun für Netz-Laufwerke...
USBDLMs AutoRun-Funktionen
USBDLM bietet zwei Mechanismen zum automatischen Starten von Programmen beim Anschließen eines Laufwerks und beim Einlegen eines Mediums (Karte, Disk, CD/DVD). Das sind zum einen das Auführen der Zeile open= in einer autorun.inf auf dem jeweiligen Laufwerk und zum anderen AutoRun-Ereignisse, die in der USBDLM.INI konfiguriert werden.
Die jeweilige Kommando-Zeile wird standardmäßig im Kontext des angemeldeten Nutzers ausgeführt. Wenn kein Nutzer angemeldet ist, wird das Kommando nicht ausgeführt.
Das Ganze funktioniert auch, wenn das Laufwerk in einen NTFS-Ordner gemountet wurde.
Durch Drücken der Umschalt-Taste ("Shift") wird das Starten übergangen.
USBDLM unterstützt nur das Starten von ausführbaren Dateien (EXE, COM, BAT, CMD, LNK usw.), Dokumente allein werden nicht unterstützt - meist geht's, aber ohne Garantie. Also besser immer ein Programm angeben.
open=test.txt
könnte z.B. nicht funktionieren. Also besser so:
open=notepad test.txt
Erstmals konfigurierte Autorun-Ereignisse beim Einlegen und Entnehmen eines Mediums aus einem Kartenleser funtionieren u.U. erst nach einem erneuten Anschließen des Gerätes oder nach einem Neustart des USBDLM-Dienstes.
Die USBDLM-Variablen können dem ausgeführten Programm als Umgebungsvariablen zur Verfügung gestellt werden:
[Settings]
UsbdlmVariablesToOpenEnvironment=1
Beide unten beschriebenen Mechanismen können für beim Nutzer-Login vorhandene Laufwerke ausgeführt werden, als ob sie gerade angeschlossen wurden.
[Settings]
AutoRunOnLogon=1
1. autorun.inf auf dem angeschlossenen Laufwerk
Die autorun.inf ist ein Windows-Mechanismus. Unter anderem kann über eine Zeile open= Windows beim Anschließen eines Laufwerks oder Einlegen eines Mediums (CD, DVD, Flash-Karte) ein beliebiges Programm ausführen. Mit jeder Windows-Verison wurde das weiter eingeschränkt, XP macht es nur noch auf CD/DVD-Laufwerken ohne Nachfrage, was dann zu so tollen Lösungen wie U3-Sticks und USB-Geräten mit Selfinstallern geführt hat, die ihren Autostart über ein virtuelles CD-ROM bewerkstelligen.
Gerechterweise geht unter Vista auch das nicht mehr ohne Nachfrage.
USBDLM kann die Zeile open= in einer autorun.inf auf Wechseldatenträgern, Festplatten, CD-ROMs und Floppies ausführen, bei Wechseldatenträgern auch beim Einlegen einer Karte, sonst nur beim Anschließen eines Laufwerks.
Bsp: Nur für Wechseldatenträger:
[Settings]
AutoRunInf=1
Werte für andere Typen, bei Bedarf addieren:
Wechseldatenträger: 1
Festplatten: 2
CDROMs: 4
Floppies: 8
Unbekannt: 16
Bsp: Nur für Wechseldatenträger, Festplatten und CD-ROMs:
[Settings]
AutoRunInf=7
Floppies unterstützen keine 'Benachrichtigung beim Einlegen' (insert notification) - daher kann das bei Floppies nur funktionieren, wenn ein externes Laufwerk mit eingelegtem Medium angeschlossen wird.
Beispiel zum Öffenen eines maximierten Explorer-Fensters über eine autorun.inf auf dem angeschlossenen Laufwerk bzw. eingelegten Medium (Der Punkt steht für das aktuelle Verzeichnis, also das Stammverzeichnis des angeschlossenen Laufwerks):
[Autorun]
open=explorer .
openstyle=max
Dem zu startenden Programm kann über die Zeile openstyle= ein Fenster-Stil vorgeschlagen werden - das ist eine Funktion von USBDLM und wird von Windows nicht unterstützt. Viele Programme halten sich dran, z.B. der Windows-Editor "notepad.exe", andere nicht, z.B. der Windows-Rechner "calc.exe". Verfügbare Stile sind:
max maximiert
min minimiert
hidden versteckt
noactivate normal, aber Fenster wird nicht aktiviert, bekommt also nicht den Fokus
Die autorun.inf bietet natürlich ein hervorragendes Einfallstor für Schad-Software auf Fremd-Sticks. Deshalb kann USBDLM das Ganze über einen Schlüssel absichern:
AutoRunKey=MeinTotalGeheimerSchlüssel
Nur wenn sich in der autorun.inf die gleiche Zeile befindet, führt USBDLM die open= Zeile aus.
Eine weitere Möglichkeit, etwas für die Sicherheit zu tun, ist, AutoRun ohne Admin-Rechte auszuführen (falls man nicht ohnehin als "Eingeschränkter Nutzer" arbeitet).
[Settings]
AutorunInfRestricted=1
2. AutoRun-Ereignisse in der USBDLM.INI - abhängig von Laufwerks-Eigenschaften
[OnArrival]
open=calc.exe
Das würde z.B. bei jedem Anschließen eines USB-Laufwerks oder Einlegen einer Flash-Karte den Windows Taschenrechner ausführen.
Das Kommando kann auch ohne Admin-Rechte ausgeführt werden (wenn der aktive Nutzer kein Admin ist, ergibt sich kein Unterschied):
[OnArrival]
open=calc.exe
restricted=1
oder mit vollen System-Rechten im Kontext 'local system':
[OnArrival]
open=calc.exe
system=1
Unter Vista wird man das Fenster der Anwendung aber nie zu sehen bekommen, da der Kontext 'local system' in einer anderen Session läuft. Unter XP ist das dann der Fall, wenn die Schnelle Benutzerumschaltung aktiv und der aktive Nutzer nicht der erste angemeldete ist (nur der läuft in der Session0, wie 'local system').
Nützlich ist das zum Ausführen von Tools die Admin-Rechte benötigen, der aktive Nutzer aber keine hat, wie unten im Beispiel 6.
Als Paramter für das auszuführende Programm kann man Variablen wie z.B. %drive% das angeschlossene Laufwerk oder %root% dessen Stammverzeichnis übergeben.
Das Ganze geht auch abhängig von Kriterien, genau wie bei der Konfiguration der Laufwerksbuchstaben.
Geprüft werden [OnArrival1] bis [OnArrival99], anschließend noch [OnArrival] (ohne Nummer). Der erste Abschnitt mit passenden Kriterien wird benutzt.
Dem zu startenden Programm kann über die Zeile openstyle= noch ein Fenster-Stil vorgeschlagen werden, siehe oben.
Bei Bedarf kann noch eine Verzögerung in Millisekunden angegeben werden, Maximum sind 60000:
delay=2000
Um zu verhindern, daß der Nutzer das AutoRun durch drücken der Umschalt-Taste ("Shift") überspringt (z.B. wenn ein Virenscanner konfiguriert ist), kann im jeweiligen Abschnitt ein Force=1 gesetzt werden.
Um die Intigrität der auszuführenden Datei sicherzustellen, kann ein MD5-Hashwert angegeben werden:
[OnArrival]
open=calc.exe
md5=DDCD9FCD B7E1956E E69F8E58 B8C8BF0D
Groß- / Kleinschreibung ist egal, ebenso die Leerzeichen. Nur wenn der MD5-Hash der EXE mit dem konfigurierten Wert übereinstimmt, wird das Programm ausgeführt.
Beispiele
Die 10, 20, 30 in den Abschnittsnahmen der folgenden Beispiele stehen wie immer für eine beliebige Zahl von 1 bis 99.
Beispiel 1:
FotoSoftware für Laufwerke mit der Datenträgerbezeichnung "CANON_DC" oder "NIKON_DC", als Paramter die USBDLM-Variable %root%, also das Stammverzeichnis des neuen Laufwerks
nix für Laufwerk X
sonst ein maximiertes Explorer-Fenster, aber nur für die ersten zwei Partitionen (falls vorhanden)
[OnArrival10]
VolumeLabel1=CANON_DC
VolumeLabel2=NIKON_DC
open=C:\Programme\FotoSoftware\FotoSoftware.exe %root%
[OnArrival20]
Letter=X
open=
[OnArrival30]
PartitionNumber1=1
PartitionNumber2=2
open=explorer.exe %root%
openstyle=max
Beispiel 2:
- Falls vorhanden, die Datei DATEN.TXT vom angeschlossenen Laufwerk nach C:\Daten kopieren, voher zwei Sekunden warten:
[OnArrival10]
FileExists=%drive%\DATEN.TXT
open=cmd /c copy "%drive%\DATEN.TXT" "C:\Daten"
delay=2000
cmd ist der Windows-Kommandozeilen-Interpreter, /c heißt "Kommando ausführen und dann beenden", copy ist ein Kommando, das cmd bekannt ist und Dateien kopiert.
Das Selbe versteckt:
[OnArrival10]
FileExists=%drive%\DATEN.TXT
open=cmd /c copy "%drive%\DATEN.TXT" "C:\Daten"
openstyle=hidden
Beispiel 3:
- Eine TrueCrypt Container-Datei mit Namen geheim.tc automatisch auf T: mounten:
[OnArrival10]
FileExists=%drive%\geheim.tc
open=C:\Programme\TrueCrypt\TrueCrypt.exe /v "%drive%\geheim.tc" /l T /q
Beispiel 4:
- Eine TrueCrypt-Laufwerk automatisch mounten:
;Laufwerksbuchstaben entfernen, ist eh nutzlos
[DriveLetters10]
DeviceType=TrueCrypt
Letter=-
[OnArrival10]
DeviceType=TrueCrypt
open=C:\Programme\TrueCrypt\TrueCrypt.exe /v %PartitionName% /lj /q /a
%PartitionName% ist eine USBDLM-Variable und wird duch sowas wie
\Device\Harddisk2\Partition1 ersetzt, so wie TrueCrypt das erwartet.
Beispiel 5:
Einen USB-Stick auf U: und als Stick_U freigeben, beim "sicheren Entfernen" die Freigabe wieder löschen:
[DriveLetters10]
Letter1=U
[OnArrival10]
Letter=U
open=net share Stick_U=U:\
[OnRemovalRequest10]
Letter=U
open=net share Stick_U /D
Beispiel 6:
Einen USB-Stick auf A: mounten, falls A: belegt, dieses Laufwerk aus dem Weg räumen, indem es auf B: umgemountet wird:
;Auf A: mounten falls verfügbar, sonst unmounten
[DriveLetters10]
Letter1=A
Letter2=-
;falls ungemountet, A: auf B: ummounten und dann A: zuordnen
[OnArrival10]
Letter=-
open=c:\A_to_B_und_LW_auf_A.cmd %VolumeName%
Im Command-Script c:\A_to_B_und_LW_auf_A.cmd:
ReMount A: B:
mountvol A: %1
%VolumeName% ist eine USBDLM-Variable und wird durch sowas wie
\\?\Volume{aa6d706a-15da-11dc-a38f-0013d31dd4c5}\ ersetzt, so wie das Windows Kommandozeilen-Tool MountVol das erwartet.
ReMount ist mein Kommandozeilen-Tool zum Ändern von Laufwerksbuchstaben. Download:
http://www.uwe-sieber.de/files/remount.zip
Nach dem Entfernen des Laufwerks das Ganze rückgängig:
[OnRemoval10]
Letter=A
open=ReMount B: A:
Wenn mit externen Mount-Tools gearbeitet wird, sollte folgende Einstellung gemacht werden, damit USBDLM externe Mount-Ereignisse mitbekommt:
[Settings]
ExternalMountEvents=1
AutoRun beim und nach dem Entfernen
Analog zur AutoRun-Funktion kann USBDLM beim "Vorbereiten zum sicheren Entfernen" sowie nach dem Entfernen eines Laufwerks eine Kommandozeile ausführen.
Um wirksam zu werden, muß das betreffende Gerät neu angeschlossen oder der USBDLM-Dienst neu gestartet werden.
1. Beim Vorbereiten zum sicheren Entfernen
Wird ein USB-Laufwerk über "Hardware sicher entfernen" abgemeldet, hat USBDLM noch Gelegenheit, auf diese Anfrage zu reagieren, während das Laufwerk noch verfügbar ist.
Zu lange sollte das Ausführen des Kommandos nicht dauern, die maximale Dauer beträgt 5 Sekunden. Ist der gestartete Prozess dann noch nicht beendet, wird die Anfrage zum "Sicheren Entfernen" durch USBDLM zurückgewiesen.
Beispiel zum Kopieren der Datei c:\text.txt in das Verzeichnis \backup auf dem zu entfernenden Laufwerk (die 10 ist wie immer eine beliebige Zahl von 1 bis 99):
[OnRemovalRequest10]
open=cmd /c copy "C:\test.txt" %drive%\backup
Das Gleiche, nur auf für Laufwerk X:
[OnRemovalRequest10]
Letter=X
open=cmd /c copy "C:\test.txt" %drive%\backup
Wie oben, aber nur wenn die Datei \backup\test.txt bereits auf dem Laufwerk vorhanden ist
[OnRemovalRequest10]
FileExists=%drive%\backup\test.txt
open=cmd /c copy "C:\test.txt" %drive%\backup
Ein TrueCrypt-Laufwerk auf T: unmounten, wenn die Datei geheim.tc auf dem zu entfernenden Laufwerk vorhanden ist:
[OnRemovalRequest40]
FileExists=%drive%\geheim.tc
open=C:\Programme\TrueCrypt\TrueCrypt.exe /d T
Bei langwierigen Operationen ist es besser, eine Batch-Datei zu schreiben, die alles nötige erledigt und abschließend das Laufwerk zum sicheren Entfernen vorbereitet - dafür gibts mein Kommandozeilentool RemoveDrive:
http://www.uwe-sieber.de/files/removedrive.zip
Um ein laufendes Programm zu schließen, das auf das zu entfernende Laufwerk zugreifet, kann man das ab XP verfügbare Kommando tskill nutzen.
Beispiel zum Beenden eines Prozesses, der auf das Laufwerk zugreift und etwas warten, bis das erledigt ist:
[OnRemovalRequest1]
Letter=X:
open=tskill MeinProzess
afterdelay=2000
Einen Prozess abzuschießen ist aber nicht nett - der freundliche Weg ist, eine WM_CLOSE-Nachricht an das betreffende Anwendungs-Fenster zu senden.
USBDLM kann das betreffende Fenster anhand dessen Texts (Titelzeile) und (optional) dessen Fenster-Klasse finden.
Falls die zu schließende Anwendung nach Schließen des Fensters noch etwas Zeit braucht, kann USBDLM bis zu vier Sekunden warten.
Beispiel: Beim Versuch, Laufwerk X: abzumelden den Taschenrechner beenden und sicherheitshalber eine Sekunde warten:
[OnRemovalRequest1]
Letter=X:
CloseWindowText=Calc
CloseWindowClass=SciCalc
afterdelay=1000
Wildcards können verwendet werden, falls die Titelzeile des Fensters variabel ist:
[OnRemovalRequest1]
Letter=X:
CloseWindowText=* - Notepad
CloseWindowClass=Notepad
afterdelay=2000
2. Beim Fehlschlagen des Vorbereitens zum sicheren Entfernen
Wenn noch auf das zu entfernende Laufwerk zugegriffen wird, schlägt das "sichere Entfernen" fehl. Man kann dann z.B. eine gelöschte Freigabe wiederherstellen:
[OnRemovalFailed10]
Letter=U
open=net share Stick_U=U:\
3. Nach dem Entfernen
Beispiel: Laufwerk A: wurde entfernt, ein anderes Laufwerk soll auf den frei gewordenen Buchstaben gemountet werden:
[OnRemoval10]
Letter=A:
open=mountvol A: \\?\Volume{433619ea-c6ea-11d9-a3b2-806d6172696f}\
MountVol ist ein Kommandozeilentool das ab Windows 2000 verfügbar ist.
Balloon Tips
Auch wenn man dank USBDLM ja weiß, welchen Buchstaben ein USB-Laufwerk bekommt, ist es ganz nützlich, es nochmal angezeigt zu bekommen...
Wenn aktiviert zeigt USBDLM ein kleines Hinweis-Fenster mit dem oder den zugeordneten Buchstaben. Der 'BallonTip' verschwindet, wenn man draufklickt oder nach Ablauf der Anzeige-Zeit. Die beträgt 6 Sekunden und kann in Millisekunden eingestellt werden:
[BalloonTips]
Enabled=1
Timeout=6000
Der Text wird aus wenigen Text-Bausteinen zusammengesetzt. Texte sind in deutsch und einigen anderen Sprachen enthalten und werden abhängig von der in Windows eingestellten Sprache benutzt.
Man kann sich die Texte auch anpassen, folgende Text-Bausteine sind enthalten:
[BalloonTips]
Text_drives=Laufwerke
Text_partitions=Partitionen
Text_media=Medium
Text_mounted_to=bereitgestellt unter
Text_and=und
Ergibt dann z.B. für
- ein Laufwerk mit einem Volume, z.B. ein USB-Stick oder eine Festplatte mit einer Partition
bereitgestellt unter X:\
- eine Festplatte mit mehreren Partitionen
2 Partitionen bereitgestellt unter X:\ und Y:\
- ein Gerät mit mehreren Laufwerke, z.B. ein Multilslot-Cardreader
3 Laufwerke bereitgestellt unter X:\, Y:\ und Z:\
- ein eingelegtes Medium, z.B. eine Flashkarte
Medium bereitgestellt unter X:\
Unicode wird nicht unterstützt. Die maximale Länge pro Text-Baustein ist 47 Zeichen.
Wenn sich in einer Fremdsprache für "bereitgestellt unter" die Singular- und Plural-Varianten unterscheiden, kann für Plural der Eintrag
Text_mounted_to_plr konfiguriert werden.
Wenn NoMediaNoLetter=1 konfiguriert ist, kann ein Balloontip schonmal so aussehen:
MultiReader USB device
bereitgestellt unter ---, ---, --- und ---
Auf den ersten Blick überflüssig, informiert es darüber, daß der Reader vier Laufwerke beherbergt und aus gutem Grund kein Laufwerksbuchstabe zugeordnet wurde.
Zeichensatz
Ist es nicht mir dem Windows Standard-Zeichensatz getan, kann ein Zeichensatz angegeben werden. Für Russisch z.B.
Text_charset=204
Weitere Werte aus der Mircosoft WinGDI.h:
GREEK_CHARSET 161
TURKISH_CHARSET 162
EASTEUROPE_CHARSET 238
RUSSIAN_CHARSET 204
BALTIC_CHARSET 186
"Rechts-nach-links"-Schriften werden derzeit nicht unterstützt.
Auf das letzte Laufwerk warten
Wenn ein Gerät mit mehreren Laufwerken angeschlossen wird, z.B. eine Festplatte mit mehreren Partitionen oder ein Multislot-Cardreader, kann USBDLM mit dem Ballon-Tip waren, bis alle Laufwerke bereit sind. Normalerweise wird der Balloon-Tip für das erste Laufwerk angezeigt und dann für jedes weitere aktualisiert.
[BalloonTips]
WaitForLastVolume=1
Windows-Balloon-Tips bei Bedarf unterdrücken
Wenn ein Laufwerk zum ersten mal angeschlossen wird, zeigt Windows mehr oder weniger hilfreiche Balloon-Tips. USBDLM räumt die bei Bedarf aus dem Weg. Wenn es das nicht tun soll:
[BalloonTips]
SuppressWindowsBalloons=0
Laufwerksgröße anzeigen
[BalloonTips]
ShowSize=1
So wird hinter dem Geräte-Namen noch die Größe des Laufwerks angezeigt, z.B.
Corsair Flash Voyager USB device - 8GB
Laufwerksgröße runden
Bei Größen zwischen 8 und 1000 MB kann USBDLM die Größe so runden, daß immer gängige Größen wie 256 und 512MB statt krumme Werte wie 262 und 509MB angezeigt werden.
[BalloonTips]
RoundSize=1
Keine Balloontips für bestimmte Laufwerke
Immer mehr in Mode kommen USB-Geräte wie Drucker, WebCams oder WLAN-Sticks mit einem "Selfinstaller". Das ist ein virtuelles CD-ROM-Laufwerk über das automatisch Treiber installiert werden sollen. Meist deaktivieren sich diese CD-ROMs ein paar Minuten nach dem Anschließen. Das ist bestens geeignet, um auf Rechnern ohne USBDLM die Laufwerksbuchstaben durcheinanderzubringen...
Damit USBDLM dafür keinen Balloontip zeigt, muß man das anhand dessen Hardware-Geräte-ID oder des 'Friendly Name' sperren. Beispiel:
[BalloonTipsExclude]
DeviceID1=USB\VID_057C&PID_62FF
DeviceID2=selfinstall
Die ID muß mindestens acht Zeichen lang sein. Man holt sie sich mit dem mitgelieferten ListUsbDrives, siehe Buchstaben abh. von der Geräte-ID.
Aktionen beim Klick auf den Balloontip
Analog zu AutoRun können Ereignisse bei Links-, Rechts- und Mittel-Klick definiert werden.
;Explorer bei Links-Klick
[OnBalloonClick1]
open=explorer %drive%
;Foto-Software bei Rechts-Klick
[OnBalloonRClick1]
open=c:\programme\fotosoft\fotosoft.exe %drive%
Es können mehrere Ereignisse abhänging von Laufwerks-Eigenschaften definiert werden, genau wie für [AutoRun] beschrieben.
Wenn im Balloontip mehr als ein Laufwerk angezeigt wird, gilt das Ereignis nur für das erste Laufwerk mit einem Laufwerksbuchstaben.
explorer /e (öffnet ein Explorer-Fenster mit Laufwerks-Baum) sollte hier nicht benutzt werden, da der Explorer ca. 4 Sekunden braucht, um ein neues Laufwerk in den Laufwerks-Baum einzutragen. Wenn man vorher auf ein neues Laufwerk zugreift, bekommt man u.U. einen leeren Eintrag im Laufwerksbaum.
Erstmals konfigurierte Ballon-Klick-Ereignisse funtionieren beim Einlegen einer Speicherkarte u.U. erst nach einem einem Neustart des USBDLM-Dienstes.
Explorer Icon und Label
USBDLM kann ein paar Werte in die Windows Registry schreiben, damit der Windows Explorer für ein Laufwerk ein spezielles Icon und Bezeichnung zeigt (DefaultIcon und DefaultLabel).
Allerdings funktioniert das nicht immer - manchmal geht's, manchmal nicht. An USBDLM liegt's nicht.
Planmäßig hat offenbar die Datenträgerbezeichnung (volume label) die höchste Prioritat, dann die Registry-Einträge und zuletzt der generische Name wie "Wechseldatenträger".
Die Konfiguration ist analog zu AutoRun: Man kann Kriterien definieren, der erste Abschnitt bei dem die Kriterien passen, wird benutzt.
Beispiel für ein Kamera-Icon für Laufwerke mit dem Volume-Label ("Datenträgerbezeichnung") CANON_DC:
[Explorer1]
VolumeLabel1=CANON_DC
DefaultIcon=shell32.dll,139
Das Icon befindet sich in der XP shell32.dll bei Index 139 (gezählt ab Null).
Bei den Laufwerksbuchstaben A: und B: scheint XP besonders an seinen Floppy-Icons zu hängen - hier ist die Warscheinlichkeit besonders hoch, daß XP die DefaultIcon-Einstellungen ignoriert.
Ein DefaultLabel ("Standard-Datenträgerbezeichnung") wird normalerweise nur benutzt, wenn das Laufwerk kein eigenes Volume-Label hat. Manchmal aber doch, das Verhalten von Windows scheint hier nicht vorhersagbar.
Beispiel für eine Standard-Datenträgerbezeichnung "USB-Laufwerk" für USB-Laufwerke:
[Explorer2]
BusType=USB
DefaultLabel=USB-Laufwerk
USBDLM unterstützt hier eine Reihe von Variablen.
Beispiel für den Geräte-Namen für USB-Laufwerke ohne eigene Datenträgerbezeichnung:
[Explorer2]
VolumeLabel=-
BusType=USB
DefaultLabel=%DevName%
Windows 2000 begrenzt die Länge des Default-Labels auf 31 Zeichen.
Gerät unter "Hardware sicher entfernen" zeigen oder nicht
USBDLM kann ein für ein Laufwerk einen Wert in der Registry so modifizieren, daß es nicht mehr unter "Hardware sicher entfernen" angezeigt wird. Das ist z.B. für interne Kartenleser sinnvoll, damit sie nicht versehentlich abgemeldet werden.
Beim nächsten Start des Laufwerks-Treibers wird der Wert aber zurückgesetzt, so daß er bei jedem Systemstart erneut gesetzt werden muß.
Konfiguriert wird das anhand des Kriteriums "Geräte-ID", siehe auch Buchstaben abh. vom der Geräte-ID.
Beispiel für ein USB-Laufwerk:
[HideFromSafelyRemoveHardware]
DeviceID1=USB\VID_058F&PID_6369
Oder anhand des 'Friendly Name':
[HideFromSafelyRemoveHardware]
DeviceID1=Multi Flash Reader
Umgekehrt können auch Laufwerke unter "Hardware sicher entfernen" angezeigt werden, für die das normalerweise nicht der Fall ist:
[AddToSafelyRemoveHardware]
DeviceID1=IDE\DISKFUJITSU_MHV2040BH*00000025
Aber selbst wenn man ein IDE-Laufwerk in die Liste bekommt, schlägt das Entfernen warscheinlich fehl.
Mit meinem Kommandozeilen-Programm RemoveDrive kann man dagegen auch IDE-Laufwerke zum sicheren Entfernen vorbereiten.
Geräte die nichts mit Laufwerken zu tun haben, kann USBDLM auch behandeln - da USBDLM darüber aber keine Daten vorhält, muß hier die komplette GeräteID angegeben werden:
[HideFromSafelyRemoveHardware]
CompleteDeviceID1=USB\VID_1758&PID_2004\050712014270000083
Die GeräteID findet man im Geräte-Manager:
Das betreffende Gerät mit rechts anklicken -> Eigenschaften, Reiter 'Details'. Hier ist unter XP schon die "Geräteinstanzkennung" ausgewählt. Dann unten auf die GeräteID klicken und "Strg+C" drücken - das kopiert sie in die Windows Zwischenablage. Ein Kontextmenü mit "Kopieren" gibts erst unter Vista.
Gerät komplett ignorieren
Geräte mit merkwürdigem Verhalten kommen immer wieder mal vor. USBDLM kann bestimmte Geräte komplett in Ruhe lassen.
Konfiguriert wird das anhand des Kriteriums "Geräte-ID", siehe auch Buchstaben abh. vom der Geräte-ID.
Beispiel für den Apple iPod, dessen iTunes-Software sich auch um den Laufwerksbuchstaben kümmert:
[IgnoreDevices]
DeviceID1=ven_apple&prod_ipod
DeviceID1 bis DeviceID9 können konfiguriert werden.
Das Ignorieren des Apple iPod ist bereits fest eingebaut. Soll er dennoch von USBDLM behandelt werden, kann das über einen Abschnit mit dem Kriterium DeviceID1=ven_apple&prod_ipod erreicht werden:
[DriveLetters10]
DeviceID1=ven_apple&prod_ipod
Letter=X
Variablen
Bei der Konfiguration von AutoRun, Explorer Label und Mounten in NTFS-Ordner können einige Variablen benutzt werden:
Variable Beschreibung Beispiel
%Drive% Laufwerk X:
%Root% Stammverzeichnis X:\
%DevName% Gerätename Corsair Flash Voyager
%BusType% Anschluß-Typ USB
%VolumeLabel% Datenträgerbezeichnung Mein Stick
%DriveType% Laufwerkstyp REMOVABLE
%FsName% Datei-System FAT
%Size% Größe des Volumes 2 GB
%DiskSize% Größe des Datenträgers 20 GB
%DosDevName% 'DOS device name' \Device\Harddisk3\DP(1)0-0+d
%PartitionName% Partitions-Name \Device\Harddisk2\Partition1
%DeviceNumber% Geräte-Nummer 2
%PartitionNumber% Partitions-Nummer 1
%VolumeName% Volume-Name \\?\{GUID}\
%Date% Datum (yymmdd) 080331
Wildcards
Bei der Konfiguration der Kriterien DeviceID, VolumeLabel, UsbPortName, UserName und UserGroup können Wildcards (=Platzhalterzeichen) benutzt werden.
Dabei steht der Stern '*' für Null bis n Zeichen, das Fragezeichen '?' für genau ein Zeichen.
Buchstaben werden unabhängig von Groß/Kleinschreibung ausgewertet.
Beipiel | paßt z.B. für | paßt nicht für
--------------+------------------------+------------------
Backup? | Backup1, Backup2, | Backup, Backup01
| BackupA, BackupB |
--------------+------------------------+------------------
Backup* | Backup, Backup1, | Back
| Backup01, Backup001 |
--------------+------------------------+------------------
*Backup | Backup, MyBackup | Backup1
--------------+------------------------+------------------
*ck* | Backup, Bäcker, ck | Akku
--------------+------------------------+------------------
B*up | Backup, Buckup, Bub | Backu
--------------+------------------------+------------------
2-1-* | 2-1-1, 2-1-7, 2-1-1-3 | 2-1, 1-1-1
--------------+------------------------+------------------
2-1-? | 2-1-1, 2-1-7 | 2-1, 2-1-1-3
--------------+------------------------+------------------
USB\VID_090C* | USB\VID_090C&PID_1111. | USB\VID_2222...
--------------+------------------------+------------------
admin* | Admin, Administrator | adam
--------------+------------------------+------------------
Systemwiederherstellung
Die XP Systemwiederherstellung fühlt sich auch für externe Festplatten zuständing. Das ist kompletter Unsinn, aber Microsoft war in sechs Jahren XP nicht in der Lage hier wenigstens USB- und Firewire-Platten auszunehmen, warscheinlich damit es ein paar wenige Gründe gibt, auf Vista umzusteigen - hier wird standardmäßig nur das System-Laufwerk überwacht.
USBDLM kann versuchen, die Systemwiederherstellung auf neu angeschlossenen Laufwerken zu deaktivieren, aber das ist experimentell - mal gelingt es, mal nicht...
[Settings]
DisableSystemRestoreForNewDrives=1
Der Ordner 'System Volume Information' bleibt aber - der wird auch vom Windows Index-Dienst benutzt. Der verhindert auch gerne mal das "Vorbereiten zum sicheren Entfernen".
Um zumindest zu verhindern, daß die Systemwiederherstellung auf externen Laufwerken herumscannt und den Ordner "System Volume Information" füllt, kann man für externe Lauferke je einen Wert in die Regsitry schreiben, der ursprünglich für das NT-Backup-Programm gedacht war, unter XP aber auch für die Systemwiederherstellung genutzt wird:
[Settings]
AddNewDrivesToFilesNotToBackup=1
So legt USBDLM für jedes Laufwerk auf einer externen Festplatte sowie für jeden Wechseldatenträger der in einen NTFS-Ordner gemountet wurde, einen Eintrag an, der dieses Laufwerk von der Überwachung ausnimmt, s. hier:
http://www.tweakxp.com/article37472.aspx
Die Einträge werden so angelegt, daß sie einen Windows-Neustart nicht überdauern. USBDLM legt sie beim Start des Dienstes ggf. wieder an.
Ereignisanzeige
USBDLM kann beim Anschließen und Entfernen von Laufwerken Einträge in die Windows Ereignis-Protokollierung, das Event Log, schreiben:
[Settings]
EventLog=1
Es werden dann solche Einträge in der Rubrik "Anwendung" geschrieben:
Drive attached: Name='FUJITSU MHK2120AT USB Device' Type=FIXED MountPoints='Z:\' User=admin
Drive removed: Name='FUJITSU MHK2120AT USB Device' Type=FIXED MountPoints='Z:\' User=admin
Hinweis: Während die Windows Ereignisanzeige (der EventViewer) geöffnet ist, kann die USBDLM.EXE weder gelöscht noch ersetzt werden. Umbenennen ist aber möglich.
Probleme
Windows 2000
Hier kann USBDLM u.U. die USB-Port-Namen nicht ermitteln. Wenn man diese Funktion nicht benutzt, gibts aber keine Probleme. Versionen vor Service Pack 4 sind nicht getestet!
Beim erstmaligen Anschließen eines USB-Laufwerks erscheint es zunächst im System, verschwindet wieder und erscheint erneut. Unter XP und höher kann ermittelt werden, ob so ein Hin und Her bevorsteht, unter Windows 2000 nicht. Hier kann ein Balloontip durchaus mal 2x erscheinen. AutoRun wird beim ersten Erscheinen ausgeführt - daraus könnten sich Probleme ergeben.
Nutzerwechsel bekommt USBDLM unter Windows 2000 nicht gemeldet - Laufwerksbuchstaben beim Login zu überprüfen, funktioniert daher unter Windows 2000 nicht.
Löschen von Verzeichnissen schägt fehl, wenn Laufwerk in NTFS-Ordner gemoutet
Das ist eines von vielen Problemen des Windows Explorers, wenn NTFS-Ordner als Mount-Punkte genutzt werden, siehe "Mounten in NTFS-Ordner" unter Konfiguration.
Laufwerksbuchstaben kehren zurück
Wenn Laufwerksbuchstaben die per NoMediaNoLetter=1 entfernt wurden oder wenn wenn Laufwerke in NTFS-Ordner gemountet werden, kehren die Laufwerksbuchstaben manchmal überraschend zurück... Dann meine irgendeine tolle Software, alles besser zu wissen und ordnet einfach Laufwerksbuchstaben zu. Bekannt dafür ist das U3 Launchpad auf U3-Sticks (die U3launch.exe auf dem Pseudo-CDROM).
USBDLM.EXE kann nicht gelöscht oder ersetzt werden
Während die Windows Ereignisanzeige (der EventViewer) geöffnet ist, kann die USBDLM.EXE weder gelöscht noch überschrieben werden, umbenennen ist aber möglich. Das ist natürlich auch der Fall, während der USBDLM-Dienst läuft...
Geräte die nicht starten unter Vista
Für USB-Wechseldatenträger installiert Vista immer auch ein "WPD Dateisystem". WPD steht für "Windows Portable Device", eine Programmierschnittstelle für Geräte wie MP3-Player, Handys u.a.
Wenn ein USB-Wechseldatenträger keinen Laufwerksbuchstaben hat, schlägt der Start des Treibers mit "Code 10" fehl. Macht aber nichts: Als normaler Datenträger funktioniert das Laufwerk trotzdem.
Wenn man den WPD-Kram komplett loswerden will, kann man den Dienst "Enumeratordienst für tragbare Geräte" (WPDBusEnum) deaktivieren. Nebeneffekt: Der Windows Media Player synchronisiert sich dann nicht mehr mit USB-Massenspeichern.
Erkennung von TrueCrypt-Laufwerken
Ganze Laufwerke die als TrueCrypt-Container benutzt werden, kann USBDLM nur erkennen solange sie nicht durch TrueCrypt gemountet sind. TrueCrypt gönnt sich exklusiven Zugriff, so dass USBDLM keine Test-Daten lesen kann.
History
V4.2.3 (14. September 2008)
Bugfix: Das Ausführen von [OnArrival] konnte seit V4.0 trotz Einstellung Force=1 durch Halten der Shift-Taste übergangen werden
Bugfix: Das Ausführen der autorun.inf Open-Zeile wurde seit V4.2 standardmäßig ohne Admin-Rechte gemacht (AutoRunInfRestricted war standardmäßig aktiviert)
Bugfix: [NoMediaNoLetterInclude] hat meist nicht funktioniert
V4.2.2 (17. August 2008)
Bugfix: [OnArrival], [OnRemoval] funktioniert wieder ohne Angabe eines Arbeitsverzeichnisses wenn das Laufwerk keinen Mount-Punkt hat
Bugfix: [OnRemoval] funktioniert wieder ohne Angabe eines Arbeitsverzeichnisses
Bugfix: [OnRemoval] wird beim Entfernen einer Karte aus einem Kartenleser ausgelöst
Bugfix: Neue BusTypes SD und MMC (Laptop-Kartenleser) funktionieren
Bugfix: Virtuelle Laufwerke der Vista "Volumen-Schattenkopie" bekommen keinen Laufwerksbuchstaben mehr
Bugfix: Verzögerung beim Herunterfahren von Windows beseitigt
V4.2.1 (19. April 2008)
Bugfix: Bei autorun.inf, [OnArrival] usw. ist das Stammverzeichnis wieder das aktuelle Verzeichnis
V4.2.0 (12. April 2008)
Bugfix: Probleme mit NTFS-Mountpunkten länger als 51 Zeichen behoben
Bugfix: AutoRun-Programme schafften es unter Vista nicht in den Vordergrund
Neu/Bugfix: Auch nicht verbundene Netz-Laufwerke werden berücksichtigt
Neu: NoMediaNoLetter funktioniert unter Windows 2000
Neu: Fast alle Einstellungen werden ohne Neustart des USBDLM-Dienstes wirksam
Neu: Wildcards bei vielen Konfigurations-Parametern möglich
Neu: Bestimmte Laufwerke können komplett ignoriert werden
Neu: Laufwerke und sonstige Geräte können aus "Hardware sicher entfernen" entfernt werden
Neu: Richtlinie "Für Geschwindigkeit optimieren" kann für USB-Laufwerke gesetzt werden
Neu: Beim AutoRun können USBDLM-Variablen dem ausgeführten Programmen als Umgebungsvariablen zur Verfügung gestellt werden
Neu: Beim AutoRun kann das Programm ohne Admin-Rechte ausgeführt werden (falls der Nutzer Admin ist), oder auch im Kontext "Local System", falls die Rechte des angemeldeten Nutzers nicht ausreichen
Neu: Ungenutzte NTFS-Mountpunkte können beim Start des Dienstes entsorgt werden
V4.1.0 (19. Oktober 2007)
Bugfix: Die letzten zwei Zeilen der USBDLM.INI wurden ignoriert (zwei oder mehr leere Zeilen am Ende haben geholfen...)
Bugfix: OnRemoval funktioniert auch beim Entnehmen einer Karte aus einem Kartenleser
Bugfix: Auch mit NoMediaNoLetter=0 hat sich USBDLM für einige Benachrichtigungen registriert, unter Vista64 wurde dadurch das "Vorbereiten zum sicheren Entfernen" verhindert
Bugfix: USBDLM-Dienst unter Vista nicht mehr als "interaktiv" gekennzeichnet -> keine Fehlermeldungen mehr im Syslog
Workaround: NoMediaNoLetter funktioniert unter Vista64
Neu: NoMediaNoLetter kann feiner abgestuft werden
Neu: NoMediaNoLetter kann für einzelne Geräte erzwungen werden per Abschnitt [NoMediaNoLetterInclude] (analog zu [NoMediaNoLetterExclude])
Neu: Laufwerksbuchstaben-Liste in Kurz-Notation, z.B. Letters=R,X,Y,Z
Neu: User=- als Kriterium für "kein Nutzter angemeldet"
V4.0.2 (26. August 2007)
Bugfix: Die in eine Datei umgeleiteten Ausgaben von ListUsbDrives hatten ein falsches Format für den Zeilenvorschub, das der Windows Editor nicht vernünftig anzeigen kann
Bugfix: AutoRun-Ereignisse für Laufwerke ohne Laufwerksbuchstaben funktionierten nur mit dem zusätzlichen Kriterium Letter=-
Bugfix: Unter Windows 2000 haben Partitionsnummern und Balloontips bei Festplatten mit mehreren Partitionen nicht funktioniert
V4.0.1 (20. Juli 2007)
Bugfix: "ExcludedLetters" hat meist nicht funktioniert
Bugfix: ListUsbDrives konnte ohne Admin-Rechte nicht alle Informationen anzeigen
V4.0.0 (15. Juli 2007)
Neu: Neues Format für die USBDLM.INI, damit keine festen Prioritäten, mehr Möglichkeiten
Neu: LW-Buchstaben abhängig von aktiven Nutzer, dessen Gruppe oder dessen Admin-Status
Neu: AutoRun beim Einlegen eines Mediums (auch CD/DVD)
Neu: AutoRun-Ereignisse abhängig von allen Kriterien anhand derer USBDLM Laufwerksbuchstaben vergibt
Neu: AutoRun beim "Vorbereiten zum sicheren Entferenen" und nach dem Entfernen eines Laufwerks
Neu: Balloontip-Texte in verschiedenen Sprachen integriert
Neu: AutoRun beim Klick auf den BalloonTip
Neu: Laufwerks-Ereignisse ins Windows System-Protokoll
V3.4.2 (9.5.2007)
Bugfix: mehrere (falsche) Buchstaben im Balloon-Tip angezeigt, wenn Hardwareerkennung unvollständig
Bugfix: Erkennung von U3-Laufwerken verbessert
V3.4.1 (1.5.2007)
Bugfix: V3.4.0 basiert auf altem Code - alle für V3.4.0 versprochenen Funktionen gehen jetzt wirkich...
Bugfix: open= in autorun.inf geht jetzt auch ohne Pfadangabe wenn die auszuführende Datei auf dem angeschlossenen Laufwerk liegt
V3.4.0 (18.4.2007)
Bugfix: Absturz bei mehr als 10 Laufwerken am selben Controller, z.B. bei virtuellen CD-ROMs
Bugfix: Windows Explorer hat in der Baumansicht Laufwerk u.U. ohne Namen angezeigt
Neu: LW-Buchstaben abhängig von der LW-Größe auch abh. von der Größe des Datenträgers
Neu: LW-Buchstaben abhängig vom Laufwerks-Namen ("Volume Label")
Neu: LW-Buchstaben abhängig von der Geräte-ID kann IDs aus externer Datei laden
V3.3.1 (20.3.2007)
Bugfix: Möglicher Absturz auf Rechnern mit HyperThreading oder meheren CPU-Kernen
Bufgix: Errorlevel bei der Installation mit -silentinstall war immernoch 'falschrum' - jetzt 0 bei Erfolg
Neu/Fix: das Entfernen von Laufwerksbuchstaben für NoMediaNoLetter wir leicht verzögert gemacht, um vereinzelte Probleme mit dem Windows Explorer zu vermeiden
Neu/Fix: Beim Zuordnen von Laufwerksbuchstaben für NoMediaNoLetter wird das verzögert an den Windows Explorer gemeldet, da er sonst im Verzeichnisbaum den Laufwerksnamen nicht anzeigen will
Neu/Fix: Bei Deinstallation und NoMediaNoLetter=1 werden Laufwerksbuchstaben von Cardreadern wiederhergestellt
V3.3.0 (08.02.2007)
Bugfix: Errorlevel bei der Installation waren 'falschrum' - jetzt 0 bei Erfolg
Neu: kein Problem mit AutoRun mehr unter Vista und Windows 2000
Neu: Installation, Deinstallation, Start und Stop fordern bei Bedarf Admin-Rechte an
Neu: AutoRun kann über einen Schlüssel abgesichert werden
Neu: Kein LW-Buchstabe für Laufwerke die keinen Buchstaben haben und TrueCrypt-Container sind
Neu: viel Feinschliff :-)
Neu: statt des guten alten HLP-Format die Hilfe jetzt als CHM, weil Vista HLP standardmäßig nicht unterstützt
V3.2.0 (11.12.2006)
Bugfix: DeleteMountpointOnRemoval funktionierte nicht seit V3.0
Neu: 'kein Buchstabe' kann konfiguriert werden, z.B. um bestimmte Laufwerke loszuwerden oder um zu verhindern, daß Nutzer darauf zugreifen
Neu: Laufwerksbuchstaben können abhängig von der Geräte-ID des Laufwerks konfiguriert werden
Neu: BallonTips können für bestimmte Laufwerke deaktiviert werden
Hinweis: Diese Version stand bis 6.1.2006 mit der falschen Versionsnummer 3.1.6.1beta zum Download.
V3.1.0 (6.11.2006)
Bugfix: Balloontips funktionierten nicht für den zweiten angemeldeten Nutzer bei 'schneller Benutzerumschaltung' unter XP und generell unter Vista
Bugfix: Die Autorun-Funktion hat Programm im Kontext 'Local System' statt im Kontext des aktiven Nutzers gestartet
Neu: Laufwerksbuchstaben für USB-Floppies
V3.0.3 (22.10.2006)
Bugfix: Mit NoMediaNoLetter=1 ist USBDLM V3.0.2 beim Start abgestürtzt...
Bugfix: Erkennen von Konflikten mit Netz-Laufwerken beim Start hat u.U. nicht funkiontiert
Neu: Multislot-CardReader mit nur zwei Slots werden als solche erkannt, wenn sie wenn sie zwei Slots haben und 'reader' im Geräte-Namen haben
Neu: IDE- und PCI-CardReader sollten erkannt werden
V3.0.2 (16.10.2006)
Bugfix: Mit NoMediaNoLetter=1 verloren USB-Floppies ihren Laufwerksbuchstaben, wenn sie ohne eingelegtes Medium angeschlossen wurden
V3.0.1 (7.10.2006)
Bei AutoRun und RunOnArrival wird das neue Laufwerk zum aktuellen Verzeichnis gemacht, so daß Programme oder Batch-Dateien dort gefunden werden
V3.0.0 (3.10.2006)
Anwenden der Einstellungen beim Start des Dienstes
Über Abschnitt [ExcludedLetters] können Buchstaben für die Nutzung durch USB-LWs ausgeschlossen werden
Lesen von weiteren [ExcludedLetters] aus einer externen USBDLM.INI, z.B. von einen Serverkann
Behandlung von U3-Autorun-Laufwerken
Ausführen der open= Zeile in der autorun.inf auf Wechseldatenträgern
Globales AutoRun beim Anschließen eines beliebigen USB- oder Firewire-Laufwerks
Balloon-Tip mit Informationen über die zugeordnenten Mount-Punkte
V2.4.4 (7.9.2006)
Anpassung: Ein USB-Gerät das zwei Laufwerke enthält, wird nicht mehr als Multislot-Cardreader eingestuft (erst ab drei Laufwerken)
V2.4.3 (28.8.2006)
Bugfix: Unter Windows 2000 gabs eine Fehlermeldung 'Datenträger einlegen' wenn ein USB-Laufwerk ohne eingelegtes Medium angeschlossen wurde
Neu/Fix: Dienst-Name geändert von 'USB Drive Letter Manager' in 'USBDLM'
V2.4.2 (16.6.2006)
Bugfix: bei V2.4.1 konnte der Dienst auf manchen Rechnern beim Systemstart nicht gestartet werden
Log-Datei zum Debuggen kann aktiviert werden
kann als 'Eject-Server' für das Kommandozeilen-Tool EjectMedia dienen
V2.4.1 (11.6.2006)
USB-Floppy-Laufwerke werden ignoriert
Problem mit doppelt angelegten Mount-Points für Multislot-Cardreader behoben
Tipp-Fehler im Dienst-Namen korrigiert ('USB drive letter mananger')
Errorlevel nach -install, -silentinstall usw. korrigiert
V2.4 (21.5.2006)
erkennt neue USB-Laufwerk auch dann, wenn sie keinen Mount-Punkt bekommen haben - damit funktioniert auch das Mounten in NTFS-Order vernünftig
auf Wunsch Löschen von als Mount-Punkt benutzten NTFS-Ordnern beim Entfernen des Laufwerks
Mounten in NTFS-Ordner anhand des Geräte- oder Laufwerks-Namens
Laufwerksbuchstaben für USB-CD/DVD-Laufwerke
V2.3 (5.5.2006)
erkennt Netz- und Subst-Laufwerke des angemeldeten Nutzers und remountet ggf. auf den nächsten wirklich freien Buchstaben
V2.2.2 (18.4.2006)
funktioniert auch mit Laufwerken die nach dem Anschließen mehr als 10 Sekunden brauchen bis der Laufwerksbuchstabe erscheint
V2.2.1 (2.4.2006)
funktioniert wieder unter Windows 2000 (V2.2 tat das nicht...)
V2.2 (29.3.2006)
funktioniert unter Windows Vista
Suche nach c't USB Agent standardmäßig deaktiviert
V2.1 (19.3.2006)
Vergabe der LW-Buchstaben abhängig vom USB-Port funktioniert auch mit USB-Laufwerken die als 'Lokale Datenträger' eingebunden werden
Ummounten von Multislot-Cardreadern auch auf Laufwerks-Buchstaben oder Mount-Points
V2.0 (7.3.2006)
Vergabe der LW-Buchstaben abhängig vom USB-Port
Ummounten von Multislot-Cardreadern in einen NTFS-Ordner
Statt Laufwerks-Buchstaben sind auch leere NTFS-Ordner als Mount-Points möglich (experimentell)
V1.1.1 (17.1.2006)
Fehler bei der Erkennung von USB und Firewire behoben der eine 'Access Violation' verursachte
V1.1 (15.1.2006)
Einige Timeouts verlängert
Erkennung von USB und Firewire funktioniert auch unter Windows 2000
V1.0 (10.1.2006)
Vergabe der LW-Buchstaben abhängig von der Datenträger-Größe möglich
Ausschluß-Liste für LW-Buchstaben, um eine USBDLM.INI auf dem angeschlossenen Datenträger
zu 'überstimmen'
Ausschluß-Liste für Datenträger-Bezeichnungen
Kein Ummounten, wenn auf dem Laufwerk eine usbagent.inf liegt und der c't USB Agent läuft
Nur noch für Nutzung im privaten und Bildungs-Bereich Freeware
V0.6 (15.12.2005)
Vorhandensein eines Mediums im Laufwerk wird nicht mehr an dessen Seriennummer festgemacht, da
sich gezeigt hat, daß Sticks ab Werk oft keine haben
V0.5 (24.10.2005)
Kümmert sich nur noch um Laufwerke, die Typ 'DRIVE_FIXED' oder 'DRIVE_REMOVABLE' sind und
wechselbare Medien haben oder Hotplug-Geräte sind. Letzterer Test funktioniert nur unter XP...
V0.4 (5.9.2005)
Kümmert sich auch um Laufwerke mit Typ 'DRIVE_FIXED' (bisher nur 'DRIVE_REMOVABLE')
V0.3 (25.8.2005)
Erste veröffentlichte Version
Lizenz-Vereinbarung
Software-Lizenz USBDLM, Stand 16. Oktober 2007
1. Gegenstand des Vertrages
Gegenstand des Vertrages ist die beiligende Software, die
Programmbeschreibung und Bedienungsanleitung, sowie sonstiges zugehöriges
schriftliches Material, im folgenden auch als Software bezeichnet. Der Autor
macht darauf aufmerksam, dass es nach dem Stand der Technik nicht möglich ist,
Computersoftware so zu erstellen, dass sie in allen Anwendungen und
Kombinationen fehlerfrei arbeitet. Gegenstand des Vertrages ist daher nur
eine Software, die im Sinne der Programmbeschreibung und der
Benutzungsanleitung grundsätzlich brauchbar ist.
2. Lizenzgewährung
Der Autor gewährt jedem interessierten Anwender im privaten Umfeld, sowie
Bildungseinrichtungen eine kostenlose Nutzungslizenz. Eine Bildungs-
einrichtung gilt als solche, wenn Schüler und Studenten gegenüber sonstigen
Mitarbeitern in der Mehrheit sind. Es ist dann keine explizite Lizenz-
Erteilung erforderlich.
Sonstigen Anwendern wird eine Testlizenz für einen Testzeitraum von 30
Kalendertagen eingeräumt. Nach Ablauf dieser Testlizenz muss der Anwender
entweder eine Nutzungslizenz pro Computer erwerben oder die Software muss
von den entsprechenden Computern entfernt werden.
Der Lizenznehmer erhält das nicht ausschließliche, unwiderrufliche,
übertragbare, zeitlich und räumlich unbeschränkte Recht, die Software auf
der entsprechenden Anzahl von Computern innerhalb seiner Firma bzw.
Organisation einzusetzen.
Ausnahme ist die "Standort-Lizenz", die für eine unbegrenzte Anzahl von
Computern innerhalb der Organisation des Lizenznehmers gültig ist, die
sich in 160 Kilometer Umkreis oder auf Reisen befinden.
Eine Weltweit-Lizenz gilt für eine unbegrenzte Anzahl von Computern innerhalb
der Organisation des Lizenznehmers, egal wo.
Die Nutzungslizenz gilt für alle Versionsnummern der Software jetzt und in
Zukunft für die entsprechende Anzahl von Lizenzen.
Der Lizenznehmer hat kein Recht auf Updateversorgung durch den Autor, da
aktuelle Versionen zum Download stehen.
Überprüfbarer Beleg für die Lizenz ist die überlassene Lizenznummer. Diese
wird für den Betrieb der Software nicht benötigt. Die Software hat keine
eingebauten Beschränkungen und läuft nicht ab.
Die Software kann frei kopiert und weitergegeben werden, soweit folgende
Bestimmungen beachtet werden: Die Software darf nur in den vom Autor
erstellten MSI- oder ZIP-Archiven weitergegeben werden. Keine Datei darf im
Inhalt irgendwie verändert werden, außer für internen Gebrauch.
3. Keine weiteren Rechtsansprüche
Der Autor ist sowohl Urheber als auch Eigentümer der Software, sowie in
dieser Software verwendeter Algorithmen und Verfahren. Der Autor behält den
Rechts- und Besitzanspruch an der Software.
4. Keine Modifikationen oder Dekompilierung
Es ist nicht gestattet, die Software oder Kopien im Ganzen oder teilweise
zu verändern, zu übersetzen, zu disassemblieren oder zu dekompilieren.
5. Haftungsausschluß-Erklärung
Soweit gesetzlich zulässig, haftet der Autor oder der Händler auf keinen Fall
für irgendwelche Schäden aus entgangenem Gewinn, Betriebsunterbrechung,
Datenverlust, für Schäden an Hardware oder anderer Schäden gleich welcher Art,
die aus der Benutzung dieser Software oder aus der Tatsache, dass sie nicht
benutzt werden kann, resultieren, selbst wenn der Autor oder der Händler auf
die Möglichkeit solcher Schäden hingewiesen oder unterrichtet wurden. In jedem
Fall ist die gesamte Haftung seitens des Autors oder des Händlers unter
jedweder Bestimmung begrenzt auf die Summe, die von Ihnen tatsächlich für
diese Softwarelizenz bezahlt worden ist. Der Autor haftet nicht für Schäden,
es sei denn, dass ein Schaden durch Vorsatz seitens des Autors verursacht
worden ist. Gegenüber Kaufleuten wird auch die Haftung für grobe
Fahrlässigkeit ausgeschlossen. Eine Haftung wegen evtl. vom Autor
zugesicherten Eigenschaften bleibt unberührt. Eine Haftung für
Mangelfolgeschäden, die nicht von der Zusicherung umfasst sind, ist
ausgeschlossen.
6. Gewährleistung
Der Autor übernimmt keine Haftung für die Fehlerfreiheit der Software.
Insbesondere übernimmt der Autor keine Gewähr dafür, dass die Software den
Anforderungen und Zwecken des Erwerbers genügt oder mit anderen von ihm
ausgewählten Programmen zusammenarbeitet. Die Verantwortung für die richtige
Auswahl und die Folgen der Benutzung der Software, sowie der damit
beabsichtigten oder erzielten Ergebnisse, trägt der Erwerber. Das gleiche gilt
für das die Software begleitende schriftliche Material.
7. Gesetzesanwendung
Dieser Vertrag unterliegt der Gesetzgebung der Bundesrepublik Deutschland und
ist so anzuwenden, als ob die betreffenden Rechtsgeschäfte in der
Bundesrepublik Deutschland stattfänden.
8. Auflagen
Der Autor hat das Recht, den Vertrag und die Lizenzrechte sofort zu kündigen,
falls Sie die Bestimmungen dieses Vertrages nicht erfüllen.