Проект ifconfig.cmd - это очередная моя тренировка.
Цель проекта - предоставить unix-like скрипт к управлению сетевыми интерфейсами в среде Windows из коммандной строки.
Все дело в том, что просто интерфейса netsh или ipconfig недостаточно.
Во-первых, очень неудобно держать в голове десять разных комманд разных интерпретаторов, помнить их условия работы.
Скажем, для прочтения информации о настройках отключенных интерфейсов, пользователь должен обратиться к
соответствующим ветвям реестра, так как netsh это предоставит только будучи запущенной с правами
администратора на локальной системе. ipconfig так и, вообще, не предоставит такой информации.
Во-вторых, во время написания скрипта и некоторых его шаблонов, выяснилось, что netsh.exe для операционных систем Windows XP
и Windows Server 200x разные, что существенно влияет на "возможность" управлять устройствами из коммандной строки.
Вот, так вот, удобство на удобстве.
К великому своему изумлению, я обнаружил, что и WMI тоже не располагает нужным инструментарием для управления и получения информации об интерфейсах.
В-третьих, уместно говорить о стандартизации утилит управления систем.
Скажем, умные администраторы BSD, GNU/Linux или других unix-like прекрасно "адаптируются" в смежных
системах, имея опыт работы только в одной из них. Это говорит о наличии философии ОС и их стандартах.
Чтобы было понятно, как устроен скрипт, я опишу его части.
Скрипт содержит в себе часть кода на VBScript и остальное на CMD.
Скрипт cmd, прежде всего, реализовывает практики программирования выделения подпроцедур и обработки аргументов,
а, также, практики инкапсуляции в себе файлов других скриптов, что будет интересно новичкам в cmd.
Скрипт VBScript, прежде всего, интересен с точки зрения получения информации из реестра и WMI-среды.
Алгоритм прост.
IPConfig.vbs - скрипт, который реализовывает листинг существующих интерфейсов и их конфигураций.
Его ограничение - это работа только с PCI и USB устройствами. Впрочем, это можно исправить, расширив всего-лишь маски поиска внутри.
HWList.vbs - скрипт, который реализовывает листинг существующих интерфейсов и их DeviceID, необходимых для Devcon.exe.
Его ограничение - это работа только с PCI и USB устройствами. Впрочем, это можно исправить, расширив всего-лишь маски поиска внутри.
base642bin.vbs - скрипт, который реализовывает декапсуляцию утилиты devcon.exe от Microsoft для 32-битных платформ.
bin2base64.vbs - скрипт, который реализовывает инкапсляцию бинарных файлов в поток base64.
ifconfig.cmd - базовая, совсем сырая версия ifconfig.cmd, реализующая пока задачи листинга.
Скоро будет реализовано внедрение скрипта VBScript и процедуры управления интерфейсами через netsh.