Отключить / включить драйверы USB без перезагрузки с C++/C#/PowerShell в Windows 7

Мне нужен простой способ ретроактивно отключить / включить все USB-устройства в Windows 7 с помощью сценария C++/ C#/powershell БЕЗ перезагрузки компьютера.

Я понимаю, что изменение объекта групповой политики - вариант, но я не могу найти какую-либо реализацию, которая делает это без перезагрузки.

Пожалуйста, объясните ваше решение подробно, я новичок в администрировании на Windows.

1 ответ

Решение

Используя PowerShell, вы можете сделать это, как показано ниже

Откройте реестр и перейдите к следующему разделу реестра и посмотрите, какое значение имеет в нем ключ запуска reg. Если установлено значение "3", это означает, что USB-накопитель включен на ПК.

Get-ItemProperty  "HKLM:\SYSTEM\CurrentControlSet\services\USBSTOR" -name start


PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
PSChildName  : USBSTOR
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry
Start        : 3

Если вы хотите отключить его, вы можете установить значение 4, используя команду ниже

Set-ItemProperty  "HKLM:\SYSTEM\CurrentControlSet\services\USBSTOR" -name start -Value 4

Если я снова проверю значение ключа reg, я вижу, что оно было изменено на 4, и если я подключу USB-накопитель, оно не будет обнаружено

Get-ItemProperty  "HKLM:\SYSTEM\CurrentControlSet\services\USBSTOR" -name start


PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
PSChildName  : USBSTOR
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry
Start        : 4
Другие вопросы по тегам