Windows: Подключить флэшку, которая была безопасно извлечена

Если в области уведомлений выбрать «Безопасное извлечение устройств и дисков», а потом выбрать «Извлечь *НАЗВАНИЕ USB-УСТРОЙСТВА*», то оно отключится.
Бывают случаи, когда его необходимо снова «включить».
Например, я пытаюсь безопасно извлечь USB-флешку, но вместо этого выбираю USB-камеру. Теперь Скайп ее не видит, т.к. она «извлечена». Чтобы он ее снова увидел, нужно было либо отключить и снова воткнуть шнур камеры, либо перезагрузить компьютер…
Ещё большая проблема, если вы подцепились к удалённой машине, и возникла такая необходимость.
Меня это напрягало и я решил найти способ «программно» переподключить камеру.

Интернет рекомендовал утилиту devcon.
Утилита DevCon вроде как могла помочь, но у меня была 64-битная ОС, а по ссылке только для 32 битной Windows. Нужная нам 64-битная версия devcon входит в состав пакета разработчика DDK. Нам нужен не весь образ, а только утилита. Ее нужно извлечь с помощью 7-zip из образа GRMWDK_EN_7600_1.ISO.
Для начала открываем образ и в папке WDK находим файл setuptools_x64fre_cab001.cab, в нем уже содержится файл _devcon.exe_00000, который нужно извлечь и переименовать в devcon.exe.

На примере USB-флэшки:
Запускаем утилиту в окне CMD (его нужно было запускать под админом):

devcon find @usb\*

Выводится список USB-устройств, среди которых будет флэшка:
USB\VID_125F&PID_C95A\0000000E06B3A5 : USB

Теперь это USB-устройство нужно снова активировать (отключать и включать будем по его PID):

devcon disable *pid_c95a

USB\VID_125F&PID_C95A\0000000E06B3A5 : Disabled
1 device(s) disabled.

devcon enable *pid_c95a

USB\VID_125F&PID_C95A\0000000E06B3A5 : Enabled
1 device(s) are enabled.

Иногда может получиться так, что devcon не сможет включить устройство и напишет, что необходимо перезагрузить компьютер.

 

USB\VID_125F&PID_C95A\0000000E06B3A5 : Enabled on reboot
The 1 device(s) are ready to be enabled. To enable the devices, restart the devices or
reboot the system .

Это может быть связано с тем, что для запуска устройства ему требуется перезапустить питание. Поэтому в данном случае необходимо переподключение устройства, либо перезапуск компьютера. Для флэшек достаточно отключить и задействовать «Корневой USB-концентратор», на котором находится это устройство.
Но иногда корневой USB-концентратор не может быть отключен — для него в «Диспетчере устройств» нет пункта «Отключить». А DevCon выдает ошибку:

Disable failed No matching devices found.

Поэтому придется удалить «Корневой USB-концентратор» через «Диспетчер устройств», а затем «Обновить конфигурацию оборудования».
Для утилиты DevCon это можно сделать следующим образом.
Выводим список USB-устройств:

devcon status USB*

USB\ROOT_HUB20\4&2C86C80D&0
Name: Driver is running.

Находим в списке Корневой концентратор USB (Root hub) и удаляем его с помощью команды:

devcon remove "@USB\ROOT_HUB20\4&2C86C80D&"

USB\ROOT_HUB20\4&2C86C80D&0 : Removed
1 device(s) were removed.

Затем обновляем конфигурацию оборудования.

devcon rescan

Scanning for new hardware.
Scanning completed.

Новое (удаленное) оборудование будет снова найдено и установлено, в результате чего будет переподключены все удаленные (отключенные) устройства.

Это немного дольше, чем извлечь и снова вставить USB-устройство (если есть такая возможность), но однозначно быстрее, чем перезагружать компьютер.