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

Извлечь USB устройство из командной строки

Я создаю сценарий резервного копирования для Windows 7, и последнее действие, которое я хочу, чтобы он выполнил, это безопасное “извлечение” USB-накопителя, на который он создает резервную копию. У меня сложилось впечатление, что постоянное подключение диска к USB-порту same сохранит тот же самый DEV_ID (поправьте меня, если я ошибаюсь). С помощью командной строки (или PowerShell), как я могу сказать Windows безопасно удалить оборудование автоматически без вмешательства пользователя?

Как владелец места, другие ОС, у которых может быть способ сделать это, также было бы неплохо знать.

Ответы (6)

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

Кроме утилиты Уве Сибер RemoveDrive , упомянутой в другом ответе, существует целая куча утилит, которые могут это сделать. Далее следует небольшой список:

  • USB Disk Ejector в первую очередь утилита на основе графического интерфейса, но ее можно одинаково хорошо использовать из командной строки для извлечения диска, с которого выполняется программа, или любого другого диска, указав букву диска / (частичное) имя диска / точку монтирования и т. д. Свободный и открытый исходный код.

  • USB Safely Remove не свободна, но это утилита удаления диска на стероидах, с большим количеством дополнительных функций , включая, конечно, поддержку командной строки . Zentimo является его старшим братом, с even больше функции .

  • собственный брат Майкрософт DevCon является версией диспетчера устройств из командной строки. Кроме оригинальной версии Win2K/XP-era, доступной со страницы KB, есть более новые версии (как 32-х, так и 64-х битные), доступные из различных источников MS, как упоминалось в этой статье Где найти DevCon.exe . DevCon.exe для Windows 7 (и, вероятно, также для Windows 8) можно найти похороненным в соответствующем Windows Driver Kit (WDK) , как упоминалось в этой статье (которая также содержит ссылки на загрузку extracted executable ).


Кто-то спросил Имеется ли подсказка DOS (cmd.exe от Win7) для извлечения флешки? “, которая, к сожалению, была закрыта как дубликат этого потока. Однако, вопрос касался извлечения USB-накопителей во время выполнения команды Windows Recovery Console / System Recovery Command Prompt, поэтому маловероятно, что какая-либо из вышеприведенных утилит поможет. В такой ситуации должен работать следующий метод с использованием 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

Поскольку это резервное устройство, это означает, что это устройство хранения данных, поэтому это можно сделать из программы Powerhell - просто замените X: на нужную букву диска:

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

Согласно это 7-ое руководство-статье , вы можете включить безопасное отключение, установив параметр “Быстрое удаление”. Это отключит кэширование записи per device, от которого влияние производительности “пренебрежимо мало”? Ниже приведены их шаги для Windows 7.

( Правка ) В соответствии с этим howtogeek-article , вы все равно должны быть осторожны при настройке “Быстрое удаление”. Это отключит кэширование записи, и таким образом предотвратит большинство проблем. Но некоторые программы все еще могут писать вещи ‘live’, пока явно не извлекут/удалят. ( Окончание редактирования )

Шаги:

  • подключите устройство к USB-накопителю
  • откройте диспетчер устройств
  • разверните Disk Drives
  • щелкните правой кнопкой мыши съемный диск, например, “USB2.0 Flash Disk USB Device”.
  • выберите “Свойства ” - перейдите на вкладку “Политики ” - включите “Быстрое удаление” (отключите “Лучшая производительность”)

( Правка) Обратите внимание, что для изменения настроек необходимо использовать диспетчер устройств, это невозможно сделать из проводника файлов. (По крайней мере, в моей версии Windows 10).

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

Не смог найти внутреннюю команду (спасибо MS), ни один скрипт там тоже не работал, удаление буквы - плохой способ извлечения, интерактивный способ также не крутой, и ненавижу использовать сторонние утилиты. В моем случае, использование чего-то, что находится на моем диске в течение 20 лет: внутренний Microsoft Windows Sysinternals помогает в этом случае:

sync -e x:
  • промывает usb-диск
  • извлекает usb-диск
  • сохраняет букву
  • не искажает USB-дерево

в случае замков, используйте Sysinternals handle или procexp, чтобы выяснить это.

Похожие вопросы

3
19
10
28
8