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.