USB-Laufwerk auswerfen mit Powershell skript?
Ich habe folgenden Skript zum USB-Device Auswerfen gefunden.
$drive = New-Object -ComObject Shell.Application
$drive.NameSpace(17).Parsename("E:").InvokeVerb("Eject")
Das funktioniert bei USB-Stick super aber bei einem USB-Laufwerk funktioniert es gar nicht.(Laufwerk-Buchstabe habe ich ja im Skript geändert.)
Weiß jemand wie es geht?
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Technik, Technologie
Probier mal
(New-Object -comObject Shell.Application).Namespace(17).ParseName($driveletter).Verbs() | ?{$_.Name.replace('&','') -match '^(Auswerfen|Eject)$'} | %{$_.Doit()}
$driveletter entweder vorher angeben oder direkt mit \"E:\" ersetzen.
Hm....oder:
(New-Object -comObject Shell.Application).Namespace(17).ParseName(\"E:\").InvokeVerb(\"Eject\")
qugart
02.05.2019, 14:07
@keeran
Ich dachte, Microsoft hätte das jetzt geändert.
HDDs werden tatsächlich anders angesprcohen als Sticks. Somit gibt es keine Lösung mit Boardmittel.
Drittsoftware: https://quickandeasysoftware.net/software/usb-disk-ejector
Schalter: /removeletter E
hat nicht funktioniert:
PS C:\Users\keeran.PARALLEL\Desktop> (New-Object -comObject Shell.Application).Namespace(17).ParseName(\"E:\").InvokeVerb(\"Eject\")
In Zeile:1 Zeichen:67
+ ... Object -comObject Shell.Application).Namespace(17).ParseName(\"E:\"). ...
+ ~
")" fehlt in einem Methodenaufruf.
In Zeile:1 Zeichen:67
+ ... -comObject Shell.Application).Namespace(17).ParseName(\"E:\").Invoke ...
+ ~~~~~~
Unerwartetes Token "\"E:\"" in Ausdruck oder Anweisung.
In Zeile:1 Zeichen:73
+ ... -comObject Shell.Application).Namespace(17).ParseName(\"E:\").InvokeV ...
+ ~
Unerwartetes Token ")" in Ausdruck oder Anweisung.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndParenthesisInMethodCall