Próbuję odmontować zewnętrzny dysk USB za pomocą programu PowerShell i nie mogę tego z powodzeniem wykonać. Używam następującego skryptu:
#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)
Następnie sprawdzam komputer, czy dysk jest odmontowany, ale tak nie jest.
Parametry boolowskie $ force i $ permanent zostały wypróbowane z różnymi kombinacjami bezskutecznie. Kod wyjścia zwrócony przez komendę odinstalowania zmienia się, gdy parametry są przełączane.
(0,0) = exit code 0
(0,1) = exit code 2
(1,0) = exit code 0
(1,1) = exit code 2
Dokumentacja dla kodu wyjścia 2 wskazuje, że istnieją istniejące punkty podłączenia jako powód, dla którego nie można go zdemontować. Chociaż próbuję zdemontować jedyny istniejący punkt montowania, więc nie jestem pewien, co ten kod wyjścia próbuje mi powiedzieć.
Po włokowaniu do sieci osób mających podobne problemy znalazłem tylko jedno dodatkowe polecenie do wypróbowania, a mianowicie:
# executed after the .Dismount() command
$drive.Put()
To dodatkowe polecenie nie pomaga.
Zabrakło mi rzeczy do wypróbowania, więc każda pomoc, jaką ktoś może mi dać, byłaby bardzo mile widziana.
Odpowiedzi:
Czystym rozwiązaniem, które nie pozostawia żadnych w połowie wypieczonych otwartych odniesień, takich jak próbka z pk, jest:
Źródło: http://sushihangover.blogspot.nl/2012/02/powershell-eject-local-or-remote.html
źródło
powershell (New-Object -comObject Shell.Application).Namespace(17).ParseName(\"E:\").InvokeVerb(\"Eject\")
$?
jestTrue
po wywołaniu drugiej linii. Czy jest coś, co mogę zrobić?Nie mogę wykonać świetnej pracy, odpowiadając od strony PowerShell, możesz chcieć sprawdzić, jak
mountvol
działa . Istnieją różne stopnie zsiadania.Próbowałem zrobić coś podobnego do tego, czego wymagałeś w VBScript do zmiany kolejności urządzeń na starych komputerach stacjonarnych, na których montowanie dysków dla starszych urządzeń, które było zbyt uciążliwe do usunięcia (odczyt dysku Flash), kolidowało ze skrótami w niestandardowym interfejsie GUI, w których mogłem tylko wyraźnie wspomnieć o punktach montowania ( D :, E :, F :) w określonym celu. Stało się to wyjątkowo frustrujące i musisz odmontować i ponownie zamontować elementy za pomocą wejść i wyjść mountvol, aby sprawdzić, czy poszło dobrze i kontynuować zmiany. Mam nadzieję, że masz więcej szczęścia niż ja.
źródło