Ich versuche, ein externes USB-Laufwerk mit Powershell zu entfernen, und kann dies nicht erfolgreich durchführen. Das folgende Skript verwende ich:
#get the Win32Volume object representing the volume I wish to eject
$drive = Get-WmiObject Win32_Volume -filter "DriveLetter = 'F:'"
#call dismount on that object there by ejecting drive
$drive.Dismount($Force , $Permanent)
Ich überprüfe dann meinen Computer, um festzustellen, ob das Laufwerk nicht gemountet ist, aber nicht.
Die Booleschen Parameter $ force und $ permanent wurden ohne Erfolg mit unterschiedlichen Permutationen ausprobiert. Der vom Befehl dismount zurückgegebene Exit-Code ändert sich, wenn die Parameter umgeschaltet werden.
(0,0) = exit code 0
(0,1) = exit code 2
(1,0) = exit code 0
(1,1) = exit code 2
In der Dokumentation zu Exit-Code 2 wird angegeben, dass bereits Bereitstellungspunkte vorhanden sind, um die Bereitstellung nicht aufzuheben. Obwohl ich versuche, den einzigen vorhandenen Mount-Punkt zu entfernen, bin ich mir nicht sicher, was dieser Exit-Code mir zu sagen versucht.
Nachdem ich bereits das Web nach Personen mit ähnlichen Problemen durchsucht habe, habe ich nur einen zusätzlichen Befehl zum Ausprobieren gefunden, und zwar den folgenden:
# executed after the .Dismount() command
$drive.Put()
Dieser zusätzliche Befehl hilft nicht.
Mir gehen die Dinge aus, um es zu versuchen, daher wäre jede Unterstützung, die mir jemand geben kann, sehr dankbar.
Antworten:
Eine saubere Lösung, die keine halbgebackenen offenen Referenzen hinterlässt, wie es die Probe von pk tut, ist:
Abgerufen von http://sushihangover.blogspot.nl/2012/02/powershell-eject-local-or-remote.html
quelle
powershell (New-Object -comObject Shell.Application).Namespace(17).ParseName(\"E:\").InvokeVerb(\"Eject\")
$?
istTrue
nach dem Aufrufen der zweiten Zeile. Kann ich irgendetwas tun?Ich kann keine großartige Arbeit leisten, wenn ich vom PowerShell-Ende aus antworte. Vielleicht möchten Sie sich ansehen, wie das
mountvol
funktioniert . Es gibt verschiedene Abstiegsgrade.Ich habe versucht, etwas Ähnliches wie in VBScript zu tun, um Geräte auf alten Desktops neu zu ordnen, bei denen Laufwerkhalterungen für ältere Hardware, deren Entfernung zu mühsam war (Flash-Laufwerk lesen), Verknüpfungen auf einer benutzerdefinierten GUI störten, bei der ich nur explizit Mountpunkte erwähnen konnte ( D:, E:, F :) mit einem bestimmten Zweck. Dies wurde sehr frustrierend, und Sie müssen die Dinge mithilfe von Mountvol-Ein- und Ausgängen aushängen und wieder einhängen, um zu überprüfen, ob sie ordnungsgemäß funktionieren, und mit Änderungen fortfahren. Ich hoffe du hast mehr Glück als ich.
quelle