DevCon - диспетчер пристроїв у командному рядку Windows. Не є внутрішньою або зовнішньою командою програми, що виконується (adb, javac, telnet, fastboot) Приклади використання утиліти DevCon

💖 Подобається?Поділися з друзями посиланням

При спробі відкрити будь-яку команду через вікно службової програми або консоль, ви стикаєтеся з помилкою – «Ім'я файлу» не є внутрішньою чи зовнішньою командою, яку виконує програма або пакетний файл. Система вперто не відкриває файл з якихось причин і це дуже дратує. Причиною цього може бути один із кількох варіантів: неправильно вказано шлях до файлу та відсутність компонента в системі взагалі, тобто за вказаною адресою його не існує.

Основні причини, через які з'являється помилка «не є внутрішньою чи зовнішньою командою»

Як вже було сказано, одна з причин полягає в неправильній вказівці шляху до файлу, що відкривається. Зазвичай шлях до файлу прописаний у змінній «Path» у системі, має бути вказаний суворий шлях до директорії, в якому розміщено потрібні файли. Якщо є якісь помилки в налаштуваннях при вказівці шляху до змінної, або при вказівці імені файлу, то система видаватиме саме таку помилку – «ім'я файлу» не є внутрішньою чи зовнішньою командою, яку виконує програма.

Насамперед необхідно вказати точний шлях змінної "Path" операційній системі, щоб не виникало помилок при відкритті файлу. Для цього потрібно напевно знати розташування папки. Наприклад, звернемося до програми, яка надалі працюватиме з виконуваним файлом у певній папці.

Змінна "Path" - це змінна операційної системи, яка служить для того, щоб знайти зазначені об'єкти, що виконуються через командний рядок або термінал. Знайти її можна на панелі управління Windows. У нових версіях Віндовста інших ОС вказівку вручну зазвичай не потрібно.

Вказуємо правильний шлях у змінній path на Windows 7

Щоб правильно вказати шлях, необхідно знати точне розташування файлу. Якщо файл програми, який потрібно відкрити, лежить на диску в С: Program Files Java jdk 1.8.0.45, тоді цей шлях потрібно скопіювати і вказати в системній змінній для подальшого відкриття.


Якщо помилка буде з'являтися знову, спробуйте перенести програму в робочі директорії диска зі встановленою операційною системою, наприклад, /System32. З цією директорією Віндовс працює частіше.

Також помилки виникають через відсутність компонентів програми. Усунути їх можна, доповнивши потрібними. Наприклад візьмемо компонент «Telnet». Щоб його увімкнути, перейдіть до:


Задати змінну "Path" в ОС Windows 8/8.1/10

  1. Заходимо на "Панель управління".
  2. Клацаємо посилання « Додаткові параметрисистеми».
  3. Знаходимо «Змінні середовища». У цьому розділі потрібно вибрати "Path". Далі "Змінити", якщо немає готової - створити заново.
  4. У пункті «Зміна системної змінної» вкажіть потрібне значення та підтвердіть кнопкою «Ок». Закриваємо і решту всіх вікон, клацаючи «Ок».
  5. Відкрийте командний рядок або термінал і спробуйте знову ввести ваш запит. Нині має все працювати справно.

Утиліта командного рядка DevCon.exe (Dev ice Con sole) входить до складу засобів для розробки драйверів (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)

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

ACPI\PNP0100\4&35F762C4&0

Name: Device has following resources reserved:

ACPI\PNP0200\4&35F762C4&0

Name: Device has following resources reserved:

ACPI\PNP0303\4&35F762C4&0

Name: Device currently using the following resources:

Name: Device currently using the following resources:

ACPI\PNP0700\4&35F762C4&0

Name: Device 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). Відображається ім'я пристрою, джерело встановленого драйвера, шляхи та обміну файлів:

Driver installed from c:\windows\inf\netrtsnt.inf . 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 . 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 . No files used by driver

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

PCI\VEN_10EC&DEV_8139&SUBSYS _813910EC&REV_10\ 4&2E98101C&0&48F0

Назви: Realtek RTL8139 Family PCI Fast Ethernet NIC

Setup Class: (4D36E972-E325-11CE -BFC1-08002BE10318) Net

Controlling service:

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, однак її можна завантажити у складі деяких службових пакетів від Microsoft (Windows Driver Kit, Visual Studio, Windows SDK for desktop apps). Утиліту можна витягти з перелічених пакетів і для зручності використання, додати до каталогу, присутній у шляхах пошуку виконуваних файлів, що задаються змінною PATHнаприклад \Windows\system32.

Зверніть увагу на те, що 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або скопіювати їх у вже існуючий каталог для пошуку.

Завантажити ZIP-архів 32-розрядної утиліти DevCon.exe. Працює в 32- та 64-розрядних ОС Windows Vista, Windows 7 і пізніших.

Завантажити ZIP-архів утиліти DevCon.exe, розробленої лише для 64-розрядної ОС Windows XP. Непрацює в 64-розрядних ОС Windows Vista, Windows 7/8 та пізніших.

Завантажити ZIP-архів утиліти DevCon.exe 32-х та 64-розрядних ОС з пакета Enterprise Windows Driver Kit для Windows 10, version 1804(EWDK). Перевірено на серверних ОС Windows та 32-х та 64-розрядних ОС Windows 7-10.

Повернемося до вирішення мого завдання. Щоб відобразити всі наявні в системі мережні пристрої, необхідно ввести наступне:

C:\>devcon.exe find =net

Програма відобразила 7 пристроїв! У мене на сервері всього 2 мережеві карти Intel® PRO/1000 EB Network Connection. Але тут я згадав, що диспетчер пристроїв не відображає приховані пристрої. Щоб їх побачити, необхідно у вікні диспетчера пристроїв вибрати в меню "Вид" -> "Показати приховані пристрої". Тепер все гаразд! :)

Для того, щоб відключити всі показані мережеві пристрої, необхідно дати наступну команду (краще не робити цього віддалено!):

C:\>devcon.exe disable =net

Диспетчер пристроїв чесно покаже, що всі мережеві пристрої відключені. Мережа повністю відключена, що нам і потрібно.

Щоб увімкнути мережні пристрої, необхідно дати команду:

C:\>devcon.exe enable =net

Проконтролюємо увімкнення всіх мережних пристроїв у диспетчері пристроїв.

Нам залишилося написати два командних файлуіз зазначеними вище командами включення та відключення мережевих пристроїв та зробити на основі них завдання, щоб вони виконувались у необхідний час.

Мені залишилося тільки нагадати, оскільки за допомогою програми DevCon ви можете вимкнути практично будь-який пристрій свого комп'ютера, користуватися ним треба дуже обережно! Не відключайте пристрої по масці, не відключайте невідомі вам пристрої, ви можете домогтися повної непрацездатності своєї операційної системи.



Розповісти друзям