Утилита командной строки DevCon.exe ( Device Console ) входит в состав средств для разработки драйверов ( DDK ) и поставляется с исходным кодом и документацией на английском языке. С ее помощью можно включать, выключать, перезапускать, обновлять, удалять и опрашивать отдельные устройства или группы устройств. Программа DevCon также предоставляет необходимые разработчику драйвера сведения, которые недоступны с помощью диспетчера устройств. Утилита DevCon может использоваться во всех версиях Windows старше Win2k, включая 32-х и 64-битные
Формат командной строки DevCon:
devcon.exe [-r] [-m:\machine] command [. ]
Параметры командной строки:
-r — если задано, то после выполнения команды выполняется перезагрузка системы.
machine — имя или IP-адрес удаленного компьютера.
command — команда, выполняемая DevCon.
arg — аргументы выполняемой команды.
Для получения справки по использованию команды используется парамет help :
devcon.exe help — отобразить краткую справку по использованию DevCon
devcon.exe help install — отобразить справку по использованию команды install
Параметры командной строки:
classfilter — Разрешить изменение фильтров классов.
classes — Отобразить все классы настройки устройств.
disable — Отключить устройства, которые соответствуют определенному идентификатору оборудования или экземпляра.
driverfiles — Отобразить установленные файлы драйверов.
drivernodes — Отобразить все узлы драйверов устройств.
enable — Включить устройства, которые соответствуют определенному идентификатору оборудования или экземпляра.
find — Найти устройства, которые соответствуют определенному идентификатору оборудования или экземпляра.
findall — Найти устройства, включая отсоединенные.
help — Отображение справочной информации.
hwids — Отобразить идентификаторы оборудования.
install — Установить устройство в ручном режиме.
listclass — Отобразить все устройства для класса настройки.
reboot — Перезагрузить локальный компьютер.
remove — Удалить устройства, которые соответствуют определенному идентификатору оборудования или экземпляра.
rescan — Выполнить поиск нового оборудования.
resources — Отобразить ресурсы устройств.
restart — Перезагрузить устройства, которые соответствуют определенному идентификатору оборудования или экземпляра.
stack — Отобразить ожидаемый стек драйверов устройств.
status — Отобразить рабочее состояние устройств.
update — Обновить устройство в ручном режиме.
UpdateNI — Обновить устройство в ручном режиме без уведомления пользователя.
SetHwID — Добавить, удалить или изменить порядок идентификаторов оборудования для устройств с корневым перечислением.
Для использования утилиты DevCon.exe требуются административные привилегии ( "Запуск от имени Администратора" в среде Windows Vista / Windows 7 — 10 )
Примеры использования утилиты DevCon:
devcon -m:\SERVER find pci* — отобразить список всех PCI-устройств на удаленном компьютере с именем SERVER . Режим работы с удаленным подключением к другому компьютеру реализован только для ОС Windows XP / Windows Server 2003.
devcon -m:\192.168.0.1 find pci* > C:serverpci.txt — вывод списка всех PCI-устройств компьютера с IP-адресом 192.168.0.1 в текстовый файл C:serverpci.txt
devcon find usb* — отобразить список устройств USB на локальном компьютере.
devcon find usbstor* — отобразить только флэшки и съемные диски, подключенные к USB (устройства класса usbstor ). Список классов устройств можно получить по команде devcon classes
devcon find =Display — отобразить список устройств класса Dislpay .
devcon find *pnp07* — отобразить список устройств, идентификатор оборудования которых содержит строку pnp07
devcon find *VEN_8086* — отобразить список устройств, производителем которых является Intel ( идентификатор производителя оборудования содержит строку VEN_8086 )
Пример отображаемой информации:
PCIVEN_1002&DEV_5964&SUBSYS_ 7C26174B&REV_01 4&38B71F77&0&0008: RADEON 9200 SE Family (Microsoft )
PCIVEN_1002&DEV_5D44&SUBSYS_ 7C27174B&REV_01 4&38B71F77&0&0108: RADEON 9200 SE SEC Family (Microsoft )
PCIVEN_10EC&DEV_8139&SUBSYS_ 813910EC&REV_10 4&2E98101C&0&48F0: Realtek RTL8139 Family PCI Fast Ethernet NIC
PCIVEN_11AB&DEV_4320&SUBSYS_ 811A1043&REV_13 4&2E98101C&0&28F0: Marvell Yukon 88E8001/8003/8010
PCI Gigabit Ethernet Controller
PCIVEN_11AB&DEV_5041&SUBSYS_ AD0E779F&REV_01 4&5D18F2DF&0 : AT7B35J8 IDE Controller
PCIVEN_8086&DEV_244E&SUBSYS_ 00000000&REV_C2 3&267A616A&0&F0: Intel(R) 82801 PCI — 244E
PCIVEN_8086&DEV_24D0&SUBSYS_ 00000000&REV_02 3&267A616A&0&F8: Intel(R) 82801EB LPC- — 24D0
PCIVEN_8086&DEV_24D1&SUBSYS_ 80A61043&REV_02 3&267A616A&0&FA: Intel(R) 82801EB Ultra ATA Storage — 24D1
PCIVEN_8086&DEV_24D2&SUBSYS_ 80A61043&REV_02 3&267A616A&0&E8: Intel(R) 82801EB USB — — 24D2
PCIVEN_8086&DEV_24D3&SUBSYS_ 80A61043&REV_02 3&267A616A&0&FB: Intel(R) 82801EB SMBus — 24D3
PCIVEN_8086&DEV_24D4&SUBSYS_ 80A61043&REV_02 3&267A616A&0&E9: Intel(R) 82801EB USB — — 24D4
PCIVEN_8086&DEV_24D5&SUBSYS_ 80F31043&REV_02 3&267A616A&0&FD: SoundMAX Integrated Digital Audio
PCIVEN_8086&DEV_24D7&SUBSYS_ 80A61043&REV_02 3&267A616A&0&EA: Intel(R) 82801EB USB — — 24D7
PCIVEN_8086&DEV_24DB&SUBSYS_ 80A61043&REV_02 3&267A616A&0&F9: Intel(R) 82801EB Ultra ATA Storage — 24DB
PCIVEN_8086&DEV_24DD&SUBSYS_ 80A61043&REV_02 3&267A616A&0&EF: Intel(R) 82801EB USB2 — — 24DD
PCIVEN_8086&DEV_24DE&SUBSYS_ 80A61043&REV_02 3&267A616A&0&EB: Intel(R) 82801EB USB — — 24DE
PCIVEN_8086&DEV_2570&SUBSYS_ 00000000&REV_02 3&267A616A&0&00: Intel(R) 82865G/PE/P/GV/82848P CPU — I/O — 2570
PCIVEN_8086&DEV_2571&SUBSYS_ 00000000&REV_02 3&267A616A&0&08: Intel(R) 82865G/PE/P/GV/82848P CPU — AGP — 2571
18 matching device(s) found on \SERVER
Для отображения списка устройств, в том числе отсутствующих или отключенных, используется подкоманда findall
devcon -m:\comp findall *VEN_10ec* — отобразить список устройств производителя Realtek ( VEN_10EC ), включая отсутствующие, на удаленном компьютере comp . (только на Windows XP / Windows Server 2003).
devcon.exe resources * — отобразить список всех устройств и всех используемых ими ресурсов системы.
Пример отображаемой информации:
Name: Device is not using any resources.
Name: Intel(R) Pentium(R) 4 CPU 2.40GHz
Device is not using any resources.
Name: Device has the following resources reserved:
Name: Device has the following resources reserved:
Name: Device has the following resources reserved:
Name: Device is currently using the following resources:
Name: Device is currently using the following resources:
Name: Device is currently using the following resources:
Name: Device is currently using the following resources:
По каждому устройству выдается его имя и список используемых ресурсов:
IO : 03f0-03f5 — диапазон портов ввода-вывода ( 3f0-3f5 ).
DMA: 2 — номер канала прямого доступа к памяти ( например, канал 2 )
IRQ: 6 — номер прерывания, используемого устройством ( например 6 ).
MEM : fed20000-fed8ffff — диапазон адресов используемой оперативной памяти
devcon resources =ports — отобразить ресурсы, используемые устройствами класса ports . К данному классу относятся контроллеры параллельных и последовательных портов ввода-вывода (порты LPT и COM )
devcon driverfiles =net — отобразить список используемых драйверов сетевых устройств ( устройств класса net ). Отображается имя устройства, источник установленного драйвера, пути и мена файлов:
PCIVEN_10EC&DEV_8139&SUBSYS _813910EC&REV_10 4&2E98101C&0&48F0
Name: Realtek RTL8139 Family PCI Fast Ethernet NIC
Driver installed from c:windowsinf
etrtsnt.inf [RTL8139.ndi]. 1 file(s) used by driver:
PCIVEN_11AB&DEV_4320&SUBSYS _811A1043&REV_13 4&2E98101C&0&28F0
Name: Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller
Driver installed from c:windowsinfoem6.inf [SLYukCopGigFAN.ndi]. 1 file(s) used by driver:
Name: Driver installed from c:windowsinf
etrasa.inf [Ndi-Mp-L2tp]. No files used by driver
devcon stack =net > stack-net — записать в текстовый файл stack-net стек драйверов класса Net . Стек включает в себя драйвер устройства, нижний и верхний фильтр, системную службу, обслуживающую устройство.
PCIVEN_10EC&DEV_8139&SUBSYS _813910EC&REV_10 4&2E98101C&0&48F0
Name: Realtek RTL8139 Family PCI Fast Ethernet NIC
PCIVEN_10EC&DEV_8139&SUBSYS _813910EC&REV_10 4&2E98101C&0&48F0 — код экземпляра устройства.
Name — название
Setup Class — класс установки.
Controlling service — управляющий сервис.
Для определения текущего состояния устройства используется подкоманда status :
devcon status ROOTRDP* — отобразить состояние драйверов, идентификаторы которых начинаются строкой ROOTRDP , т. е. используемых службой терминалов.
Установка нового устройства возможна только на локальном компьютере и требуется обязательное наличие INF-файла :
devcon -r install %WINDIR%InfNetloop.inf *MSLOOP — установить новый экземпляр петлевого адаптера. Ключ -r требует перезагрузку после установки драйвера.
Для изменения фильтров драйверов используются команды:
devcon classfilter upper !filter1 !filter2 — удалить два заданных верхних фильтра. Признаком действия на удаление является символ ! перед именем фильтра.
devcon classfilter lower !badfilter +goodfilter — заменить нижний фильтр "badfilter" на "goodfilter".
Изменения для фильтров вступают в силу либо при перезапуске основного драйвера, либо при перезагрузке компьютера. Подробную справку по управлению фильтрами можно получить по команде devcon help classfilter
Утилита DevCon позволяет останавливать, запускать или перезапускать отдельно выбранные устройства или группы устройств.
devcon disable =mouse — отключить драйвер устройства класса mouse , т.е отключить мышь.
devcon enable =mouse — включить драйвер устройства класса mouse
devcon restart =mouse — перезапустить драйвер устройства класса mouse
В практике сетевого администрирования, команду DevCon нередко используют для перезапуска сетевых адаптеров. Например, для сетевого адаптера Realtek RTL8139, с идентификатором PCIVEN_10EC&DEV_8139 . . . можно воспользоваться командой:
devcon restart "PCIVEN_10EC&DEV_8139*"
Обратите внимание — двойные кавычки в начальной части идентификатора сетевого адаптера обязательны. В противном случае, символ & будет обработан интерпретатором CMD Windows как стандартный символ объединения команд — команды devcon restart "PCIVEN_10EC и команды DEV_8139* . Первая выполнит рестарт для всех существующих в системе адаптеров производителя Realtek, а вторая вызовет сообщение о том, что DEV_8139* не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Очень часто утилита DevCon используется для блокировки сетевой активности системы (временного отключения всех сетевых устройств):
devcon disable =net
Также, утилита может использоваться для перезапуска зависших модемов и беспроводных USB-адаптеров с использованием планировщика и сценария, проверяющего доступность какого-либо узла в интернет и выполняющего команду devcon restart в случае его недоступности.
Команда DevCon возвращает следующие коды ErrorLevel:
0 — команда выполнена успешно;
1 — требуется перезагрузить компьютер;
2 — команда не выполнена;
3 — синтаксическая ошибка.
Как уже упоминалось выше, утилита devcon не является стандартным компонентом системы, и не устанавливается вместе с Windows, однако, ее можно скачать в составе некоторых служебных пакетов от Microsoft ( Windows Driver Kit, Visual Studio, Windows SDK for desktop apps). Утилиту можно извлечь из перечисленных пакетов и для удобства использования, добавить в каталог, присутствующий в путях поиска исполняемых файлов, задаваемых переменной PATH , например Windowssystem32.
Обратите внимание на то, что 64-разрядная версия утилиты devcon64 не работает в 64-разрядных Windows 10 (Windows 8, 8.1, Windows 7). Она разрабатывалась только для 64-разрядной Windows XP. Если у Вас другая ОС Windows – пользуйтесь либо 32-разрядной версей DevСon.exe , которая прекрасно работает во всех версиях Windows старше Windows 2000, включая и 64-разрядные, либо 64-разрядной версией из пакета EWDK для Windows 10. Последняя не проверялась в среде 64-разрядной ОС Windows XP.
Страница с описанием на английском языке и ссылкой для скачивания DevCon в составе пакетов для разработчиков драйверов на сайте Microsoft. — На данной странице нет прямой ссылки для скачивания DevCon, но, например, имеется ссылка на страницу с актуальной версией Enterprise Windows Driver Kit (EWDK), а также инструкции по его загрузке и установке. Все пакеты, в состав которых включена утилита DevCon, имеют внушительный объем – придется скачивать несколько гигабайт данных. После установки выбранного пакета потребуется определить место расположения файлов DevCon , и при необходимости, добавить путь исполняемых файлов в системную переменную PATH или скопировать их в уже существующий каталог для поиска.
В конце данной страницы имеется ссылка для скачивания готового архива с уже извлеченными из EWDK для Windows 10 32-х и 64-разрядными версиями DevCon
Работа с устройствами из командной строки DevCon.exe x64
Для начала скажу, что DevCon для 64 разрядных систем (например для Windows Server 2008R2) не очень просто найти. Для этого надо скачать комплект для разработчика на много мегабайт, и там уже его обнаружить. Так что выкладываю отдельно в аттаче. Прога позволяет на 99% обойтись без диспетчера устройств и графического интерфейса.
Интерфейс довольно прост. Например команда для перезагрузки USB Хаба выглядит примерно так:
devconx64.exe restart *root_hub*
Или конкретную инстанцию устройства:
devconx64 restart “@USBROOT_HUB204&11717588&0”
Отключение устройства с заданным ID:
devconx64 disable “PCIVEN_1969&DEV_1083&SUBSYS_E0001458&REV_C0”
Включение устройства с заданным ID:
devconx64 enable “PCIVEN_1969&DEV_1083&SUBSYS_E0001458&REV_C0”
Что бы узнать ID заходим в Диспетчер устройств, открываете свойства нужного Вам устройства, переходите во вкладку Сведения, в выпадающем списке выбираете ИД оборудования и копируете первую строку.
Чтобы найти все USB устройства в системе:
devconx64 find *usb*
BoostOrDie
Свой человек
Почитав данный форум я понял одно, что мало кто знаком с отличной утилитой DevCon64
Данная утилита позволяет ПО НАСТОЯЩЕМУ произвести перезапуск драйвера оборудования. Это не фигня с отключить и включить оборудование, это другое.
Для работы утилиты нужно знать ID того, оборудования, которые нужно перезагрузить.
Найти его можно в Диспетчер устройств, выбираем наше устройство -> Свойства -> вкладка Сведения -> ниже копирум ИД оборудования, например "PCIVEN_10EC&DEV_8168&CC_0200"
ВАЖНО! Нужно все знаки " & " заменить на " * "
У меня галимый wifi адаптер TP-LINK WL722N v1 он очень часто виснет или отваливается. я долго ломал голову как мне защититься от его косяков и набрел на утилиту devcon64.
Скачать утилиту можно ТУТ (Там инструкции к утилите и внизу страницы ссылки на скачивание утилиты.)
Вообщем что нужно сделать, чтобы перезагрузить драйвер WiFi модуля?
1) Создаем папку и кладем в нее devcon64.exe (у меня он лежит в папке со всеми моими скриптами)
2) Создаем .bat файл (назовем его wifi_fail.bat) следующего содержания:
PS исполняемые файлы метод пауз и задержек вы можете свои вписать, у меня так.
Все, теперь наш несчастный wifi адаптер перезагружен полностью и он уже ищет свою сеть и подключается к ней (в управление сетями нужно поставить две галочки: Подключаться автоматически и подключаться даже если не ведет вещания. Но вы это должны и сами знать)
3) Но вы скажите "это его будет каждый раз ребутать в итоге будут просадки хешрейта и тд. Как сделать так, чтобы дрова ребутались только если сети нет?"
Для этого мы пишем еще 1 батник, а-ля вачдог или PingДог, называйте как хотите:
Данный батник будет запускать друго батник только елси команда ping не удастся.
4) Для дергания батников я использую xStarter, о нем я расскажу позже. Для тех, кто не приемлет лишнего софта вот вариант автобатника PingDog’а:
Замените значение 900 ( в секундах) на то, как часто вы хотите чтобы он проверял наличие сети.
Вторая, хотя наверное даже самая первая проблема майнинг ферм — отвал видео драйверов (видео карт). Вам повезет если карта сама сможет подняться, но часто происходит так, что она пропадает из майнера вообще, а вы об этом не знаете, или вам долго добираться до фермы чтобы поднять ее.
1) Для работы данного батника нужно предварительно в диспетчере устройств найти ID оборудования видео карты (описывал выше в начале).
Если у вас все карты на ферме одинаковые, то скорей всего у них будет одинаковый ID. так что можно взять его с любой, например у меня PCIVEN_10DE&DEV_1C03&CC_0300
Если у вас разные карты стоят — то нужно взять каждый различный ID
Не забываем заменять знаки "&" на звездочки.
Если все карты одинаковые, то достаточно 1 строки с ID карты — будут перезагржены все карты с таким ID.
Если карты разные, то нужно вставить строку с командой для каждого ID.
2) Создаем .bat файл:
А значит будет перезапускать только когда драйвер фактически отвалился.
3) Настраиваем xStarter.
— Создаем новую задачу
— Даем ей название
— В "запустить задачу" выбираем "по событию"
— В "Событие" выбираем "NT event"
— В "Источник" выбираем "Hardware event" (вроде так, я по памяти пишу могу ошибится тут, поправлю попозже)
— В "Тип сообщения" ставим галочку "Все сообщения"
— "Событие содержит" — пишем текст , которые содержится в ошибке драйвер, например "Видеодрайвер".
— Переходим в вкладку Actions
— В "имя файла" указываем путь до нашего батника для перезапуска драйвера"
— сверху где два зеленые стрелочки етсь кнопка с двумя красными галочками, ее надо нажать
— Жмем применить
— Готово.
Программа должна висеть в фоне. Она потребялет мало ресурсов, а делает много плезного. Она также может запускать сетевой вачдог по времени.
А главное на рабочем столе не будет лишних командных окон.
Надеюсь это будет кому то полезным. Извините за какие то неточности, я не так давно в майнинге, но решил что это будет полезным вам.
PS все комментарии из кода нужно удалить чтобы батник работал!