Laufwerksbuchstaben ändern

noxon

Admiral
Registriert
Sep. 2004
Beiträge
7.570
Hallo,

ich hoffe ihr könnt mir bei einem Problem helfen. Und zwar wird meinem USB-Stick immer ein Laufwerksbuchstabe zugewiesen, der bereits für ein Netzlaufwerk vergeben wurde. Der Buchstabe wird also doppelt vergeben. Das scheint ein Bug von Windows zu sein. Er denkt anscheinend, dass die Buchstaben der Netzwerklaufwerke noch frei wären.

Wenn ich jetzt also auf den Stick zugreifen möchte, dann muss ich jedesmal in die Datenträgerverwaltung und ihm einen neuen Laufwerksbuchstaben zuweisen. Dies würde ich jetzt gerne mit einem Programm erledigen. Die Sprache ist mir erst einmal egal. Weiß jemand, wie ich den Device-IDs der Laufwerke einen Buchstaben zuweisen kann?

Da muss es doch irgend eine Windows-API oder so geben.
 
normalerweise bleibt der einmal vergebene Buchstabe gespeichert für das nächste mal, könntest Du nicht dem Netz LW notfalls einen anderen vergeben?
 
Zuletzt bearbeitet:
Hallo noxon,

eine Windows API dazu ist mir nicht geläufig. Ich würde mal die Datenträgerverwaltung mittels Regmon beobachten was die in der Registry ändert. Dort ist die Zuordnung von Laufwerken zu Buchstaben gespeichert.
Allerdings muss dann dem Explorer noch mitgeteilt werden das sich etwas geändert hat. Dazu würde ich dann mal den Explorer mit Spy++ beobachten.
Eventuell kann man das dann nachbilden.

Das schliesst aber natürlich nicht aus das es trotzdem eine API dazu gibt.

MfG

Arnd
 
Danke für eure Antworten, aber ich habe mittlerweile eine Lösung gefunden.

Mit dem Tool "mountvol" kann man jeder Device-ID einen Laufwerksbuchstaben zuweisen. Dummerweise ist die ID bei jedem Wechseldatenträger unterschiedlich und selbst beim selben Wechseldatenträger ist sie auf jedem Rechner unterschiedlich. Es ist auch nicht so, dass die ID vom USB-Port abhängt in dem der Datenträger steckt.

Es ist also nicht so einfach die ID des Sticks zu ermitteln. Letztendlich habe ich folgendes gemacht:

Ich durchlaufe eine Schleife vom ersten Netzwerklaufwerksbuchstaben bis z: und füre ein unmount durch. Dadurch verlieren alle Devices hinter den CD-Roms ihren Laufwerksbuchstaben. Netzlaufwerke behalten ihren aber trotzdem. Jetzt lass ich mir mit Mountvol alle Device-IDs und deren Laufwerksbuchstaben in eine Datei ausgeben. Diese wird dann im Programm abgearbeitet und das Device, dass keine Laufwerksbuchstabenzuordnung hat, ist dann ein Wechseldatenträger. Nun kann ich die ID dieses nicht zugeordneten Devices ermitteln und sie einem Laufwerksbuchstaben zuordnen.

Das ist zwar ein sehr aufwendiger Weg das Device zu mounten, aber ich hab's irgendwie nicht besser hingekriegt. Ich habe leider auch nicht mehr die API gefunden, womit man sich die Ausgabe eines Komandozeilen-Befehls in eine Variable einlesen kann. Stattdessen muss ich sie in eine Datei umleiten und diese danach einlesen.

Naja. Was solls. Hauptsache es funktioniert.

BTW: Wusstet ihr, dass man Laufwerke auch unter Pfaden mounten kann, also zum Beispiel unter "c:\mnt\Festplatte2"? Das war mir neu, obwohl es auch in der Datenträgerverwaltung als Möglchkeit angeboten wird. Finde ich gut, dass das auch unter windows funktioniert. Vielleicht ist das ja doch mal ganz sinnvoll um die immer mehr werdenden Laufwerksbuchstaben etwas zu minimieren. Bei mir sind es mittlerweile schon 13 Stück. Übersichtlich ist das nicht gerade.
 
Zuletzt bearbeitet:
Zurück
Oben