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


61

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

プレースホルダーとして、これを行う方法がある他のOSも知っておくといいでしょう。


5
私ははっきりと尋ねたとasked.`ಠ_ಠとして、オートメーションのタスクのために明らかに無用なオプションを提供しているものを理解していなかったその下に「答え」の一部で失望を認めざるを得ない
Synetech

>ドライブを常に同じUSBポートに接続すると、同じDEV_IDが保持されるという印象を受けています。間違っている場合は修正してください。それは正しいです。Windowsは、ドライブと接続されているポートを識別ペアとして扱います。別のポート(一度もプラグインされていない)にプラグインすることにより、Windowsのドライバーインストール機能をトリガーします。さらに悪いことに、連続していないドライブ文字をボリュームに割り当てた場合、新しいポートにプラグインしてもその文字は保持されず、次の利用可能な文字が取得され、手動で文字を再度割り当てる必要があります。
Synetech

1
(奇妙なことに、ドライブをポートに接続し、Windowsがそのドライバーをインストールできるようにしてから、連続していないドライブ文字を割り当ててから、同じメーカー、モデルの別のドライブのプラグを外すと、サイズを変更すると、Windowsは以前のドライブを再度接続した場合とまったく同じように処理します。)
Synetech

タイトルを更新してください。USB「ドライブ」ではなく、USB「デバイス」を削除するための答えを探していました。

回答:


32

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


4
removedrive \ x64の> RemoveDrive.exe F:-Lは、急いでいる人のためのコードです
fedmich

これは私のために働いてしまいました。興味深いことに、私が接続したWqlEventQueryは、ドライブを物理的に引き出すまで起動するのを待ちます。このことについてたくさん知りませんが、それは私を驚かせました。この場合、私にとっては問題になりません。
-samuelesque

1
RemoveDriveは適切ですが、問題は実際にドライブ全体を削除することです。カードリーダーの場合、カードを単にイジェクトする(右クリックして[マイコンピューターからイジェクト]を選択する)のではなく、別のカードを接続できるようにする代わりに、カードリーダー全体を削除し、物理的にプラグを抜いて再接続する必要があります。カードリーダーが組み込まれている場合は、プラグを差し込むか、さらに悪いことに再起動します(ソフトウェアを介して行うことは可能ですが、迷惑です)。
Synetech

cygwinからも実行できます。
ケビンサドラー

65

他の回答で言及されたUwe SieberのRemoveDriveに加えて、これを実現できるユーティリティがたくさんあります。以下に小さなリストを示します。

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

    USBディスクイジェクター

  • USB Safely Removeは無料ではありませんが、ステロイドのディスク削除ユーティリティであり、もちろんコマンドラインサポートを含む多くの高度な機能を備えていますZentimoさらに 多くの 機能を備えたです

    USBの安全な取り外し

  • Microsoft自身のDevConは、デバイスマネージャーのコマンドラインバージョンです。KBページから入手できる元のWin2K / XP-eraバージョンに加えて、このDevCon.exeの検索場所の記事で説明したように、さまざまなMSソースから新しいリリース(32ビットと64ビットの両方)を入手できます。Windows 7用のDevCon.exe(おそらくWindows 8も)は、このスレッドで説明されているように、適切なWindows Driver Kit(WDK)に埋もれています抽出された実行可能ファイルへのダウンロードリンクも含まれています)。

    devcon status *またはdevcon hwids *またはdevcon findall =usb(よりコンパクトなリストについては)あなたのデバイスのハードウェアIDを教えてください。例えば:

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

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


誰かが「Thumbドライブを取り出すためのDOSプロンプト(Win7のcmd.exe)コマンドはありますか?」と尋ねましたが、残念ながらこのスレッドの複製として閉じられました。ただし、Windows回復コンソール / システム回復コマンドプロンプトでUSBドライブを取り出すことに関する質問でしたので、上記のユーティリティが役立つことはまずありません。このような状況では、Diskpartを使用する次の方法が機能するはずです。

  1. 入力diskpartしてdiskpartプロンプトを待ちます(DISKPART>

  2. タイプ list volume

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

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

    Diskpart

  5. タイプ remove all dismount

  6. 入力exitしてDiskpartを終了します

これで、データの損失を心配することなく、USBドライブを安全に取り外すことができるはずです。


1
SUが終了した後でも私の質問に回答するのに時間を割いてくれてありがとう。私は先に進み、Jared Tritschの提案に従って行動し、ドライブを取り外すだけでドライブを取り外しました。ラップトップが再び動作可能になったら、DISKPARTを試します。ここに、MicrosoftのDISKPARTの仕様へのリンクがあります。technet.microsoft.com/en-us/library/bb490893.aspx
zundarz

2
@zundarz:どういたしまして!Windowsのリムーバブルデバイスのデフォルトの削除ポリシークイック削除です。これにより、書き込みキャッシュが無効になり、最初に安全に削除することなくドライブを削除できます。詳細については、このスクリーンショットを参照してください。したがって、回復コンソールでもリムーバブルドライブが同じように扱われる場合、ドライブのヤンクに関するJaredの提案は通常、データの損失を引き起こすことはありません。それでも、念のため、各ドライブを引き出す前に安全に取り外すように常に注意しています。プラセボかもしれませんが、心配する必要はありません。:)
カラン

PS Diskpartには注意してください-それは強力であり、したがって非常に危険です。ドライブの取り外しに使用した理由は、XPの回復コンソールとVista / 7のシステム回復オプション/コマンドプロンプトの両方から利用できるためです。
カラン

Diskpart通常のWindowsモードで使用してみました。これは、上記の手順5を実行した後に表示されるメッセージです。「DiskPartはドライブ文字を正常に削除しましたが、変更を有効にするにはコンピューターを再起動する必要があります。Diskpartはボリュームを正常にディスマウントしました。」リムーバブルデバイス(SDカードリーダーやUSBフラッシュドライブなど)ではなく、リムーバブルメディア(SDカード)で使用してみました。リーダーのLEDインジケータは消えませんでしたが、点灯したままでした(つまり、SDカードが装着されている場合にのみ点滅することがありました)。そのため、削除しても安全だと思います。
サミール

3
コマンドを取り消すには、remove all dismountコマンドを使用する必要がありますmountvol。詳細情報は、TechNetライブラリを参照してくださいここにここに。使用した後mountvol、変更を有効にするには再起動する必要があります。または、ディスクの管理を使用して新しいドライブ文字を割り当てることもできます。
サミール

17

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

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

次のコマンドを実行し RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll ます:[ハードウェアの安全な取り外し]ダイアログボックスを表示するには:

ハードウェアの安全な取り外しダイアログ


4
それが何をするのか説明できますか?
カナダのルーク州立モニカ

1
USBの安全な取り外しを開始
クリメノール

11
それでも何かをクリックする必要はありませんか?
カナダのルークレインステートモニカ

2
これはかなりクールですが、残念ながら自動化のためには、Karanの提案よりも優れています。
Synetech

1
hotplug.dllを制御します。つまり、Vista SP2で_RunDLLなしでは機能しません
-user66001

2

バックアップデバイスなので、ストレージデバイスであることを意味するため、powershellから実行できます。X:を目的のドライブ文字に置き換えてください。

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

1
このソリューションはserverfaultでもstackoverflowでも見ましたが、外付けHDDで動作させることができないようです。エラーメッセージはありません。まったく何もしません。使用"F:"または"F:\"管理者としてPowerShellを実行しなかったとして、違いはありませんでした。タスクバーから安全に削除することができます。何が間違っていますか?
flolilo

実際のpowershellコマンドはエラー(赤いテキスト)メッセージを返しませんか?
オーバーマインド

F:\を取り外してコマンドを実行すると、NULLのメソッドを実行できないというエラーが表示されます(メッセージはドイツ語であるため、翻訳が正しいかどうかは完全にはわかりません)。F:\をプラグインしてコマンドを実行すると、メッセージはまったく表示されず$error、空です。ところで、Win10 ProでPowerShell 5.1を実行しています。F:\は、1つのパーティション(F :)のみを持つ外付けUSB HDDです-問題なくタスクバーから安全に削除できます。
flolilo

興味深いことに、USBペンドライブ(パーティションも1つ)を使用すると、問題なく動作します。どちらもBetter performance削除ポリシーで有効になっていますが、違いはないようです(USBペンドライブは両方の設定で動作しますが、USB HDDは動作しません)。私が所有する2番目のペンドライブも、PowerShellコマンドを使用して取り出すことを好みません。動作中:トランセンドJetFlash 700(16GB、FAT32)、動作していません: Seagate Expansion Portable 2015(4TB、NTFS)、Sandisk Extreme(32GB、exFAT)。すべて同じUSBポートで複数回試してみました。繰り返しますが、Taskbar-iconを使用した安全な削除は常に機能します。
flolilo

@flolilolilo私は同じ問題を抱えています...
Ploni

1

この7tutorials-articleによれば、「クイック削除」を設定することにより、安全な取り外しを有効にすることができます。これにより、デバイスごとの書き込みキャッシュが無効になりますが、パフォーマンスへの影響は「ごくわずか」ですか?Windows 7の手順は次のとおりです。

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

手順:

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

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


1
これは、バックアップドライブの優れたアイデアのようです。ただし、これはデフォルト設定のようです(少なくともmy Seagate BUP Slim BK USB External Driveでは)。
アルボボーエン

1
書き込みキャッシュが有効になっているデバイスは、すばやく取り外しできません。
オーバーマインド

1
これをグローバルに設定して、将来接続されるすべてのUSBストレージに適用することは可能ですか?
DuckMaestro
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.