web-dev-qa-db-ja.com

コマンドラインからUSBデバイスを削除する

私はWindows 7用のバックアップスクリプトを作成しています、そして私がそれに実行させたい最後の行動はそれがバックアップしているUSBドライブを安全に「取り除く」ことです。ドライブを同じのUSBポートに接続している間ずっとドライブが維持されるという印象を受けています同じDEV_ID(間違っていたら私に直してください)コマンドライン(またはPowerShell)を使用して、ユーザー入力なしでハードウェアを自動的に安全に削除するようにWindowsに指示するにはどうすればよいですか?

プレースホルダーとして、これを実行する方法を持っているかもしれない他のOSも同様に知ることが素晴らしいでしょう。

57
Canadian Luke

RemoveDrive は過去に私に役立っています

31
stijn

他の答えで述べたUwe Sieberの RemoveDrive 以外にも、達成できるユーティリティがたくさんあります。この。小さなリストは次のとおりです。

  • USB Disk Ejector は、主にGUIベースのユーティリティですが、コマンドからも同様に使用できます。プログラムが実行されているドライブ、またはドライブ文字/(部分)ドライブ名/マウントポイントなどを指定して任意のドライブを取り出す行。フリーでオープンソース。

    USB Disk Ejector

  • USB Safely Remove は無料ではありませんが、ステロイドのディスク削除ユーティリティで、たくさんの 高度な機能 、もちろん コマンドラインサポートZentimo はその兄、でもmoreの機能

    USB Safely Remove

  • Microsoft独自の DevCon は、Device Managerのコマンドラインバージョンです。 KBページから入手可能なオリジナルのWin2K/XP時代のバージョンのほかに、ここで述べられているようにさまざまなMSソースから入手可能な新しいリリース(32ビットと64ビットの両方)があります 。 exe 記事。に記載されているように、Windows 7(およびおそらくWindows 8も)のDevCon.exeは、適切な Windowsドライバキット(WDK) に埋め込まれて見つけることができます このスレッド (これには 展開された実行ファイルへのダウンロードリンクも含まれています ).

    devcon status *またはdevcon hwids *またはdevcon findall =usb(よりコンパクトなリスト用)は、デバイスのハードウェアIDを教えてくれるはずです。例えば:

    USB\VID_0781&PID_7113\0001162825
    名前:USB大容量記憶装置
    ドライバは起動中です。

    それからdevcon remove "USB\VID_0781&PID_7113"でデバイスを削除することを試みることができます(*のようなワイルドカードは許可されています、しかし注意するか、あなたは他の何かを完全に削除することになるかもしれません!)


誰かが " サムドライブを取り出すDOSプロンプト(Win7のcmd.exe)はありますか? "という残念ながら、これの複製として閉じました。糸。しかし、問題は、Windows回復コンソール/システム回復コマンドプロンプトの間にUSBドライブを取り出すことでした。上記のユーティリティのうちの1つが役立ちます。このような状況では、 Diskpart を使用した次の方法でうまくいくはずです。

  1. diskpartと入力して、ディスクパーツのプロンプトを待ちます(DISKPART>

  2. list volumeと入力

  3. USBドライブのボリューム番号を注意してメモしてください(ヘルプのためにドライブ文字、ラベル、タイプ、サイズなどの記載されたプロパティを使用してください)。

  4. select volume <number>と入力します。ここで、<number>は上記のボリューム番号です。

    Diskpart

  5. remove all dismountと入力

  6. Diskpartを終了するにはexitと入力します。

今、あなたは安全にあなたのUSBドライブをデータ損失の恐れなしで取り外すことができるはずです。

63
Karan

このの質問に答えるには...サードパーティのものは必要ありません。

コマンドライン(またはPowerShell)を使用して、ユーザー入力なしで自動的にハードウェアを安全に削除するようにWindowsに指示するにはどうすればよいですか?

このコマンドを実行してください:RunDll32.exe Shell32.dll,Control_RunDLL hotplug.dllハードウェアの安全な取り外しダイアログボックスを表示するために:

The Safely Remove Hardware Dialog

14
climenole

それはバックアップデバイスなので、それはストレージデバイスであることを意味します、それゆえそれはpowershellからすることができます - ちょうどあなたの希望のドライブ文字でX:を置き換えてください:

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

this 7tutorials-article によれば、 "クイック除去"を設定することで安全な取り外しを可能にすることができます。これにより、デバイスごとの書き込みキャッシュが無効になります。そのうち、パフォーマンスへの影響は「無視できる」ものですか? Windows 7のための彼らのステップは以下です。

編集このhowtogeek-article によると、 "クイック削除"を設定するときはまだ注意が必要です。これにより書き込みキャッシュが無効になり、ほとんどの問題が防止されます。しかし、プログラムによっては、明示的に削除/削除されるまで、「ライブ」のものを書いている可能性があります。 (編集終了

ステップ:

  • uSBドライブにデバイスを差し込みます
  • デバイスマネージャを開く
  • ディスクドライブを展開
  • リムーバブルドライブを右クリックします。 USB2.0フラッシュディスクUSBデバイス。
  • プロパティを選択します
  • [ポリシー]タブをクリックします
  • 「クイック削除」を有効にする(「パフォーマンスの向上」を無効にする)

編集)デバイスマネージャを使用して設定を変更する必要があります。ファイルエクスプローラからは実行できません。 (少なくとも私のWindows 10版では)

1
Yahoo Serious