DevCon - диспетчер устройств в командной строке Windows.

Утилита командной строки 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 Victa /Windows 7 / Windows 8 )

Примеры использования команд утилиты 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 )

Пример отображаемой информации:

PCI\VEN_1002&DEV_5964&SUBSYS_7C26174B&REV_01\4&38B71F77&0&0008: RADEON 9200 SE Family (Microsoft )
PCI\VEN_1002&DEV_5D44&SUBSYS_7C27174B&REV_01\4&38B71F77&0&0108: RADEON 9200 SE SEC Family (Microsoft )
PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&2E98101C&0&48F0: Realtek RTL8139 Family PCI Fast Ethernet NIC
PCI\VEN_11AB&DEV_4320&SUBSYS_811A1043&REV_13\4&2E98101C&0&28F0: Marvell Yukon 88E8001/8003/8010 
PCI Gigabit Ethernet Controller
PCI\VEN_11AB&DEV_5041&SUBSYS_AD0E779F&REV_01\4&5D18F2DF&0   : AT7B35J8 IDE Controller
PCI\VEN_8086&DEV_244E&SUBSYS_00000000&REV_C2\3&267A616A&0&F0: Intel(R) 82801 PCI  - 244E
PCI\VEN_8086&DEV_24D0&SUBSYS_00000000&REV_02\3&267A616A&0&F8: Intel(R) 82801EB  LPC- - 24D0
PCI\VEN_8086&DEV_24D1&SUBSYS_80A61043&REV_02\3&267A616A&0&FA: Intel(R) 82801EB Ultra ATA Storage  - 24D1
PCI\VEN_8086&DEV_24D2&SUBSYS_80A61043&REV_02\3&267A616A&0&E8: Intel(R) 82801EB USB  - - 24D2
PCI\VEN_8086&DEV_24D3&SUBSYS_80A61043&REV_02\3&267A616A&0&FB: Intel(R) 82801EB SMBus  - 24D3
PCI\VEN_8086&DEV_24D4&SUBSYS_80A61043&REV_02\3&267A616A&0&E9: Intel(R) 82801EB USB  - - 24D4
PCI\VEN_8086&DEV_24D5&SUBSYS_80F31043&REV_02\3&267A616A&0&FD: SoundMAX Integrated Digital Audio
PCI\VEN_8086&DEV_24D7&SUBSYS_80A61043&REV_02\3&267A616A&0&EA: Intel(R) 82801EB USB  - - 24D7
PCI\VEN_8086&DEV_24DB&SUBSYS_80A61043&REV_02\3&267A616A&0&F9: Intel(R) 82801EB Ultra ATA Storage  - 24DB
PCI\VEN_8086&DEV_24DD&SUBSYS_80A61043&REV_02\3&267A616A&0&EF: Intel(R) 82801EB USB2  - - 24DD
PCI\VEN_8086&DEV_24DE&SUBSYS_80A61043&REV_02\3&267A616A&0&EB: Intel(R) 82801EB USB  - - 24DE
PCI\VEN_8086&DEV_2570&SUBSYS_00000000&REV_02\3&267A616A&0&00: Intel(R) 82865G/PE/P/GV/82848P CPU - I/O  - 2570
PCI\VEN_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 * - отобразить список всех устройств и всех используемых ими ресурсов системы.

Пример отображаемой информации:

ACPI\FIXEDBUTTON\2&DABA3FF&0
    Name:     Device is not using any resources.
ACPI\GENUINEINTEL_-_X86_FAMILY_15_MODEL_4\_0
    Name: Intel(R) Pentium(R) 4 CPU 2.40GHz
    Device is not using any resources.
ACPI\PNP0000\4&35F762C4&0
    Name:     Device has the following resources reserved:
        IO  : 0020-0021
        IO  : 00a0-00a1
ACPI\PNP0100\4&35F762C4&0
    Name:     Device has the following resources reserved:
        IO  : 0040-0043
        IRQ : 0
ACPI\PNP0200\4&35F762C4&0
    Name:     Device has the following resources reserved:
        IO  : 0000-000f
        IO  : 0081-0083
        IO  : 0087-0087
        IO  : 0089-008b
        IO  : 008f-008f
        IO  : 00c0-00df
        DMA : 4
ACPI\PNP0303\4&35F762C4&0
    Name:     Device is currently using the following resources:
        IO  : 0060-0060
        IO  : 0064-0064
        IRQ : 1
ACPI\PNP0501\1
    Name:     Device is currently using the following resources:
        IO  : 03f8-03ff
        IRQ : 4
ACPI\PNP0501\2
    Name:     Device is currently using the following resources:
        IO  : 02f8-02ff
        IRQ : 3
ACPI\PNP0700\4&35F762C4&0
    Name:     Device is currently using the following resources:
        IO  : 03f0-03f5
        IO  : 03f7-03f7
        DMA : 2
        IRQ : 6
. . . 



По каждому устройству выдается его имя и список используемых ресурсов:

IO : 03f0-03f5 - диапазон портов ввода-вывода ( 3f0-3f5 ).
DMA: 2 - номер канала прямого доступа к памяти ( например, канал 2 )
IRQ: 6 - номер прерывания, используемого устройством ( например 6 ).
MEM : fed20000-fed8ffff - диапазон адресов используемой оперативной памяти

devcon resources =ports - отобразить ресурсы, используемые устройствами класса ports. К данному классу относятся контроллеры параллельных и последовательных портов ввода-вывода (порты LPT и COM )

devcon driverfiles =net - отобразить список используемых драйверов сетевых устройств ( устройств класса net ). Отображается имя устройства, источник установленного драйвера, пути и мена файлов:

PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&2E98101C&0&48F0
    Name: Realtek RTL8139 Family PCI Fast Ethernet NIC
    Driver installed from c:\windows\inf\netrtsnt.inf [RTL8139.ndi]. 1 file(s) used by driver:
        C:\WINDOWS\system32\DRIVERS\RTL8139.sys
PCI\VEN_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:\windows\inf\oem6.inf [SLYukCopGigFAN.ndi]. 1 file(s) used by driver:
        C:\WINDOWS\system32\DRIVERS\yk51x86.sys
ROOT\MS_L2TPMINIPORT\0000
    Name:     Driver installed from c:\windows\inf\netrasa.inf [Ndi-Mp-L2tp]. No files used by 
. . . 


devcon stack =net > stack-net - записать в текстовый файл stack-net стек драйверов класса Net. Стек включает в себя драйвер устройства, нижний и верхний фильтр, системную службу, обслуживающую устройство.

PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&2E98101C&0&48F0
    Name: Realtek RTL8139 Family PCI Fast Ethernet NIC
    Setup Class: {4D36E972-E325-11CE-BFC1-08002BE10318} Net
    Controlling service:
        rtl8139


PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&2E98101C&0&48F0 - код экземпляра устройства.
Name - название
Setup Class - класс установки.
Controlling service - управляющий сервис.

Для определения текущего состояния устройства используется подкоманда status:

devcon status ROOT\RDP* - отобразить состояние драйверов, идентификаторы которых начинаются строкой ROOT\RDP, т. е. используемых службой терминалов.

Установка нового устройства возможна только на локальном компьютере и требуется обязательное наличие INF-файла :

devcon -r install %WINDIR%\Inf\Netloop.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, с идентификатором PCI\VEN_10EC&DEV_8139 . . . можно воспользоваться командой:

devcon restart "PCI\VEN_10EC&DEV_8139*"

Обратите внимание - двойные кавычки в начальной части идентификатора сетевого адаптера обязательны. В противном случае, символ & будет обработан интерпретатором CMD Windows как стандартный символ объединения команд - команды devcon restart "PCI\VEN_10EC и команды DEV_8139* . Первая выполнит рестарт для всех существующих в системе адаптеров производителя Realtek, а вторая вызовет сообщение о том, что DEV_8139* не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Очень часто утилита DevCon используется для блокировки сетевой уктивности системы (временного отключения всех сетевых устройств):

devcon disable =net

Также, утилита может использоваться для перезапуска зависших модемов и беспроводных USB-адаптеров с использованием планировщика и сценария, проверяющего доступность какого-либо узла в интернет и выполняющего команду devcon restart в случае его недоступности.

Команда DevCon возвращает следующие коды ErrorLevel:

0 - команда выполнена успешно;
1 - требуется перезагрузить компьютер;
2 - команда не выполнена;
3 - синтаксическая ошибка.

Как уже упоминалось выше, утилита devcon не является стандартным компонентом системы, и не устанавливается вместе с Windows, однако, ее можно добавить в каталог, присутствующий в путях поиска исполняемых файлов, например \Widows\system32, и использовать как дополнительное средство управления устройствами в Windows.

Страница с описанием и ссылкой на скачивание DevCon на сайте Microsoft.

DevCon32.zip ( 16 кб. )
- скачать ZIP-архив утилиты DevCon.exe для 32-разрядных ОС Windows. Работает в 32 и 64 разрядных ОС Windows Vista 7 8

DevCon64.zip ( 28 кб) - скачать ZIP-архив утилиты DevCon.exe для 64-разрядной ОС Windows XP. Не работает в 64-разрядных ОС Windows 7/8.








Весь список команд CMD Windows