powershellを使用してUSB外付けドライブをマウント解除する


12

PowerShellを使用して外付けUSBドライブのマウントを解除しようとしていますが、これを正常に実行できません。次のスクリプトは私が使用するものです。

#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)

次に、コンピューターをチェックして、ドライブがアンマウントされているかどうかを確認しますが、マウントされていません。

ブールパラメータ$ forceと$ permanentは、さまざまな順列を使用して試されたが、役に立たなかった。paramsが切り替えられると、dismountコマンドによって返される終了コードが変わります。

(0,0) = exit code 0

(0,1) = exit code 2

(1,0) = exit code 0

(1,1) = exit code 2

終了コード2のドキュメントには、マウント解除できない理由として既存のマウントポイントがあることが示されています。存在するマウントポイントのみをマウント解除しようとしているので、この終了コードが何を伝えようとしているのかわかりません。

同様の問題が発生している人のためにWebをすでに探索しているので、試してみる追加コマンドが1つだけ見つかりました。それは次のとおりです。

# executed after the .Dismount() command

$drive.Put() 

この追加のコマンドは役に立ちません。

やることが足りないので、どなたでもご協力いただければ幸いです。


あなたはおそらくUSBドライブをマウント解除したくないでしょう。後でディスク管理でドライブ文字を再割り当てする必要があります。
js2010 2018

回答:


11

pkのサンプルのように、半分焼きたてのオープンリファレンスを残さないクリーンなソリューションは次のとおりです。

  $driveEject = New-Object -comObject Shell.Application
  $driveEject.Namespace(17).ParseName("E:").InvokeVerb("Eject")

http://sushihangover.blogspot.nl/2012/02/powershell-eject-local-or-remote.htmlから取得


以前に投稿したソリューションは確かに正しかった。私がそれをどのように提供したかについて、私は少し不確かです!この方法を使用してください。
pk。

1
これは、ファイル名を指定して実行]ダイアログボックスから単一行として実行行うことができること注:powershell (New-Object -comObject Shell.Application).Namespace(17).ParseName(\"E:\").InvokeVerb(\"Eject\")
Deebster

そのワンライナーは機能しますが、バックスラッシュはありません。
js2010

残念ながら、これはここでは機能しません。エラーメッセージもエラーメッセージも表示されません。$?あるTrue二行目の呼び出し後。何か私にできることはありますか?
ルネNyffenegger

1

私はPowerShell側から答える素晴らしい仕事をすることができません、あなたはどのようにmountvol動作するかを見たいかもしれません。さまざまな程度の降車があります。

MountvolまたはMountvol /?

ボリュームの名前、グローバル一意識別子(GUID)、および場所を表示します。

Mountvol [drive:] path VolumeName

新しいボリュームマウントポイントを作成します。マウントポイントのソースとしてドライブ文字のルートディレクトリまたは既存の空のNTFSディレクトリを指定し、ターゲットとしてボリューム名を指定します。

Mountvol [ドライブ:]パス/ D

既存のボリュームマウントポイントを削除します。

Mountvol [ドライブ:]パス/ L

特定のボリュームマウントポイントのボリューム名を一覧表示します。

古いハードウェアのドライブマウントを削除するのが面倒であり(フラッシュドライブを読み取る)、カスタムGUIのショートカットに干渉していて、マウントポイントを明示的にしか言及できない古いデスクトップでデバイスを並べ替えるために、VBScriptで必要なものと同様のことを試みました( D:、E:、F :)特定の目的で。これは非常にイライラするようになり、mountvolの入出力を使用してマウントを解除して再マウントし、正常に機能していることを確認して変更を続行する必要があります。あなたが私より幸運を祈っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.