Entfernen Sie das USB-Gerät von der Befehlszeile

61

Ich erstelle ein Sicherungsskript für Windows 7, und die letzte Aktion, die ich ausführen möchte, besteht darin, das USB-Laufwerk, auf dem die Sicherung ausgeführt wird, sicher zu "entfernen". Ich habe den Eindruck, dass beim ständigen Anschließen des Laufwerks an denselben USB-Anschluss dieselbe DEV_ID erhalten bleibt (korrigieren Sie mich, wenn ich mich irre). Wie kann ich Windows über eine Befehlszeile (oder PowerShell) anweisen, die Hardware automatisch und ohne Benutzereingabe sicher zu entfernen?

Genau wie ein Platzhalter wären auch andere Betriebssysteme, die eine Möglichkeit haben, dies zu tun, gut zu wissen.

Der Kanadier Luke REINSTATE MONICA
quelle
5
Ich habe Enttäuschung von einigen der „Antworten“ zugeben , unter dem nicht eindeutig verstehen , welche Optionen gefragt und zur Verfügung gestellt wird, die offensichtlich nutzlos für die Aufgabe der Automatisierung als asked.` sind ಠ_ಠ
Synetech
> Ich habe den Eindruck, dass beim ständigen Anschließen des Laufwerks an den gleichen USB-Anschluss die gleiche DEV_ID beibehalten wird. Korrigieren Sie mich, wenn ich falsch liege. Das ist richtig. Windows behandelt ein Laufwerk und den Anschluss, an den es angeschlossen ist, als identifizierendes Paar. Indem Sie es an einen anderen Anschluss anschließen (an den es noch nie angeschlossen wurde), lösen Sie die Treiberinstallationsfunktion von Windows aus. Schlimmer noch, wenn Sie dem Volume einen nicht aufeinanderfolgenden Laufwerksbuchstaben zugewiesen haben, wird dieser Buchstabe beim Anschließen an einen neuen Anschluss nicht beibehalten. Der nächste verfügbare Buchstabe wird angezeigt, und Sie müssen einen Buchstaben erneut manuell zuweisen.
Synetech
1
(Seltsamerweise können Sie, wenn Sie ein Laufwerk an einen Port anschließen und Windows Treiber für dieses Laufwerk installieren lässt, diesem einen nicht aufeinander folgenden Laufwerksbuchstaben zuweisen und ihn dann von einem anderen Laufwerk desselben Herstellers und Modells trennen .) und Größe, dann wird Windows es genau so behandeln, als ob Sie das vorherige Laufwerk erneut angeschlossen haben.)
Synetech
Könnten Sie den Titel aktualisieren, damit er korrekt ist? Ich habe nach Antworten zum Entfernen von USB-Geräten und nicht von USB-Laufwerken gesucht.

Antworten:

32

RemoveDrive hat mir in der Vergangenheit gute Dienste geleistet

stijn
quelle
4
removedrive \ x64> RemoveDrive.exe f: -L ist der Code für alle, die es eilig haben
fedmich
Dies endete für mich arbeiten. Interessanterweise wartet eine WqlEventQuery, die ich verkabelt habe, noch darauf, ausgelöst zu werden, bis Sie das Laufwerk physisch herausziehen. Ich weiß nicht viel über dieses Zeug, aber es hat mich überrascht. Ist in diesem Fall kein Problem für mich.
samuelesque
1
RemoveDrive ist gut, aber das Problem ist, dass es tatsächlich das gesamte Laufwerk entfernt. Bei Kartenlesern wird nicht einfach die Karte ausgeworfen (z. B. durch Klicken mit der rechten Maustaste und Auswählen von "Vom Arbeitsplatz auswerfen"), sondern der gesamte Kartenleser wird entfernt, sodass ein physischer Abzug und erneutes Anschließen erforderlich sind. Eingesteckt oder schlimmer, Neustart, wenn der Kartenleser eingebaut ist (es ist möglich, dies über Software zu tun, aber es ist ärgerlich).
Synetech
Sie können es auch von Cygwin ausführen.
Kevin Sadler
65

Neben dem in der anderen Antwort erwähnten RemoveDrive von Uwe Sieber gibt es eine ganze Reihe von Dienstprogrammen, die dies erreichen können. Eine kleine Liste folgt:

  • USB Disk Ejector ist in erster Linie ein GUI-basiertes Dienstprogramm, kann aber auch über die Befehlszeile verwendet werden, um das Laufwerk, von dem das Programm ausgeführt wird, oder ein beliebiges Laufwerk durch Angabe des Laufwerksbuchstabens / (teilweisen) Laufwerksnamens / Bereitstellungspunkts usw. auszuwerfen. Kostenlos und Open Source.

    USB Disk Ejector

  • USB Safely Remove ist nicht kostenlos, aber ein Dienstprogramm zum Entfernen von Festplatten bei Steroiden mit vielen erweiterten Funktionen , einschließlich natürlich Befehlszeilenunterstützung . Zentimo ist sein größerer Bruder mit noch mehr Funktionen .

    USB sicher entfernen

  • Microsofts eigenes DevCon ist die Befehlszeilenversion des Geräte-Managers. Neben der ursprünglichen Version von Win2K / XP, die auf der KB-Seite verfügbar ist, gibt es neuere Versionen (sowohl 32- als auch 64-Bit-Versionen), die aus verschiedenen MS-Quellen stammen . Wie in diesem Thread erwähnt, befindet sich DevCon.exe für Windows 7 (und wahrscheinlich auch Windows 8) im entsprechenden Windows Driver Kit (WDK) (das auch Download-Links zu der extrahierten ausführbaren Datei enthält ).

    devcon status *oder devcon hwids *oder devcon findall =usb(für eine kompaktere Auflistung) sollte Ihnen die Hardware-ID des Geräts mitteilen. Zum Beispiel:

    USB \ VID_0781 & PID_7113 \ 0001162825
    Name: Der USB-Massenspeichergerätetreiber
    wird ausgeführt.

    Sie können dann versuchen, das Gerät mit zu entfernen devcon remove "USB\VID_0781&PID_7113"(Platzhalter wie * sind zulässig, aber seien Sie vorsichtig, oder Sie können am Ende etwas ganz anderes entfernen!)


Jemand fragte " Gibt es eine DOS-Eingabeaufforderung (cmd.exe von Win7) zum Auswerfen eines USB-Sticks? ", Die leider als Duplikat dieses Threads geschlossen wurde. Die Frage betraf jedoch das Auswerfen von USB-Laufwerken in der Windows-Wiederherstellungskonsole / Systemwiederherstellungs-Eingabeaufforderung. Daher ist es unwahrscheinlich, dass eines der oben genannten Dienstprogramme Abhilfe schafft. In einer solchen Situation sollte die folgende Methode mit Diskpart funktionieren:

  1. Geben Sie diskpartund warten auf die Diskpart - Aufforderung ( DISKPART>)

  2. Art list volume

  3. Notieren Sie die Datenträgernummer des USB-Laufwerks sorgfältig (verwenden Sie die aufgeführten Eigenschaften wie Laufwerksbuchstabe, Bezeichnung, Typ und Größe, um Hilfe zu erhalten).

  4. Typ select volume <number>, wobei <number>die oben angegebene Datenträgernummer ist

    Diskpart

  5. Art remove all dismount

  6. Geben Sie exitDiskpart beenden

Jetzt sollten Sie in der Lage sein, Ihr USB-Laufwerk sicher zu entfernen, ohne Datenverlust befürchten zu müssen.

Karan
quelle
1
Vielen Dank, dass Sie sich die Zeit genommen haben, meine Frage zu beantworten, auch nachdem SU sie geschlossen hat. Ich folgte dem Vorschlag von Jared Tritsch und entfernte das Laufwerk, indem ich es entfernte. Sobald ich meinen Laptop wieder einsatzbereit habe, experimentiere ich mit DISKPART. Hier ist der Link zu den Microsoft-Spezifikationen für DISKPART. technet.microsoft.com/en-us/library/bb490893.aspx
zundarz
2
@zundarz: Gern geschehen! Die Standardrichtlinie zum Entfernen von Wechseldatenträgern in Windows lautet " Schnelles Entfernen". Dadurch wird das Schreibcaching deaktiviert, und das Laufwerk kann entfernt werden, ohne dass es zuvor sicher entfernt werden muss. Weitere Informationen finden Sie in diesem Screenshot . Daher sollte Jareds Vorschlag, das Laufwerk zu rucken, normalerweise keinen Datenverlust verursachen, wenn Wechseldatenträger auch in der Wiederherstellungskonsole auf die gleiche Weise behandelt werden. Aus Sicherheitsgründen achte ich immer darauf, jedes Laufwerk sicher zu entfernen, bevor ich es herausnehme. Könnte ein Placebo sein, hält mich aber davon ab, mir Sorgen zu machen. :)
Karan
PS Seien Sie vorsichtig mit Diskpart - es ist leistungsstark und daher sehr gefährlich. Der Grund, warum ich es zum Entfernen des Laufwerks verwendet habe, ist, dass es sowohl über die Wiederherstellungskonsole von XP als auch über die Systemwiederherstellungsoptionen / Eingabeaufforderung von Vista / 7 verfügbar ist.
Karan
Ich habe versucht, Diskpartim normalen Windows-Modus zu verwenden. Dies ist die Meldung, die ich nach dem Ausführen von Schritt 5 oben erhalte. "DiskPart hat den Laufwerksbuchstaben erfolgreich entfernt, aber Ihr Computer muss neu gestartet werden, damit die Änderungen wirksam werden. DiskPart hat die Bereitstellung des Volumes erfolgreich aufgehoben." Ich habe versucht, es auf einem Wechselmedium (SD-Karte) anstatt auf einem Wechselmedium (z. B. dem SD-Kartenleser oder dem USB-Stick) zu verwenden. Die LED-Anzeige am Lesegerät ging nicht aus, blieb jedoch an (dh sie hörte auf zu blinken, wie dies gelegentlich der Fall ist, wenn sich nur eine SD-Karte darin befindet). Also ich denke, es ist sicher, dann zu entfernen.
Samir
3
Um den Befehl rückgängig zu machenremove all dismount , müssen Sie den mountvolBefehl verwenden. Weitere Informationen finden Sie in der Technet-Bibliothek hier und auch hier . Nachdem Sie verwendet haben, mountvolmüssen Sie neu starten, damit die Änderungen wirksam werden. Alternativ können Sie auch die Datenträgerverwaltung verwenden, um einen neuen Laufwerksbuchstaben zuzuweisen.
Samir
17

Zur Beantwortung dieser Frage ... Sie benötigen kein Material von Drittanbietern.

Wie kann ich Windows mithilfe einer Befehlszeile (oder PowerShell) anweisen, die Hardware ohne Benutzereingabe sicher automatisch zu entfernen?

Führen Sie den folgenden Befehl aus: So RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll rufen Sie das Dialogfeld "Hardware sicher entfernen" auf:

Das Dialogfeld "Hardware sicher entfernen"

Climenol
quelle
4
Kannst du beschreiben, was das macht?
Kanadier Luke REINSTATE MONICA
1
Starten Sie die sichere Entfernung von usb
climenole
11
Muss ich dann nicht noch etwas anklicken?
Kanadischer Luke REINSTATE MONICA
2
Das ist ziemlich cool, aber leider für Automatisierungszwecke ist es nicht besser als jeder Vorschlag von Karan.
Synetech
1
control hotplug.dll , dh ohne _RunDLL funktioniert bei mir nicht unter Vista SP2
user66001
2

Da es sich um ein Backup-Gerät handelt, bedeutet dies, dass es sich um ein Speichergerät handelt. Dies kann über Powershell erfolgen. Ersetzen Sie einfach X: durch den gewünschten Laufwerksbuchstaben:

$driveEject = New-Object -comObject Shell.Application
$driveEject.Namespace(17).ParseName("X:").InvokeVerb("Eject")
Overmind
quelle
1
Ich habe diese Lösung sowohl bei Serverfehlern als auch bei Stackoverflow gesehen , kann sie jedoch anscheinend nicht mit meiner externen Festplatte zum Laufen bringen. Es gibt keine Fehlermeldung, es tut einfach nichts. Die Verwendung von "F:"oder "F:\"machte keinen Unterschied, ebenso wie das Ausführen von PowerShell als Administrator. Das sichere Entfernen über die Taskleiste funktioniert. Was mache ich falsch?
Flolilo
Der eigentliche Powershell-Befehl gibt keine Fehlermeldung (roter Text) zurück.
Overmind
Wenn ich F: \ entferne und den Befehl ausführe, erhalte ich die Fehlermeldung, dass ich keine Methode ausführen kann, die NULL ist (die Nachricht ist in deutscher Sprache, daher bin ich mir nicht ganz sicher, ob ich die Übersetzung richtig ausgeführt habe). Wenn ich die Befehle mit F: \ plugged ausführe, gibt es überhaupt keine Meldung - $errorist auch leer. Ich arbeite übrigens mit PowerShell 5.1 unter Win10 Pro. F: \ ist eine externe USB-Festplatte mit nur einer Partition (F :) - sie kann problemlos sicher über die Taskleiste entfernt werden.
Flolilo
Interessanterweise funktioniert ein USB-Stick (auch mit einer Partition) einwandfrei. Beide haben Better performancein ihrer Entfernungsrichtlinie aktiviert , obwohl dies keinen Unterschied zu machen scheint (USB-Stick funktioniert mit beiden Einstellungen, USB-Festplatte nicht). Ein zweites Laufwerk, das ich besitze, möchte auch nicht über den PowerShell-Befehl ausgeworfen werden. Funktioniert: Transcend JetFlash 700 (16 GB, FAT32), funktioniert nicht: Seagate Expansion Portable 2015 (4 TB, NTFS), Sandisk Extreme (32 GB, exFAT). Alle mehrfach am selben USB-Port ausprobiert. Auch hier funktioniert das sichere Entfernen über das Taskleistensymbol immer.
Flolilo
@ flolilolilo Ich habe das gleiche Problem ...
Ploni
1

Laut diesem 7tutorials-Artikel können Sie das sichere Abziehen aktivieren, indem Sie "Schnelles Entfernen" einstellen. Dadurch wird das Schreib-Caching pro Gerät deaktiviert, wobei die Auswirkungen auf die Leistung "vernachlässigbar" sind. Ihre Schritte für Windows 7 sind unten.

( Bearbeiten ) Laut diesem Howtogeek-Artikel sollten Sie bei der Einstellung "Schnellentfernung" dennoch vorsichtig sein. Dadurch wird die Schreibzwischenspeicherung deaktiviert und die meisten Probleme vermieden. Einige Programme schreiben jedoch möglicherweise noch 'live', bis sie explizit ausgeworfen / entfernt werden. ( Ende der Bearbeitung )

Schritte:

  • Stecken Sie das Gerät in das USB-Laufwerk
  • Öffnen Sie den Geräte-Manager
  • Erweitern Sie Laufwerke
  • Klicken Sie mit der rechten Maustaste auf Ihren Wechseldatenträger, z. B. "USB2.0 Flash Disk USB Device".
  • Wählen Sie Eigenschaften
  • Klicken Sie auf die Registerkarte Richtlinien
  • "Schnelle Entfernung" aktivieren ("Bessere Leistung" deaktivieren)

( Bearbeiten ) Beachten Sie, dass Sie den Geräte-Manager verwenden müssen, um die Einstellung zu ändern. Dies ist im Datei-Explorer nicht möglich. (Zumindest in meiner Windows 10 Edition.)

Yahoo Serious
quelle
1
Das klingt nach einer großartigen Idee für Backup-Laufwerke! Es scheint jedoch, dass dies die Standardeinstellung ist (zumindest auf meiner Seagate BUP Slim BK USB External Drive).
Arvo Bowen
1
Geräte mit aktiviertem Schreibcache können nicht schnell entfernt werden.
Overmind
1
Ist es möglich, dies global so einzustellen, dass es für jeden USB-Speicher gilt, der in Zukunft angeschlossen wird?
DuckMaestro