2012-06-29 20:01:16 +0000 2012-06-29 20:01:16 +0000
66
66

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

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

念のため、これを行う方法を持っている可能性のある他のOSがあれば教えていただけると助かります。

回答 (6)

67
67
67
2012-10-12 01:14:18 +0000

他の回答で述べたUwe Sieber氏の RemoveDrive の他にも、これを実現できるユーティリティはたくさんあります。以下にその一部を紹介します。

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

  • USB Safely Remove は無料ではありませんが、 コマンドラインサポート を含む多くの 高度な機能 を備えたステロイドのディスク削除ユーティリティです。Zentimo** ](http://zentimo.com) はその兄貴分で、 より多くの 機能 を備えています。

  • マイクロソフト独自の DevCon はデバイスマネージャのコマンドライン版です。KBページから入手可能なオリジナルのWin2K/XP時代のバージョンの他に、この DevCon.exeの入手先の記事で述べたように、様々なMSソースから入手可能な新しいリリース(32-bitと64-bitの両方)があります。Windows 7用のDevCon.exeは、 このスレッド で述べたように、適切な Windows Driver Kit (WDK) の中に埋もれています (この中には、 抽出された実行ファイル へのダウンロードリンクも含まれています)。


誰かが「サムドライブを取り出すためのDOSプロンプト(Win7のcmd.exe)コマンドはありますか? ](https://superuser.com/questions/486572/is-there-a-dos-prompt-cmd-exe-from-win7-command-to-eject-a-thumb-drive)」と質問していましたが、残念ながらこのスレッドの重複として閉じられていました。しかし、質問は**Windows Recovery Console** / System Recovery Command PromptでUSBドライブをイジェクトすることについてでしたので、上記のユーティリティのどれかが役に立つ可能性は低いと思われます。このような状況では、 Diskpart を使用した以下の方法が有効です。

  1. diskpart と入力して diskpart のプロンプトを待つ (DISKPART>)

  2. list volume

  3. USB ドライブのボリューム番号に注意してください(ドライブレター、ラベル、タイプ、サイズなどのプロパティを参考にしてください)

  4. タイプ select volume <number><number> は上記のボリューム番号)

  5. remove all dismount

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

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

33
33
33
2012-06-29 20:10:44 +0000

RemoveDrive は、過去に私をよく助けてくれました。

17
17
17
2012-10-12 05:56:40 +0000

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

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

このコマンドを実行してください。RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll を実行すると、ハードウェアの安全な取り外しダイアログボックスが表示されます。

4
4
4
2017-06-14 10:46:54 +0000

これはバックアップデバイスなので、ストレージデバイスであることを意味しています。

$driveEject = New-Object -comObject Shell.Application
$driveEject.Namespace(17).ParseName("X:").InvokeVerb("Eject")
1
1
1
2014-07-01 14:28:21 +0000

この7tutorials-article ](http://www.7tutorials.com/do-you-want-stop-using-safely-remove-hardware-notification-icon)によると、「クイックリムーバー」を設定することで安全にアンプラグを有効にすることができます。これでデバイスごとの書き込みキャッシングが無効になりますが、そのうちパフォーマンスへの影響は「無視できる程度」でしょうか?Windows7の場合の彼らの手順は以下の通りです。

( Edit ) this howtogeek-article によると、「クイック削除」を設定する際には、やはり注意が必要です。これで書き込みキャッシングが無効になるので、ほとんどの問題を防ぐことができます。しかし、いくつかのプログラムは、明示的にイジェクト/削除されるまで、まだ何かを「生きたまま」書いているかもしれません。( 編集終了 )

手順。

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

( 編集 ) 設定を変更するにはデバイスマネージャーを使用する必要があることに注意してください。(少なくとも私のWindows10版では)

0
0
0
2019-11-21 19:57:26 +0000

内部コマンドが見つからず(MSのおかげで)、スクリプトも一つも動かず、文字を削除するのはイジェクトするのに良くない方法だし、インタラクティブな方法もクールではないし、サードパーティ製のツールを使うのは嫌だ。私の場合は、20年前からドライブに入っているものを使っています: 社内の Microsoft Windows Sysinternals がこのケースを助けてくれます。

sync -e x:
  • USBドライブをフラッシュする
  • USBドライブを取り出す
  • 文字を保持する
  • USBツリーを歪めない

ロックの場合は、Sysinternalsのhandleprocexpを使って確認してください。