Troubleshooting für USB-Sticks unter Windows XP
 
Home

English Version of this page

Auch interessant: Tips zu USB-Sticks
 
  Kein Laufwerks-Buchstabe im Windows-Explorer
 


Partition / Volume hat das Attribut "versteckt" oder "no default drive letter"

Das GPT-Partitionierung-Schema unterstützt einige Paritions-Attribute, u.a. "versteckt". Bei MBR gibt es das eigentlich nicht, mit Microsoft's diskpart kann man dennoch für Volumes die Attribute "versteckt" (hidden) und "nur lesen" (read-only) setzen. Setzt man ein Attribut schreibt diskpart in den dritten Sektor (LBA2) einen rudimentären GPT "Basic Data" Partitionseintrag. Das Attribut wird aber 32 Bytes zu früh geschrieben, mitten dahin wo bei einem richtigen GPT-Eintrag die Unique-GUID der Partition gehört. Folge: Wurde eine Disk von GPT auf MBR umgestellt und die erste Partition war vom Typ "Basic Data" dann gibt es jeweils eine 50:50 Chance, dass Windows hier ein "versteckt" oder "nur lesen" Attribut sieht.
Auf einer MBR-Disk mit mehreren Partitionen werden die Attribute zudem immer vom ersten GPT-Eintrag gelesen (und von diskpart dorthin geschrieben) - setzt man ein Volume auf "versteckt" verschwinden alle Volumes auf der Disk! Schöner Schrott...
Prüfen und löschen:
diskpart "Als Administrator" starten
list volume
Die Attribute stehen in der Spalte ganz rechts. Um ein Attribut zu löschen, zunächst das Volume auswählen, so wie angezeigt, für Volume 13 z.B.:
select volume 13
Zum Entfernen des "versteckt" Attributes:
attribute volume clear hidden
Alle Volumes auf der Disk werden dann aktiv und bekommen einen Laufwerksbuchstaben.
Analog für das Attribut "nur lesen":
attribute volume clear readonly
Auf GPT-partitionierten Festplatten ist auch gerne mal das Attribut "no default drive letter" gesetzt, das setzt die Windows Datenträgerverwaltung wenn man der Partition den Buchstaben wegnimmt. Das ist lokal völlig nutzlos, da 'kein Buchstabe' ja in der Mountmanager-Datenbank vermerkt wird, und wenn man das Laufwerk an einen anderen Rechner anschließt, bekommt sie dort standardmäßig keinen Buchstaben:
attribute volume clear nodefaultdriveletter


Windows Server

Windows Server Enterprise- und Datacenter Edition ordnen neuen lokalen Datenträgern (USB- und FW-Festplatten sind lokale Datenträger) standardmäßig keinen Laufwerks-Buchstaben zu - das ist Aufgabe des Admins.
Das Feature nennt sich AutoMount und kann mit dem Tool DiskPart aktiviert werden: Start -> diskpart -> Als Admin ausführen. DiskPart-Prompt automount eingeben, um den aktuellen Status abzufragen oder automount enable, um AutoMount zu aktivieren. Damit handelt man sich aber u.U. genau die Nebenwirkungen ein, die Microsoft vermeiden wollte, nämlich dass Windows dann ungefragt Laufwerke im SAN (Storage Area Network) mountet.
Also besser mein USBDLM installieren - das kümmert sich standardmäßig nur um USB-Laufwerke.
Windows Visa, 7..11 unterstützen auch das Deaktivieren von Automount, hier ist es aber standardmäßig aktiv. LW-Buchstabe ausgeblendet

Windows kann Laufwerke im Windows-Explorer ausblenden. Unter XP kann man mit Microsofts Microsoft TweakUI die zuständigen Einstellungen kontrollieren: My Computer -> Drives. Gesetzter Haken = sichtbar. Oder um alle Buchstaben sichtbar zu machen, diese REG-Datei runterladen und ausführen: explorer_nodrives_0.reg
Ob es sich nur um dieses Problem handelt, kann man leicht überprüfen, indem man den betreffenden Laufwerksbuchstaben in die Adresszeile des Windows-Explorers eingibt - das funktioniert bei ausgeblendetem Buchstaben trotzdem.


Buchstaben-Konflikt mit Netz- oder Subst-Laufwerk

Seit XP existieren Netzwerk- und Subst-Laufwerke nur im Kontext des Nutzers der sie angelegt hat. Im Kontext 'System', wo die Laufwerks-Buchstaben durch den Mount-Manager vergeben werden, sind solche Laufwerke nicht ohne weiteres sichtbar und werden deshalb beim Anschließen eines externen Laufwerks durch XP nicht berücksichtigt. Wenn also auf dem ersten freien lokalen Buchstaben unter XP ein Netz-Laufwerk liegt, vergibt XP für ein neues USB-Laufwerk trotzdem genau diesen Buchstaben! Microsoft nennt das 'ein Problem'. Für's englischsprachige XP-SP2 gibt's einen Hotfix (WindowsXP-KB297694-x86-ENU.exe) und auch mit dem XP Service Pack 3 wird das Problem behoben, zumindest für erstmals angeschlossene Laufwerke.
Um sowas zu vermeiden, schlägt Windows Netz-Buchstaben von Z: an abwärts vor, während die Buchstaben für lokale Laufwerke 'von unten' aufwärts vergeben werden.
Ist ein Netz-Buchstabe nicht mehr zu ändern, hilft auch mein USBDLM, das beim Anschließen eines USB-Laufwerks solche Konflikte erkennt und dann auf den ersten wirklich freien oder auf einen konfigurierten Buchstaben ummoutet.
Unter Windows 2000 waren Netz-Laufwerke noch globale Objekte und mit den XP-SP3 hat Microsoft das Problem wie gesagt behoben. Nicht behoben ist foldendes Szenario: Lokale Laufwerke C: und D:, USB-Laufwerk auf E:. USB-Laufwerk entfernen, Netzlaufwerk auf E: anlegen, USB-Laufwerk wieder anschließen. XP mit SP3 ordnet dem USB-Laufwerk wieder E: zu, obwohl inzwischen mit einem Netz-Laufwerk belegt. Seit Vista ist auch das behoben. Wenn allerdings kein Buchstabe mehr frei ist, ordnen auch Vista und Windows 7 einen bereits als Netzlaufwerk genutzen Buchstaben zu!
Wird ein externes Laufwerk vor dem Login angeschlossen, gibt's den gleichen Konflikt, nur dass das USB-Laufwerk dann funktioniert während das Anlegen des Netz-Laufwerks fehlschlägt. Auch hier hilft mein USBDLM. Allerdings müssen die freizuhaltenden Buchstaben in der Konfiguration hinterlegt werden - in die Zukunft blicken kann auch USBDLM nicht.


Neue USB-Platte ist nicht partitioniert

Neue USB-Festplatten werden manchmal unpartitioniert ausgeliefert. Nachholen kann man das unter Windows über die Datenträgerverwaltung: Arbeitsplatz mit rechts anklicken -> Verwalten -> Datenträgerverwaltung.


Laufwerk verschlüsselt

Zu manchen Laufwerken wird eine Verschlüsselungs-Software geliefert. Meist hat man die Möglichkeit, das Laufwerk in zwei aufzuteilen - ein unverschlüsseltes und ein verschlüsseltes oder das gesamte Laufwerk zu verschlüsseln. Auf das verschlüsselte Laufwerk kann man erst zugreifen, nachdem ein Passwort in die Verschlüsselungs-Software eingegeben hat, wenn diese danach fragt. Bei manchen Lösungen ist das Laufwerk bis dahin unsichtbar.
Nach dem Passwort wird natürlich nur gefragt, wenn auf dem benutzten Computer die Verschlüsselungs-Software installiert wurde. Es gibt auch USB-Festplatten mit einem virtuellen CD-ROM-Laufwerk, das die Verschlüsselungs-Software enthält. Die soll bei Anschließen automatisch starten, was nur klappt, wenn das Windows-AutoRun für CD-Laufwerke nicht deaktiviert wurde.


Daemon Tools V4

Es gab Berichte, dass eine mehr oder weniger fehlgeschlagene Installation der Daemon-Tools V4 dazu führt, dass USB-Laufwerke keinen LW-Buchstaben mehr bekommen.
Es wird dann empfohlen, die Tools zu deinstallieren, und falls vorhanden ein paar Dateien in System32\Drivers zu löschen: sptd.sys, secdrv.sys, sptd.sys, sptdNNNN.sys (NNNN = Ziffern), s. auch hier: http://www.daemon-tools.cc/dtcc/archive/index.php/t-7868.html
Bei der Deinstallation hilft sptdinst_x86.exe.
In letzter Zeit gibt's kaum mehr solche Berichte - das Problem ist wohl behoben.


Filter-Treiber

Filter-Treiber dienen dazu, in die Kommunikation zwischen Treiber und Hardware (LowerFilters) bzw. Anwendung und Treiber (UpperFilters) einzugreifen. Sie werden z.B. für CD/DVD-Laufwerke von Brennsoftware installiert (Geräteklasse CDROM), für Laufwerke von Virenscannern (alle Geräteklassen) und für USB-Geräte von Virtualisierungs-Software wie VMware oder VirtualBox, um USB in den virtuellen Maschinen verfügbar zu machen (Geräteklasse USB).
Filtertreiber sollten eigentlich alles was sie nichts angeht eins zu eins durchreichen. Tut das ein Filter-Treiber nicht, sind Probleme vorprogrammiert. Seit bald zehn Jahren gibts Probleme mit dem Acronis Filtertreiber snapman, siehe hier: https://www.terabyteunlimited.com/kb/article.php?id=410

Auch nach Betriebssystem-Updates passen gerne mal irgendwelche Randbedingungen nicht mehr und die 'gefilterten' Geräte funktionieren nicht mehr wie erwartet oder Installation neuer Geräte dieser Geräteklasse schlägt reproduzierbar fehl.
Die Verweise auf die Filter-Treiber finden sich in der Registry unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{GUID}. GUID ist ein 'Global Unique Identifier', sowas wie {4D36E967-E325-11CE-BFC1-08002BE10318}.
Die betreffenden Werte sind UpperFilters und LowerFilters.
Oben erwähnte GUIDs sind:
GUID_DEVCLASS_VOLUME  = {71a27cdd-812a-11d0-bec7-08002be2092f}
GUID_DEVCLASS_DISKDRIVE  = {4d36e967-e325-11ce-bfc1-08002be10318}
GUID_DEVCLASS_CDROM  = {4d36e965-e325-11ce-bfc1-08002be10318}
GUID_DEVCLASS_FLOPPYDISK  = {4d36e980-e325-11ce-bfc1-08002be10318}
GUID_DEVCLASS_USB  = {36fc9e60-c465-11cf-8056-444553540000}
Bei einer frischen Windows-Installation findet sich bei GUID_DEVCLASS_DISKDRIVE der Wert UpperFilters mit "PartMgr" (und ab Vista Lowerfilters mit "EhStorClass"), sonst sind keine vorhanden.
Vorgefundene Filter-Treiber schaut man sich erstmal unter C:\Windows\System32\drivers an, um die zugehörige Software zu identifizieren. Findet sich kein Update für die betreffende Software, legt man den Filter-Treiber am einfachsten lahm, indem man den Namen des Werts umbenennt (falls es der einzige Eintrag im Wert ist) oder indem man den Wert entsprechend editiert - der Registry-Editor zeigt beim Ändern jeden Eintrag in einer Zeile, hier kann man dann eine oder mehrere Zeilen löschen oder, falls man entsprechenden Hinweise im Netz gefunden hat, deren Reihenfolge ändern. Vorher am bestesten alle kopieren und in einem neuen MULTI_SZ-Wert parken, falls man doch den alten Zustand wiederherstellen will.


Digital-Kameras, Smartphones, Tablets

Digital-Kameras, Smartphones u.a. können sich per USB entweder als Massenspeicher oder als Bilderfassungs- bzw. Multimediagerät zu erkennen geben (Picture Transfer Protocol - PTP oder Multimedia Transfer Protocol - MTP). Bei manchen Modellen hat man die Wahl, bei den meisten aber nicht. Nur beim Massenspeicherprotokoll bekommt man einen Laufwerksbuchstaben.
Um für PTP/MTP einen Laufwerksbuchstaben zu bekommen, brauchts extra Software, z.B. PTPdrive: http://www.ptpdrive.com ($29 USD).


Sonstige Problem-Software

Viren- und Spyware-Scanner, Personal Firewalls, virtuelle CD-Laufwerks-Software, Adobe Elements (dessen Download-Manager), Photoshop Elements (dessen Dienst 'Photoshop Elements Device Connect'), Optimierungs-Tools - alle sind Kandidaten, merkwürdige Effekte zu verursachen. Im Zweifelsfall deinstallieren und sehen, ob der Effekt dann verschwunden ist...


Verzweiflungstaten

Wenn alles nichts hilft, probiert man

 


  Keine Dateien größer als 4 GB
 
USB-Sticks werden wohl ausschließlich mit FAT oder FAT32 formatiert ausgeliefert. Beide Dateisysteme können keine Dateien speichern, die größer als knapp 4 Gigabyte sind (232 Bytes). Der Versuch über 4GB hinaus zu schreiben führt zum etwas irreführenden Fehler 39 (ERROR_HANDLE_DISK_FULL).
Abhilfe schafft unter Windows NT, 2000, XP usw. das moderne NTFS, siehe hier.
Aufpassen: Mit NTFS hat der Stick dann bis einschließlich Windows 7 einen Schreibcache (egal was man bei den Richtlinien "Für Schreibcache und sicheres Entfernen" einstellt), also immer schön 'Auswerfen' oder 'Hardware sicher entfernen' benutzen...
Ab Windows 8 haben die Richtlinien-Einstellungen der Disk für NTFS-formatierte USB-Laufwerke tatsächlich die erwartete Wirkung.

 


  Zugriff verweigert auf NTFS-Laufwerk
 
Wenn ein Laufwerk mit NTFS fomatiert ist, hat man mit Zugriffsrechten zu tun. Dateien die ein Admin auf dieses Laufwerk schreibt können nur von Admins geschrieben und gelöscht werden.
Um Vollzugriff für jeden auf alle Dateien und Ordner eines Laufwerks zu erhalten, kann man das CACLS-Kommando nutzen (natürlich muß man dazu Admin sein):
cacls X: /T /G Jeder:F
X: muß durch den richtigen Laufwerkbuchstaben ersetzt werden, "Jeder" muß ggf. an die Windows-Sprache angepaßt werden - auf einem englischen Windows ist das z.B. "Everyone".

 


  Ansteigende Laufwerks-Buchstaben
 
Bekommen USB-Laufwerke bei jedem Anschließen einen neuen Buchstaben, vermurkst eine Fremd-Software irgendwas. Bekannt dafür war mal eine tolle Software namens 'Spyware Doctor'. In letzter Zeit gibts keine Berichte mehr - das Problem wurde wohl vom Hersteller behoben.

 


  Überprüfen und reparieren unter Vista und Windows 7
 
Beim Anschließen eines FAT oder FAT32-formatierten USB-Laufwerks kommen Vista und Windows 7 gerne mit "Überprüfen und reparieren", auf englisch "Scan and fix", und zwar dann wenn im Bootsektor ein bestimmtes Bit gesetzt ist. Besagtes Bit befindet sich im vielsagend benamten Wert "BS_Reserved1", siehe Microsofts FAT32 File System Specification: fatgen103.doc.
Normalerweise ist der Wert 0, ist er 1 springt "Scan and Fix" an.
Ich habe ein kleines Überwachungs-Tool geschrieben, um zu beobachten, wann genau das Bit gesetzt und wieder zurückgesetzt wird: WatchFatDirtyBit.zip.
Beobachtungen unter Win7-SP1:
Es wird immer dann gesetzt, wenn eine Dateigröße geändert sowie wenn eine Datei angelegt oder gelöscht wird.
Zurückgesetzt wird es ca. 1,5 Sekunden nach einer Größenänderung, aber erst ca. 30 Sekunden nachdem eine Datei gelöscht wurde, ebenso wenn eine Datei neu angelegt wurde ohne Daten zu schreiben, was aber im Alltag wohl kaum vorkommt.
Ob ein Schreibcache aktiv ist, spielt offenbar keine Rolle.
Wenn man also eine Datei auf einem FAT-formatierten USB-Laufwerk löscht, kurz wartet bis es aufhört zu blinken und einfach abzieht, hat man ein gesetztes "Dirty-Bit" und Vista/Win7 begrüßen das Laufwerk beim nächsten Anschließen mit Scan&Fix. Also doch besser "Auswerfen" oder "Hardware sicher entfernen" nutzen... Unter Windows 8 bleibt das Dirty-Bit nach jedem Schreibzugriff mindestens 22 Sekunden gesetzt. Scan&Fix springt deswegen aber nicht an (Gibts das noch?).

 


  Laufwerks-Buchstaben von CD-Laufwerken nicht beständig
 
Lang ist her...
Ändern sich Buchstaben von CD-Laufwerken bei jedem Booten wieder zurück, hat man es wohl mit dem 'ZoneAlarm-Problem' zu tun. Es gibt Berichte, dass man Zone-Alarm deinstallieren soll, dann die Buchtstaben ändert, neu startet und Zone-Alarm wieder installieren kann. Andere berichten, dass das nicht hilft und auch dann die Buchstaben von CD-Laufwerken wieder geändert werden. Das Problem gibts seit Version 6.5, mit V6.1 tritt es nicht auf. Die alte Version gibts noch zum Download.
Es wurde inzwischen berichtet, dass V6.5.737 das Problem behebt. Andere schreiben, dass der Effekt selbst bei eine 7.x beobachtet wurde...
Es gibt Berichte, dass die Nokia Suite 7.x dieses Problem auch verursacht.
Ein weiterer Kandidat für diesen Effekt scheint Norton GoBack zu sein.

 


  Eingeschränkte Nutzer dürfen keine Datenträger auswerfen
 
Unter XP dürfen eingeschränkte Nutzer keine Datenträger auswerfen (im Windows-Explorer ein Laufwerk rechts-klicken -> Auswerfen). 'Auswerfen' ist die richtige Wahl, um Karten in internen Kartenlesern abzumelden. 'Hardware sicher entfernen' ist hier ungeeignet, da es das ganze Gerät abmeldet und das läßt sich dann ohne Neustart auch nicht einfach zurückholen.
Auswerfen für alle interaktiven Nutzer kann man per Richtlinie zulassen:
Systemsteuerung
 Verwaltung
  Lokale Sicherheitseinstellungen
   Lokale Richtlinien
    Sicherheitsoptionen
     Geräte: Formatieren und Auswerfen von Wechselmedien zulassen
Hier "Administratoren und interaktive Nutzer" auswählen. Oder diese REG-Datei doppelklicken: AllocateDASD2.reg.
Ab der nächsten Anmeldung dürfen dann auch eingeschränkte Nutzer Wechseldatenträger auswerfen.
Bei früheren Tests incl. XP-SP2 hat das Ganze nicht geholfen, unter XP-SP2 Patchstand April 2007 funktioniert es...

 


  USB-Stick ist schreibgeschützt
 
Manche USB-Sticks haben einen kleinen Schreibschutzschalter...

Auch XP ab SP2 kann USB-Laufwerke schreibschützen. Die Einstellung findet sich in der Registry unter
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies.
Der Wert 'WriteProtect' sollte nicht vorhanden sein oder auf '0' stehen.

Flash-Speicher hat eine begrenzte Lebensdauer. Meist wird eine Anzahl von 100.000 Schreibzyklen garantiert, die meisten Zellen halten aber weit länger. Defekte Zellen müssen aber ersetzt werden. Deshalb haben Flash-Speicher Reserve-Zellen, die defekte Zellen ersetzen können. Der Flash-Controller erledigt das im Hintergrund wenn beim Lesen (meist korrigierbare) Fehler aufgetreten sind. Sind aber alle Reserve-Zellen aufgebraucht, bleibt dem Flash-Controller nichts weiter übrig, als weitere Schreibzugriffe zurückzuweisen, der Stick ist dann "schreibgeschützt". Man kann dann seine Daten herunterkopieren, das Gerät unbrauchbar machen (überschreiben geht ja nicht) und in den Elektronik-Schrott geben. Vorher sicherheitshalber noch an einem anderen Rechner probieren, falls es sich doch nur um ein USB-Problem handelt...
Hat ein neuer Stick schon so viel defekte Zellen wie Reserve-Zellen, fällt das erst auf, wenn beim Lesen ein (meist korrigierbarer) Fehler aufgetreten ist und der Flashblock ersetzt werden soll. Das kann durchaus passieren, ohne das das Laufwerk jemals nennenswert gefüllt war, da Schreibzugiffe vom Flash-Controller immer auf alle physischen Blöcke möglichst gleichmäßig verteilt werden.
Also am besten nach dem Kauf einmal testweise mit Daten füllen oder ein Test-Tool drüberlaufen lassen:

Das erlaubt aber nur eine Aussage über den aktuellen Stand der Dinge ('mindestens eine Reserve-Zelle übrig') - ein Defekt kann jederzeit auftreten, wichtige Daten niemals nur einem USB-Stick anvertrauen!

 


  Bitte Datenträger einlegen
 
Da sich USB-Sticks fast durchweg als "Wechseldatenträger" zu erkennen geben, also behaupten, dass sich ihr Datenträger unabhängig vom Laufwerk austauschen ließe, kommt Windows mit "Bitte Datenträger einlegen", wenn ein USB-Stick bei Defekt die Größe Null meldet.

Bei manchem USB-Stick handelt sich aber tatsächlich um einen Kartenleser, allerdings mit fest verbauter Flash-Karte. Deshalb lohnt es sich, den Stick vorsichtig zu öffnen bevor man ihn entsorgt oder zum professionellen Datenretter bringt. Welche Freude, wenn dann eine funktionierende SD-Karte zum Vorschein kommt, wie hier bei einem ExtreMemory Nano.

 


  AutoRun geht / geht nicht
 
AutoRun kann per Explorer-Richtlinien (englisch 'Policies') abhängig vom Laufwerkstyp und vom Laufwerksbuchstaben systemweit und nutzerabhängig eingestellt werden. Microsofts TweakUI machts nur für den aktuellen Nutzer, nicht für Festplatten und aktiviert's nebenbei für Netz-Laufwerke... Deshalb habe ich ein eigenes Tool geschrieben:
AutoRunSetttings

Hat man in der Liste der AutoPlay-Handler unerwünschte Einträge, kann man sie mit dem passenden Tool entfernen:
http://windowsxp.mvps.org/autoplayhandlers.htm
oder
http://www.free-codecs.com/autoplay_repair_download.htm

Am besten alles abschalten: USB-Stick als Trojaner.

 


  USB-Geräte werden als 'unknown device' erkannt
 
Werden USB-Geräte plötzlich nur noch als 'unknown device' erkannt, liegt das oft an einem Problem mit dem Windows Power-Management. Das kann man für einzelne oder für alle USB-Controller deaktivieren:
http://support.microsoft.com/?scid=kb;en-us;895962

Die elektronischen Bauteile USB-Controller und Geräte altern und verändern ihre Eigenschaften (Kondesatoren verlieren z.B. Kapazität). Irgenwann funktioniert das einfach nicht mehr so wie sich das die Entwickler mal gedacht haben...
Bei USB-Laufwerken soll gelegentlich ein defekter Quarz die Ausfall-Ursache sein - hier lohnt vielleicht ein Tausch.

 


  XP fragt nach Treibern
 
USB-Massenspeicher funktionieren unter XP mit den mitgelieferten Treibern. Doch manchmal fragt XP trotzdem danach, weil es keine findet...

Wo die Treiber zu suchen sind, steht in der Registry:
Start->Ausführen-> Regedit, unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion den Wert 'DevicePath' kontrollieren. Der muß auf '%SystemRoot%\inf' zeigen. Zusätzliche Einträge, jeweils mit Semikolon getrennt, sind ok, aber '%SystemRoot%\inf' muß dabei sein. Screenshot
Dann löscht man noch die Datei C:\WINDOWS\inf\infcache.1 - bei nächsten Systemstart wird sie neu angelegt. Der Ordner und die Datei sind 'versteckt', um sie im Windows-Explorer zu sehen:
Extras->Ordneroptionen, Reiter "Ansicht" "Alle Dateien und Ordner anzeigen" auswählen.
Die Dateien USBSTOR.INF und USBSTOR.PNF müssen im Ordner C:\Windows\INF vorhanden sein. Falls nicht, kopiert man sie von einen anderen Rechner mit möglichst gleichem Windows.

 


  Vista fragt nach Treibern oder mag keine installieren
 
Hier trifft das Gleiche zu wie für XP oben beschrieben. Weiterhin scheint Vista dazu zu neigen, die Dateien USBSTOR.INF und USBSTOR.PNF im Ordner C:\Windows\INF verschwinden zu lassen. Vermutlich fehlen dann dort noch mehr Dateien, USBSTOR wird einfach am häufigsten benötigt.
Vista hat Kopien der Dateien in C:\Windows\System32\DriverStore\FileRepository - einfach beide nach C:\Windows\INF kopieren - und schon geht's wieder.

 


  Sie müssen Mitglied der Administratorengruppe sein / Neue Hardware gefunden
 
Wenn XP beim Anschließen eines USB-Laufwerks mit einem Login-Dialog mit dem Hinweis "Sie müssen Mitglied der Administratorengruppe sein, um diese Hardwarekomponente installieren zu können" oder "Neue Hardware gefunden" kommt, traut es seinen eigenen Treibern oder anderen beteiligten Dateien nicht. Erstere Meldung kommt beim Arbeiten als eingeschränkter Nutzer, letztere als Admin:
Die Windows-Treiber sind digital signiert - um die Signatur zu überprüfen, muß der 'Kryptographie-Dienst' laufen und funktionieren: Start->Ausführen-> services.msc, hier sollte der 'Kryptographie-Dienst' als 'gestartet' geführt werden.

Als nächstes lohnt ein Blick in die Log-Datei C:\Windows\setupapi.log. Fehlgeschlagene Signatur-Tests finden sich hier.
Schuld ist oft ein nicht signierter Filter-Treiber, insbesondere bei U3-Sticks: Hier will Windows für deren gefälschtes CD-ROM-Laufwerk den Filter-Treiber laden, den eine CD-Brenn-Software für CD-Laufwerke installiert hat.
Die Signaturen der Windows-Dateien kann man auch manuell überprüfen lassen: Start -> Ausführen, sigverif.
Wurden problematische Dateien identifiziert, beschafft man Ersatz mit exakt gleicher Version von einem anderen Rechner oder macht gleich eine Reparaturinstalltion.

Bleibt noch die Möglichkeit, dass die Datenbank des Kryptographie-Dienstes ungültige Daten enthält. Wie man das behebt, steht bei Microsoft:
http://support.microsoft.com/kb/822798/de
Die beschriebenen Symptome sind andere, aber die Reparatur-Hinweise passen.

 


  USB-Laufwerk funktioniert nicht stabil
 
Geht ein Stick nur an einem Rechner nicht oder nicht zuverlässig, hilft oft ein aktualisierter Mainboard/Chipsatz-Treiber.
Hilft das nicht, verträgt sich das USB-Gerät vielleicht einfach nicht mit dessen USB-Controller - sowas kommt vor, bei USB-Festplatten eher als bei Sticks. Deshalb ist es von Vorteil, neben den Onboard-Ports eine USB-Controller-Karte im Rechner zu haben, auf die man ausweichen kann. Hat man einen freien PCIe-Slot, greift man zu einem USB3-Controller - die liefern immer genug Strom und auch USB2-Geräte laufen daran zu Höchstform auf. Gut und billig sind die Zwei-Port-Karten mit Renesas-Chip, z.B. diese bei Reichelt.

Wenn ein USB-Gerät am USB-Anschluß des Rechners nicht oder nicht stabil laufen will, kann man sein Glück auch mit dem Dazwischenschalten eines USB-Hubs versuchen.

Problematisch sind auch billige USB-Verlängerungen - je dünner und länger, um so eher gibts Probleme. Wenn nicht 'USB 2.0' dransteht, taugen sie dafür meist auch nicht. Einem Kabel sieht man die Qualität von außen nicht an - ein immerhin gutes Zeichen ist die bei transparent isolierten Kabeln zu sehende Schirmung aus dichtem Drahtgeflecht.
Beim Verlegen ist die Nähe von Strom-Kabeln zu meiden.

USB-Ports vorne am Rechner machen auch gerne Probleme, weil sie per Kabel durch den 'verstrahlten' Rechner geführt werden, während sich die hinteren Ports direkt auf dem Mainboard befinden.
Außerdem werden sie durch häufige Benutzung mechanisch beansprucht - hier brechen dann gerne Lötstellen und liefern nur noch einen Wackelkontakt.

Möglich ist auch, dass der Strom knapp wird. Insbesondere 2,5-Zoll-Festplatten ohne Netzteil und vereinzelt auch interne Card-Reader ziehen z.T. Strom jenseits der Limits. Wenn dann noch ein - eigentlich harmloser - USB-Stick dazu kommt, kanns schon zu viel sein.

Man kann auch versuchen, testweise alle anderen USB-Geräte abzuklemmen. Kandidaten für Störungen sind vor allem solche Geräte, die nicht mit Windows-eigenen Treibern laufen und zudem ständig Daten übertragen, z.B. WebCams.

Probleme aus heiterem Himmel sind meist der Hardware zuzuschreiben. Bei vielen USB-Hubs wird deren Controller-Chip glühend heiß - die Lebensdauer reicht genau bis zum Ende der Garantiezeit. Typische Auswirkung ist ein merkwürdiges Verhalten der dort angeschlossenen Geräte, einen Totalausfall habe ich noch nicht erlebt.
Auch USB-Host-Controller im Mainboard-Chipsatz halten nicht ewig, dann hilft eine USB-PCI-Karte, siehe oben.
Bei USB-Hubs mit Netzteil ("selfpowered") werden beim eingestecktem Stromstecker die 5V des USB-Anschlusses nicht abgetrennt, so dass u.U. Strom in den Rechner zurückfließt. Das kann zu merkwürdigen Effekten und langfristig zum (Teil)-Defekt des USB-Controllers zu führen.
Einfacher Test: Steckt man den Stromstecker stromlos in den Hub sollte dieser nicht funktionieren.

Manchmal hilft ein USB-Kahlschlag, d.h. alle USB-Geräte aus der Konfiguration zu löschen. Das geht am einfachsten mit Hilfe des Microsoft-Tools DevCon und der 'RenewUSB.bat' von Rob van der Woude's Scripting Pages

Die richtige devcon.exe dann ins selbe Verzeichnis oder eines auf das die PATH-Variable zeigt zu stellen. Die RenewUSB.bat anzupassen geht natürlich auch.

Aufräumen geht aber auch gezielt von Hand:
Folgende zwei Zeilen in den Windows Editor einfügen und als DevManager.CMD speichern:

set DEVMGR_SHOW_NONPRESENT_DEVICES=1
devmgmt.msc
Darüber gestartet zeigt der Geräte-Manager auch nicht vorhandene Geräte, wenn dort im Menü Ansicht der Haken bei "Ausgeblendete Geräte anzeigen" gesetzt wird. Ab Vista muß man das "Als Administrator" ausführen, sonst ist die Variable wirkungslos.
Unter 'Laufwerke' hellgrau angezeigte USB-Geraete sind derzeit nicht angeschlossen. Diese und die die man vorraussichtlich nicht wieder braucht oder die mal neu erkannt werden sollen, löscht man einfach. Selbiges nochmal unter 'USB-Controller' und 'Speichervolumes'.

Mein Konsolen-Programm DriveCleanup macht das automatisch mit allen derzeit nicht angeschlossenen USB-Laufwerken, während DeviceCleanup ein grafisches Tool ist, das alle derzeit nicht angeschlossenen Geräte zeigt und diese entfernen kann.

Hat man generelle Probleme mit den Laufwerks-Buchstaben, kann man hier einen Kahlschlag bei den Mount-Points versuchen:
Im Registry-Editor folgende Abschnitte umbenennen oder löschen und dann booten:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Aber Vorsicht: Wenn das Windows-Laufwerk nicht den Buchstaben hat, den es bei einem frischen Setup bekäme, wird Windows möglicherweise nicht mehr starten.. Das kann z.B. durch beim Setup angeschlossene USB-Laufwerke - also auch interne CardReader - verursacht werden. XP scheint eine Art Not-Mount-Mechanismus zu haben, damit das System-Laufwerk immer einen Laufwerksbuchstaben bekommt. Wenn der normale Mount-Mechanismus dann anderer Meinung ist, kann das System-Laufwerk auch mal einen zweiten Buchstaben bekommen.

Um DEVMGR_SHOW_NONPRESENT_DEVICES=1 zum Standard zu machen, folgende Datei herunterladen und doppelklicken: DevMgr_Show_1.reg
Ab dem nächsten Login wird die Variable wirksam. Die Datei setzt auch gleich DEVMGR_SHOW_DETAILS=1, um unter XP-SP1 den Reiter "Details" in Eigenschaft-Dialogen von Geräten zu aktivieren.

 


  Datenverlust ab bestimmten 'Füllungsgrad'
 
Wenn ein USB-Stick immer ab einem bestimmten Füllungsgrad fehlerhaft reagiert, könnte es sich um eine Fälschung handeln, die nur einen Bruchteil des versprochenen Speichers besitzt.
Ein weiteres Zeichen für so eine Fälschung ist, dass das Formatieren mit NTFS fehlschlägt, während FAT/FAT32 auf den ersten Blick funktioniert. Das liegt daran, dass das NTFS-Dateisystem in die Mitte des Laufwerks geschrieben wird, und das geht dann ins Leere.

Bisher mußte man damit nur bei extra günstigen Angeboten beim Auktionshaus rechnen, inzwischen kann man überall reinfallen.

Verdächtige und neue Sticks kann man mit H2TestW von der c't testen.
Ebenfalls geeignet ist der USB Flash Drive Tester von vconsole.com.

Hat man einen Stick als Fälschung entlarvt, legt man sich eine entsprechend kleine Partition an, um den restlichen, nicht vorhandenen Speicher von der Nutzung auszuschließen.
Unter Windows 2000, XP und höher wird das Anlegen von Partitionen auf Wechseldatenträgern mit Bordmitteln nicht unterstützt. Hier hilft z.B. der EaseUS Partition Master, oder man nimmt Linux, DOS oder den Ranish Partition Manager von einer Bootdiskette.
Anschließend nochmal einen Test laufen lassen.

 


  Datenverlust beim Schreiben nach Standby und Ruhezustand
 
Nach Standby und Ruhezustand wird der Systemzustand exakt wiederhergestellt. Wenn man während der Ruhephase ein externes Laufwerk abzieht ist das ziemlich gemein, weil während des Schlafs nicht angemessen darauf reagiert werden kann.
Bei NTFS-Laufwerken werden manche, weniger wichtige Schreibzugriffe bis zu einer Stunde zurückgehalten - dummerweise wird vor Standby und Ruhezustand offenbar nicht 'geflusht', mit Sicherheit nicht dismounted - das würde alle offenen Handles ungültig machen.
Wenn man also ein Laufwerk entfernen möchte, sollte man das tun, bevor man den Rechner schlafen schickt - sonst gibts u.U. ein böses Erwachen :-)

 


  Verzögerung beim Anschließen
 
Reagiert Windows plötzlich verzögert auf das Anschließen von USB-Geräten, ist dafür meist kürzlich installierte Software verantwortlich.
Bekannt sind frühe Versionen der Treibersoftware zu NECs USB 3.0 Controller. Die trägt auch ihre "nusb3mon.exe" in den Autostart ein und genau diese bewirkt so eine Verzögerung von ca. 5 Sekunden.
Sinn und Zweck der nusb3mon.exe ist wohl, mehr oder weniger hilfreiche Hinweise anzuzeigen, z.B. "Gerät unterstuetzt hoehere Datenraten", siehe http://www.file.net/prozess/nusb3mon.exe.html. Der USB-Controller funktioniert jedenfalls auch ohne dass nusb3mon läuft.

 


  USB-Stick oder Platte formatieren
 
Läßt sich ein Stick nicht mehr formatieren, versucht man zunächt die eventuell mitgelieferte Software. Gibt es keine, kann man das HP USB Disk Storage Format Tool versuchen. Am besten alle anderen USB-Laufwerke und Card-Reader abklemmen - das Tool verzählt sich sonst gerne mal bei den Laufwerken.
Dann gibts noch die 'SD Memory Card Formatting Software' von panasonic.jp. Eigentlich ist es für SD-Karten gedacht, funktioniert aber auch mit USB-Sticks, sofern sie sich als Wechseldatenträger zu erkennen geben.

Weitere Tools zum Partitionieren und Formatieren von USB-Sticks gibts hier: RMPrepUSB Und hier USB Boot Making Applications

Wurde ein Stick wegen Problemen formatiert und hat dann nur noch einen Bruchteil seiner Kapazität, darf man ihn als hinüber betrachten.

Ob überhaupt noch Zugriff auf den Datenträger möglich ist, testet man am besten mit Hex Workshop.
'Disk' -> 'Open Drive'
Hier das richtige Laufwerk anhand der Größe auswählen. Man sieht dann Sektor 0 in dem sich bei Festplatten die Partitionstabelle befindet. Bei Wechseldatenträgern kann man hier auf eine Partitionstabelle oder einen Boot-Sektor treffen ('Super-Floppy').
Oben genannte Formatier-Tools nutzen die Variante mit Partitions-Tabelle. Windows XP formatiert neue Wechseldatenträger ohne Partitions-Tabelle, also als 'Super-Floppy'. Digitalkameras erwarten meist (oder immer?) die Variante mit Partitionstabelle.

Will man einen Datenträger zurücksetzen, überschreibt man einfach den Sektor 0 mit Nullen:
Mit der Maus alles markieren, '&' klicken, OK, speichern.
Alternativ mein DiskErase - einfach Disk auswählen, 'Erase!' klicken, dann 'Cancel' - die ersten Sektoren sind dann schon überschrieben.

FAT32 auf Laufwerken >32 GB
Seit XP hat Microsoft das Formatieren von Laufwerken größer als 32 GB ohne nachvollziehbaren Grund blockiert. Bei einem Foto-Speicher oder MP3-Player ist FAT32 aber Vorraussetzung für dessen Standalone-Funktion. Auch wenn ein Laufwerk an jedem Rechner mit Windows 98/ME funktionieren soll, ist FAT32 Pflicht. Hier hilft das Kommandozeilen-Tool H2Format von der c't. Es funktioniert nur, wenn es eine unformatierte Partition vorfindet. Dazu muß man über die Datenträgerverwaltung die vorhandene Partition löschen, eine neue anlegen und dann 'Jetzt nicht formatieren' auswählen. H2Format schreibt dann in nullkommanix ein leeres FAT32-Dateisystem.
Es funktioniert anlog zum bekannten DOS- und Windows-Kommandozeilen-Tool FORMAT, Bsp:

h2format x:
Ebenfalls geeignet scheint der Fat32Formatter.
Unter Linux nimmt man "MakeDosFileSystem", kurz MKDOSFS. Davon gibts auch eine Windows-Portierung:
http://www1.mager.org/mkdosfs

 


  Auf USB-Stick wird nur die erste Partition erkannt
 
Die meisten USB-Sticks behaupten, sie hätten, so wie ein Kartenleser, einen wechselbaren Datenträger - Windows zeigt sie daher als 'Wechseldatenträger'. Nur einige wenige USB-Sticks melden sich wie eine USB-Festplatte, z.B. der Sandisk Extreme - der ist schnell, schreibt auch kleine Blöcke schnell und wird im Leerlauf nicht warm (Stand Mitte 2013). Update November 2013: Ein frisch gekaufter Sandisk Extreme meldete sich als Wechseldatenträger, ein weiterer (anderer Händler) als Festplatte. Also Zufall, was man bekommt.

Das Partitionieren von Wechseldatenträgern wird in der NT-Linie (NT4, 2000, XP, Vista Win7/8/10) nicht unterstützt. Sind mehrere Partitionen vorhanden, wird nur die erste eingebunden.
Update 2017Ab Windows 10 1703 werden mehrere Partitionen auf Wechseldatenträgern unterstützt.
Da ist nichts zu machen. Fast nichts. Letztlich hängt es nur an einem Bit im Device-Descriptor, das Removable Media Bit (RMB). Zaubert man das weg, wird das Laufwerk als "Lokaler Datenträger", also wie eine Festplatte erkannt und alle vorhandenen Partitionen werden eingebunden, auch die Datenträgerverwaltung spielt mit.
Das Removable Media Bit kann entweder in der Hardware des USB-Sticks geändert werden, oder per Windows-Filtertreiber.
Ändern in der Hardware klappt bei manchen älteren Sticks mit dem Tool Lexar BootIt.
Hier eine Liste mit Sticks mit denen es funktioniert hat, allerdings wechseln die Hersteller immer wieder die verbauten USB-Controller, so dass sich das jederzeit ändern kann.

  • Corsair Flash Voyager 8 GB (VID_090C&PID_1000, einige Jahre alt)
  • Corsair Flash Voyager 16 GB (nicht VID_1B1C&PID_1AB1)
  • Corsair Flash Voyager GT 4 GB (VID_1B1C&PID_1A90)
  • Corsair Flash Voyager GT 16 GB (VID_1B1C&PID_1A90)
  • Corsair Flash Survivor 32GB
  • OCZ Rally2 32 GB
  • OCZ Rally2 Turbo 8 GB
  • OCZ ATV 4GB
  • Buffalo Firestixx 1 GB (RUF2-S)
  • Buffalo Super High Speed USB Flash Type R 8 GB
  • Super Talent Pico-C Chrom 8GB (Stand 2011: geht nicht mehr)
  • Intenso USB Drive 8 GB Slim Line
  • Sony Tiny Vault 2GB
  • LG USB Drive 2 GB (UB2GVMS01)
  • Ativa 325-300
  • PQI Intelligent Drive i820 4 GB (8 GB geht nicht!)
  • Powerram mini Pro (16GB)
  • Verbatim 4 GB Store' n Go
  • Sony Micro Vault 8 GB
  • Trekstor USB-Stick QU USB Device
  • Lexar JumpDrive TwistTurn 4GB (LJDTT4GB) (Stand Mitte 2012)
  • ATP Nano Vision (4GB) (Stand April 2013)
  • Cruzer Blade 64GB (Stand Dezember 2013)
Seit etwa 2010 wurden keine neuen Sticks mehr gemeldet, offenbar wird der Controller mit dem das Lexar-Tool funktioniert nicht mehr produziert.

Ein Transcend JetFlash 600 16GB wurde mit dem Lexar-Tool möglicherweise zerstört.

Hitachi Filter-Treiber

Zum Entfernen des RMB hat Hitachi für seine Microdrives (Mini-Festplatten im Format einer Compact-Flash-Karte) einen Filter-Treiber entwickelt:
xpfildrvr1224_320.zip
Dieser liegt nur als 32-Bit-Version vor, auf 64-Bit-Editionen von Windows funktioniert er somit nicht.

Durch Editieren der enthaltenen INF-Datei, kann man den Filter-Treiber auch für beliebige andere Wechseldatenträger benutzen:
Für die Erkennung von Geräten sind die Zeilen im Abschnitt [cfadisk_device] zuständig:

[cfadisk_device]
%Microdrive_devdesc% = cfadisk_install,IDE\DiskIBM-DSCM-11000__________________________SC2IC801

"IDE\DiskIBM-DSCM-11000__________________________SC2IC801" ist die Geräte-ID eines der von Haus aus unterstützten Microdrives.
Analog dazu fügt man je eine Zeile pro gewünschtem USB-Wechseldatenträger hinzu. Die ID findet man im Geräte-Mangager: Man suche unter "Laufwerke" den USB-Stick. Rechtsklick -> Eigenschaften. Im Reiter "Details" ist schon "Geräteinstanz-ID" ausgewählt. Man klicke auf die ID, und drücke "Strg+C" - die ID ist jetzt in der Windows Zwischenablage und kann per Strg+V anderswo eingefügt werden.

Beispiel:
USBSTOR\DISK&VEN_LEXAR&PROD_JUMPDRIVE&REV_1.30\K326441127040&0
Davon brauchen wird den fett gedruckten Teil:

[cfadisk_device]
%Microdrive_devdesc% = cfadisk_install,USBSTOR\DISK&VEN_LEXAR&PROD_JUMPDRIVE&REV_1.30

Oder - viel einfacher - mit folgendem für USB-Laufwerke universellen Eintrag:
%Microdrive_devdesc% = cfadisk_install,USBSTOR\GenDisk

In der letzten Zeile der INF-Datei ändert man noch "Hitachi Microdrive" in einen beliebigen Namen, z.B. in "RemovableToFixed".

Im Geräte-Manager wieder den USB-Stick rechtsklicken -> "Treiber aktualisieren". "Nein, diesmal nicht" -> Weiter -> "Software von einer Liste..." -> Weiter -> "Nicht suchen, sondern..." -> Weiter -> "Datenträger" -> im Verzeichnis mit der modifizierten cfadisk.inf eben jene auswählen -> OK. Jetzt steht in der Liste unter 'Modell' der modifizierte Name aus der INF-Datei -> Weiter -> Warnung mit 'Ja' beantworten -> Signatur-Warnung mit "Installation fortsetzten" beantworten -> Fertigstellen. Das Laufwerk wird jetzt neu erkannt, und zwar als Festplatte.
Man darf nun Partitionen anlegen, die Richtlinie "Für Geschwindigkeit optimieren" führt auf FAT-Partitionen tatsächlich zur Aktivierung eines Schreibcaches (das kann man aber auch anders haben) und Windows legt den allseits beliebten Ordner "System Volume Information" an...
Eine automatisierte Installation per Microsoft DEVCON ist mir nicht gelungen.

Rückgängig macht man die Nutzung des Filtertreibers indem man im Geräte-Manger das betreffenden Laufwerk löscht. Beim nächsten Anschließen wird das Laufwerk neu erkannt, wobei der Filtertreiber nicht mit installiert wird.

Auf Basis des Hitachi-Treibers habe ich auch eine x64-Version mit und ohne Testzertifikat gebaut, außerdem einen Treiber der Gegenteil macht, also das RMB hinzufügt:
RMB entfernen - 'Removable to Fixed':r2f.zip
RMB hinzufügen - 'Fixed to Removable':f2r.zip

Eine Alternative zm Hitachi-Treiber ist DiskMod, siehe hier: http://reboot.pro/topic/9461-page-file-in-usb-hard-disk

 


  Laufwerk aus "Hardware sicher entfernen" entfernen
 
Interne Kartenleser von Desktop-PCs sind meist USB-Geräte. Ein USB-Gerät hat keine Möglichkeit zu sagen "Ich bin ein internes Gerät und kann nicht entfernt werden". Im Geräte-Deskriptor von USB-Hubs gibt es zwar ein Bitfeld "DeviceRemovable" in dem hinterlegt ist, an welchen Ports Geräte im Betrieb entfernt werden können, hier habe ich bei Root-Hubs aber noch nie gesehen, dass ein Port als 'nicht entfernbar' gekennzeichnet war. Beim einem USB-Stick mit internem Hub habe ich tatsächlich einen 'nicht entfernbaren' Port vorgefunden, Windows scheint sich aber nicht dafür zu interessieren. Unter Windows 8 gibt zudem für jeden Port die Datenstruktur USB_PORT_PROPERTIES mit dem Wert "PortIsUserConnectable", Wirkung auch hier unbekannt.
Somit betrachtet Windows anscheinend alle USB-Geräte als entfernbar und zeigt auch interne USB-Kartenleser unter "Hardware sicher entfernen".
Gleiches gilt für interne SATA-Laufwerke, wenn der SATA-Treiber sie als "entfernbar" meldet.

Soweit bekannt, werden bei "Hardware sicher entfernen" Geräte gelistet, die als "entfernbar" (removable) gekennzeichnet sind.
Unter XP durften sie zudem nicht fürs 'überraschende Entfernen geeignet' (surprise removal ok) sein.
Das sind in der cfgmgr32.h definierte, bit-kodierte Flags:

#define CM_DEVCAP_REMOVABLE         (0x00000004)
#define CM_DEVCAP_SURPRISEREMOVALOK (0x00000080)
Der zuständige Wert in der Registry heißt "Capabilities" und findet sich für jedes Gerät. Geräte stehen unter
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
Weiter geht es mit der Hardware-ID, bei USB-Geräten sowas wie USB\VID_1758&PID_2004\050712014270000083

Die findet sich im Geräte-Manager beim USB-Gerät im Tab 'Details'.

Wenn man beim Wert "Capabilities" die 4 wegnimmt oder unter XP 80h addiert, verschwindet das Gerät aus der Liste (nach einem Refresh, z.B. durch hin- und herschalten der Checkbox).

Der Wert wird aber jedes Mal neu geschrieben wenn der Treiber startet. Man könnte den Wert exportieren und bei jedem Neustart importieren, etwa so:
regedit /s xxx.reg
Zum Schreiben des Wertes werden Admin-Rechte benötigt, ab Vista darf es auch der Admin nicht, hier brauchts dann ein Tool wie RunAsSystem.

Ab Windows 7 kann "Hardware sicher entfernen" beides, 'sicher entfernen' und 'auswerfen', deshalb bekommt man Wechseldatenträger hier nicht mehr aus der Liste entfernt. Ohne Removable-Flag wird aber nur noch 'Auswerfen' angeboten.

Mein USB Drive Letter Manager (USBDLM) hat als Windows-Dienst mit Berechtigungen kein Problem. Um interne Cardreader aus der Liste zu bekommen, kann er genau die oben beschriebene Änderung machen (das CM_DEVCAP_REMOVABLE-Bit wegnehmen). Das geht auch für beliebige andere Geräte, siehe Hilfe-Datei unter Konfiguration -> Sonstiges -> Gerät unter Hardware sicher entfernen.
Manchmal zeigt Windows bei "Hardware sicher entfernen" Geräte weil deren übergeordnetes Gerät CM_DEVCAP_REMOVABLE hat, z.B. zeigt Windows für einen PCMCIA USB2-Controller drei Root-Hubs weil deren drei Host-Controller das CM_DEVCAP_REMOVABLE-Bit haben.

 


  USB Serial Number
 
USB-Geräte sollten eine Hardware-Seriennummer haben die für jedes Exemplar einmalig ist. Eine Seriennummer eben...
Es gibt aber jede Menge Geräte, die keine haben oder bei denen alle Exemplare identische Seriennummern haben.
Das führt zu unterschiedlichem Verhalten, wenn man ein Gerät erstmals an einen anderen USB-Port anschließt oder ein anderes Exemplar erstmals an den selben USB-Port.

  anderer USB Port anderes Exemplar des USB-Gerätes
keine Seriennummer wird als neu erkannt wird als dasselbe wiedererkannt
eindeutige Seriennummer wird als dasselbe wiedererkannt wird als neu erkannt
identische Seriennummern wird als dasselbe wiedererkannt wird als dasselbe wiedererkannt

Der einzige Weg, das Verhalten von Windows zu beeinflussen, ist, Windows die Seriennummer für bestimmte oder für alle USB-Geräte ignorieren zu lassen, siehe unten.


Identische Laufwerke

Identische Laufwerke funktionieren nicht gleichzeitig, wenn sie identische USB Hardware-Seriennummern haben. Das ist eine Verletzung der USB-Massenspeicher-Specs, aber solche Geräte gibt's. Manche meinen, der Satz 'If provided, the serial number must be unique to each USB Vendor ID and Product ID pair.' könne auch so interpretiert werden, dass alle Seriennummern gleich sein sollen, aber allein der Begriff 'Seriennummer' macht doch wohl überdeutlich, wie es gemeint ist.
Es funktioniert dann immer nur das zuerst angeschlossene Gerät, die weiteren werden nicht erkannt solange das erste noch angeschlossen ist. So wurde das gelegentlich berichtet...
Bei mir funktionieren zwei SD-Cardreader mit identischer Seriennummer auch gleichzeitig, wobei der durch die Seriennummer vorhandene Vorteil des Wiedererkennens an einem anderen USB-Port nur für das zuerst angeschlossene Gerät greift. An einem anderen XP-Rechner gibts hier einen Bluescreen wenn das zweite Gerät angeschlossen wird...

Bei zwei identischen USB-Festplatten habe ich unter XP folgenen Effekt beobachtet: Die zuerst angeschlossene Festplatte funktioniert, beim Anschließen der zweiten gibts eine Fehlermeldung "beim Installieren der Hardware ist ein Fehler aufgeteten". Im Geräte-Manager haben dann beide Laufwerke den Code 42 (CM_PROB_DUPLICATE_DEVICE - "identisches Gerät bereits installiert"). Abhilfe schaffte das ignorieren der Seriennummer - siehe unten.

Die USB-Seriennummer von USB-Laufwerken zeigt z.B. mein Info-Tool UsbDriveInfo, für sonstige USB-Geräte gibts von Microsoft das Beispielprogramm "USBView", aber leider nur als Quelltext. Darauf basierend habe das Tool "USB Tree Viewer" erstellt: UsbTreeViewer.
Microsoft hat solche 'unerfreulichen' Geräte berücksichtigt, indem Windows die Möglichkeit bietet, die USB-Seriennummer für alle oder für bestimmte Geräte zu ignorieren.
Unter
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags]
gibt es unter XP den Wert GlobalDisableSerNumGen:
 0 zum Ignorieren aller USB-Seriennummern
 1 zum Auswerten der USB-Seriennummern
Der Name des Wertes impliziert auf den ersten Blick das Gegenteil. Wahrscheinlich meint das "Gen" 'generation', das Generieren einer zufälligen Seriennummer, auch wenn eine in Hardware vorhanden ist.
Ab Vista ist der Wert nicht vorhanden - einfach neu anlegen: Rechts-Klick in den rechten Bereich -> Neu -> Binärwert. GlobalDisableSerNumGen als Namen einfügen und eine 01 als Wert.

Besser ist es, die Seriennummer nur für das fragliche Gerät zu ignorieren.
Windows 2000, XP: Dazu legt man unter o.g. Schlüssel einen neuen Wert an. Dessen Name beginnt mit "IgnoreHWSerNum", gefolgt von Hersteller- und Produkt-ID (jeweils vierstellig Hex). Der Wert zum Ignorieren ist "01" (wieder Typ Binär mit genau einem Byte Länge).
Beispiel für Hersteller (vendor) 1111 und Produkt 9999:
IgnoreHWSerNum11119999=1
Die Werte kann man sich für USB-Laufwerke mit o.g. UsbDriveInfo ermitteln - man findet für das Laufwerk eine Zeile wie diese:
Ctrl ID = USB\VID_1111&PID_9999\USB_serial_number
Hinter VID_ steht die Vendor-ID, hinter PID_ die Product-ID.
Generell findet man die ID im Geräte-Manager in den Eigenschaften des jeweiligen USB-Gerätes im Reiter "Details".
Der Registry-Eintrag wird sofort wirksam - kein Neustart erforderlich.

UsbFlagsSample_de.png RegEdit mit GlobalDisableSerNumGen und IgnoreHWSerNum11119999

Vista, Win7, 8, 10: Hier legt Windows unter UsbFlags einen 12-stelligen Key im Format VVVVPPPPRRRR an (Vendor, Product, Revision), man muß nur den Richtigen raussuchen. Darunter legt man einen BINARY-Wert mit Namen IgnoreHWSerNum und dem Wert 01 an, siehe hier. Ein DWORD-Wert (wie früher bei Microsoft zu lesen war) funktioniert nicht.
Die Einstellungen für XP funktionieren auch hier.

All das wird vom Microsoft USB-Stack ausgewertet, USB3-Controller bringen vor Windows 8 aber ihren eigenen USB-Stack mit, so dass diese Einstellungen hier u.U. wirkungslos bleiben. Bei Intel funktionierts.

Das Ignorieren der Seriennummer kann man auch nutzen, um das Anspringen des Plug+Play beim Austausch eines USB-Gerätes gegen ein eigentlich identisches zu vermeiden. Wird die Seriennummer ignoriert, erkennen Windows 2000 und höher ein Gerät an jedem Port als neues. Dafür werden verschiedene Exemplare des gleichen Gerätes am selben Port nicht als neues erkannt. Wurde ein Gerät einmal an jedem Port angeschlossen, hat man Ruhe. Das macht sich z.B. gut, wenn der Support einen USB-Drucker tauscht und der dann - trotz anderer Seriennummer - einfach funktioniert.

Die "hardware device instance ID", auf Microsoft-Deutsch "Geräteinstanzkennung" sieht für ein USB-Gerät beispielsweise so aus:

USB\VID_090C&PID_1000\A740000000000097
"USB\VID_090C&PID_1000" ist die "device ID" ("Gerätekennung"), das was hinter dem letzten Backslash steht macht daraus die Instanzkennung. Bei USB-Geräten mit Hardware-Seriennummer wird eben diese dafür genutzt. Deshalb betrachtet Windows so ein USB-Gerät als dasselbe wenn es an einen anderen USB-Port angeschlossen wird.
Für USB-Geräte ohne Hardware-Seriennummer (oder wenn sie ignoriert wird) wird eine zufällige Zeichenfolge generiert - an jedem USB-Port auf's Neue.
Für eine USB-Massenspeicher-Seriennummer sind nur hexadezimale Zeichen erlaubt, eine generierte Kennung enthält dagegen das & Zeichen. Das sieht dann z.B. so aus:
USB\VID_067B&PID_2517\6&2C56247&4&1

 


  USB-Geräte erscheinen nach "Hardware sicher entfernen" aktiv
 
Im Gegensatz zu XP bleiben unter Vista und Windows 7/8/10 USB-Geräte nach "Hardware sicher entfernen" mit Strom versorgt, lt. Microsoft, damit mobile Geräte auch dann noch geladen werden.
Gut ist das sicher auch für USB-SSDs die eventuell auch nach dem "Sicher Entfernen" intern noch Daten umsortieren.
Das alte Verhalten kann man mittels Registry-Einstellung "DisableOnSoftRemove" wieder herstellen, siehe hier: http://support.microsoft.com/kb/2401954

 



letzte inhaltliche Änderung: 22.04.2017

Uwe Sieber

Zurück