Можно ли переключать отключенные/включенные устройства из командной строки, аналогично диспетчеру устройств?

Можно ли переключать отключенные/включенные устройства из командной строки, аналогично диспетчеру устройств?

Мне нравится играть в Fallout 3, который обычно очень глючный, а когда я добавляю моды, становится еще хуже. Излишне говорить, что он часто вылетает. Я могу смириться с вылетами, единственная проблема в том, что когда это происходит, моя звуковая карта застревает в бесконечном циклическом воспроизведении.

Я могу остановить циклический звук, включив и выключив устройство в диспетчере устройств (Отключить/Включить), хотя это раздражает, что приходится постоянно заходить в диспетчер устройств. Поэтому я надеюсь наполовину автоматизировать этот процесс.

Есть ли способ включать и выключать устройство с помощью пакетного скрипта? Таким образом, я мог бы просто разместить его на рабочем столе и запускать, когда моя звуковая карта начинает зацикливаться.

решение1

В Windows 10 вы можете использовать wmic. Я предпочитаю использовать PNPDeviceIDв предложении where. Сначала вы можете запросить точное значение:

wmic path Win32_PnPEntity where "PNPDeviceID like '%VEN%'" 

Как только вы это сделаете, используйте:

wmic path Win32_PNPEntity where "PNPDeviceID='yourPNPDeviceIDname'" call disable

Я нашел очень полезную информацию о wmicздесь

решение2

Благодаря ссылке, предоставленной and31415, мне удалось найти решение с помощью утилиты Device Console (DevCon).

Я скопировал инструкцию о том, как получить инструмент, с сайтаэтот ответ:

DevCon— это инструмент командной строки, который отображает подробную информацию об устройствах и позволяет вам искать и управлять устройствами из командной строки. DevCon включает, отключает, устанавливает, настраивает и удаляет устройства на локальном компьютере и отображает подробную информацию об устройствах на локальных и удаленных компьютерах.

  1. Загрузите соответствующий .cabпакет в зависимости от операционной системы:

  2. Откройте .cabархив и извлеките файл с именем fil[some letters and numbers]. Он должен быть размером около 80 КБ.

  3. Переименуйте его в devcon.exe.

Используя этот инструмент, я смог выяснить, какой Hardware ID был у моей звуковой карты, и использовать его для включения и выключения устройства. Поскольку мне просто нужно переключить устройство, мой пакетный файл выглядит просто так:

devcon.exe disable "PCI\VEN_13F6&DEV_8788&SUBSYS_85221043"
devcon.exe enable "PCI\VEN_13F6&DEV_8788&SUBSYS_85221043"

Эта длинная строка — идентификатор оборудования. Чтобы найти его, я использовал findallкоманду DevCon, перенаправив вывод в текстовый файл для удобства поиска.

devcon.exe findall * > C:\output.txt

Выполнив поиск по имени своего устройства, я скопировал нужную мне строку.


Примечание:К сожалению, для запуска пакета по-прежнему требуются права администратора, но это небольшая проблема (и, возможно, я смогу ее решить).решить на более позднем этапе). Но пока меня это устраивает.

Связанный контент