Я тут Devcon упоминал, и вот для чего. Задача такая, склепать батник для включения/выключения сетевой карты. Решаем:
Рабочий Devcon.exe
devcon.exe rescan
devcon find PCI* > PNP.log
Сетевая карта (даже встроенная) обычно висит на шине PCI.В файле
PNP.log
будет что-то типа этого:Выдираем ее ID, с помощью которого и будем ей рулить.
Открываем файл на редактирование, ищем название и то, что начинается от первого слэша с конца, до первого с конца двоеточия и будет искомым идентификатором:
PCIVEN_10EC&DEV_8168&SUBSYS_83A31043&REV_03
Этот ID для команды включения/отключения можно и сократить, например до ID производителя+ID оборудования, поставив в нужном месте звездочку (*), например так:PCIVEN_10EC&DEV_8168*
Но если вдруг у вас 2 одинаковые сетевые карты (на серверах бывает) — вырубятся обе.Выполняется одной простой командой:
devcon disable <device_id>
где вместо <device_id>
подставляем ранее найденный ID устройства. Т.е. в случае моей тестовой машины, команда выглядит как:devcon disable "PCIVEN_10EC&DEV_8168&SUBSYS_83A31043&REV_03"
devcon enable <device_id>
т.е. в моем случае:devcon enable "PCIVEN_10EC&DEV_8168&SUBSYS_83A31043&REV_03"
device_id
необходимо взять в кавычки!!! Иначе командный интерпретатор примет (из-за наличия в ID амперсанда — т.е. символа &) одну команду за последовательность команд, и тогда выполнится первая disable PCIVEN_10EC
, т.е. отключатся все PCI-устройства данного производителя, а остальные завершатся с ошибкой типа такой: "DEV_8168" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Включить сетевую карту
Отключить сетевую карту
Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/332413.html
Прокомментировать заметку можно по ссылке выше.