Включение/Отключение устройства из командной строки (CMD)

  • .

У меня на компьютере возникала такая проблема, что после пробуждения из спящего режима переставала работать DVB карта для просмотра спутникового ТВ, в диспетчере устройств в свойствах карты писалось что «Запуск этого устройства невозможен». И тогда мне что бы включить телевидение приходилось заходить в диспетчер устройств, отключать карту, потом заново включать и уже потом я мог включить программу для просмотра ТВ. Тогда я решил немного автоматизировать процесс: при клике на ярлык программы просмотра, должен был запускаться батник (bat-файл),  который сначала бы отключал карту, заново включал её, и уже потом запускал программу.

Для этого нам понадобится маленькая утилита от компании Microsoft — Devcon. Качаем её тут (77,2кб). Запускаем программу, указываем путь распаковки C:\Temp и жмём кнопку Unzip.

После распаковки нажимаем «Ок», закрываем программу и из папки C:\Temp\i386 копируем файл devcon.exe в папку C:\Windows\system32\. Если у вас Windows 64-х битный, то Вам нужно взять файл из папки C:\Temp\ia64.

Все, утилиту подготовили, теперь можно приступать к написанию bat файла. Создадим текстовый файл и переименуем  его  в Run_DVB_Dream.bat (в конце обязательно должно быть расширение bat, не txt!). Вы можете назвать его по другому, как угодно. Далее правой копной по этому файлу, выбрать «Изменить». Впишем следующие строки:

Где:

  1. devcon disable «PCI\VEN_1969&DEV_1083&SUBSYS_E0001458&REV_C0»  — Отключение устройства с заданным ID.
  2. devcon enable «PCI\VEN_1969&DEV_1083&SUBSYS_E0001458&REV_C0» — Включение устройства с заданным ID.
  3. start dvbdream.exe — Запуск программы просмотра ТВ (Вы прописываете путь к нужной Вам программе или не пишите эту строку совсем).

 

Что бы узнать ID заходим в Диспетчер устройств, открываете свойства нужного Вам устройства, переходите во вкладку Сведения, в выпадающем списке выбираете ИД оборудования и копируете первую строку. Если bat файл лежит не в папке с программой, тогда путь пишется в таком формате C:\dvbdream\dvbdream.exe.

Теперь мы можем создать ярлык батника на рабочем столе, сменить его имя к примеру на «Спутниковое ТВ», и сменить иконку на более красивую (Для смены значка правый клик по ярлыку->Свойства и нажать кнопку «Сменить значок»). При запуске ярлыка у нас сначала перезапуститься устройство, а потом уже включится программа:)

VN:F [1.9.20_1166]
Пожалуйста оцените статью, мне очень важно Ваше мнение!
Rating: 8.9/10 (18 votes cast)
Включение/Отключение устройства из командной строки (CMD), 8.9 out of 10 based on 18 ratings
Поделиться ссылкой с друзьями:

Comments

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

  2. а можно сделать ярлык если устройство включено отключить если отключено включить

  3. На планшете не систематизировано, при переходе в сон отключался сенсорный экран, приходилось перезапускать с помощью стилуса в диспетчере устройств.
    Решил написать программу,с ярлыком на рабочем столе для перезапуска, но т.к не программист, начал с азов программирования и пользование командной строкой. Много чего интересного подчерпнул, но цели не добился, т.к devcon в чистом виде не смог найти в интернете, пока не наткнулся на Вашу статью.
    Всё просто супер, спасибо огромное, помогло, положительных эмоций много:))

    1. павел, эта утилита только для упраления устройствами. Для управления программами можно использовать втроенные команды.
      Запустить — start firefox.exe
      Закрыть — taskkill /f /im firefox.exe

    1. ih, у данной утилиты есть параметр «status», можно его использовать для того что бы узнать в каком состоянии устройство и на основе этого условием(if) влючать или выключать его.
      Для примера: devcon status «PCI\VEN_115D&DEV_0003&SUBSYS_0181115D»

  4. Напишите пожалуйста полностью. Как это будет выглядеть с If ? Я в этом плохо разбираюсь. Очень надо. Заранее благодарю.

    1. Использую такой cmd-файл:
      devcon.exe status «нашID» |find «running» &&(devcon.exe disable «нашID» & exit /B)
      devcon.exe enable «нашID»
      Т.е. результат выполнения команды devcon status, содержащий текущий статус устройства, будет направлен команде find. Если она найдёт слово «running» (а devcon напишет или running, или disabled), то завершится без ошибки, устройство будет отключено и сценарий завершён. Иначе выполняется команда включения устройства.

      1. Спасибо за ответ. Но моя задача немного сложнее. При загрузке системы, устройство чаще всего не запускается.
        Вот, что выдаёт:

        C:\Windows\system32>devcon64 status «@USB\VID_0079*PID_0007\5&326C0CBC&0&10»
        USB\VID_0079&PID_0007\5&326C0CBC&0&10
        Name: USB- Device has a problem: 10.
        1 matching device(s) found.

        Если сделать рестарт устройства 1-3 раза, через команду devcon64 restatrt, оно запускается и работает нормально.Пишет:
        Driver is running.

        ЗАДАЧА: Как сделать, чтобы при запуске батника:
        1.Проверка статуса устройства, если оно запущено нормально (Driver is running.), то ничего не делать.
        2. Если не запустилось (Device has a problem: 10.), то devcon64 restatrt. Причём команда повторялась бы до тех пор, пока устройство не запуститься, то есть в статусе будет — Driver is running. Знаю, что нужно использовать if,findstr, for, но как это реализовать — не знаю.
        Обновление драйверов не предлагать. Устройство устаревшее, и чего я только не перепробовал, и не только я — всё бесполезно.

        Буду очень признателен за любую помощь. Заранее благодарю за ответ.

        1. Попробуем так:
          :rest
          devcon.exe status «HID\VID_0457&PID_1028&*» |find «running» ||(devcon.exe restart «HID\VID_0457&PID_1028&*» & goto rest)

  5. Подскажите, пожалуйста, какие следы оставляет использование devcon на удаленном компьютере? Реестр, журналы и тд. Спасибо.

  6. А если на сервере имеется два одинаковых сетевых адаптера, которые агрегированы (LACP) один из которых капризничает, нужно его перезапустить не трогая второй а ID у них одинаковый?

    1. SalaVila, если ID у них одинаковый, то скорее всего эти адаптеры являются одним устройством. Как Вы сейчас решаете проблему? К примеру вручную перезапускаете в диспетчере утройств или может быть в сетевых подключениях перевключаете адаптер?
      Если через сетевые подключения, можно попробовать следующий вариант:
      netsh interface set interface name=»Подключение по локальной сети» admin=DISABLED
      netsh interface set interface name=»Подключение по локальной сети» admin=ENABLED

  7. А у меня не видит устройство

    C:\Users\admin\Desktop>C:\Windows\System32\devconx64.exe disable «HID\VID_258A&PID_1205&REV_0100&MI_01&Col01»
    HID\VID_258A&PID_1205&MI_01&COL01\7&1154B406&0&0000 : Disable failed
    No matching devices found.

    Вроде всё правильно указал

    1. причём если сделать enable, то всё нормально отрабатывает
      Понять не могу в чём может быть дело

  8. Революционное обновление «XRumer 16.0 + XEvil»:
    решение бесплатно и быстро капч Google, Яндекса, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других типов captcha,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы — см. в Ютубе «XEvil: new OCR — captcha solver»

    XRumer201708

  9. Принципиально новое обновление «XRumer 16.0 + XEvil 3.0»:
    распознавание бесплатно и быстро капчи Google, Yandex, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других видов captcha,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Интересно — см. в YouTube «XEvil: new OCR — captcha solver»

    XRumer201708

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *