Гид по технологиям

Переключение сетевых настроек в Windows с помощью VBScript

6 min read Сеть Обновлено 31 Dec 2025
Переключение сетевых настроек Windows VBScript
Переключение сетевых настроек Windows VBScript

Окно настроек сети в Windows и адаптеры

В рабочей среде часто возникает необходимость менять сетевые настройки вручную: дома ноутбук с закономерно заданным статическим IP, а в офисе — DHCP; или инженеру нужно временно подключиться к изолированной сети в здании. Открывать свойства адаптера, переключать параметры и вводить адрес аккуратно утомительно. Решение — автоматизировать процесс одним кликом.

В этой статье вы найдёте:

  • скрипт для установки статического IP;
  • скрипт для включения DHCP;
  • объединённый скрипт с вводом от пользователя;
  • практические рекомендации, контрольные проверки и варианты улучшения.

Почему стоит использовать скрипт

Коротко: экономия времени, воспроизводимость, меньше ошибок при ручном вводе.

Если вы часто переключаете конфигурации — скрипт устраняет риск опечатки (например, неверная маска подсети или шлюз) и ускоряет переходы между сетями. Он полезен системным администраторам, инженерам техподдержки и инженерам на площадках.

Важно: скрипт меняет сетевые настройки на машине, поэтому применяйте с правами администратора.

Требования и подготовка

  • Windows (любой поддерживаемый выпуск, где доступен WMI).
  • Права локального администратора для изменения сетевых настроек.
  • Сохранение файлов как текст с расширением .wsf (если следовать примерам с тегами) или .vbs для обычного VBScript.
  • Резервная запись текущих настроек (рекомендуется перед массовым применением).

Примечание: в примерах кода ниже приведены фрагменты, которые в исходной публикации автор рекомендует оборачивать так: “” в конце, если вы вставляете код в .wsf контейнер. В обычном файле .vbs этого делать не нужно.

Создание скрипта для установки статического IP

Ниже — простой VBScript, который жёстко задаёт IP, маску и шлюз. Сохраните как .vbs или используйте .wsf, если оборачиваете в контейнерные теги.

Option Explicit
On Error Resume Next
Dim objWMIService
Dim objNetAdapter
Dim strComputer
Dim arrIPAddress
Dim arrSubnetMask
Dim arrGateway
Dim colNetAdapters
Dim errEnableStatic
Dim errGateways
strComputer = "."
arrIPAddress = Array("192.168.1.106")
arrSubnetMask = Array("255.255.255.0")
arrGateway = Array("192.168.1.1")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\\root\\cimv2")
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter in colNetAdapters
 errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)
 If Not errEnableStatic = 0 Then
  WScript.Echo "Failure assigning IP/Subnet."
 End If
 errGateways = objNetAdapter.SetGateways(arrGateway)
 If Not errGateways = 0 Then
  WScript.Echo "Failure assigning Gateway."
 End If
Next
WScript.Quit

Как это работает, в двух строках: скрипт обращается к службе WMI, находит все включённые сетевые адаптеры (IPEnabled=TRUE) и для каждого вызывает методы EnableStatic и SetGateways с массивами значений.

Сообщение об отсутствии интернет-соединения после установки статического IP

После применения статического IP вы, возможно, потеряете подключение к Интернету — это ожидаемо, если адрес не совпадает с сетевой инфраструктурой текущего подключения.

Скрипт для включения DHCP

Код для возврата адаптера к автоматическому получению IP проще:

Option Explicit
On Error Resume Next
Dim objWMIService
Dim objNetAdapter
Dim strComputer
Dim errEnable
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\\root\\cimv2")
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter in colNetAdapters
 errEnable = objNetAdapter.EnableDHCP()
Next
WScript.Quit

Метод EnableDHCP возвращает код результата; в простом варианте мы не разбираем каждый код подробно, но рекомендуем логировать ошибки при массовых развертываниях.

Скриншот вывода скрипта и состояния адаптера

Объединённый скрипт с вводом пользователя

Далее — более удобный вариант. Скрипт запрашивает у пользователя строку. Если введено AUTO, включается DHCP. Иначе введённое значение используется как статический IP, для которого применяется фиксированная маска и шлюз (их можно изменить под своё окружение).

Option Explicit
On Error Resume Next
Dim objWMIService
Dim objNetAdapter
Dim strComputer
Dim arrIPAddress
Dim arrSubnetMask
Dim arrGateway
Dim colNetAdapters
Dim errEnableStatic
Dim errGateways
Dim strInput
Dim errFailed
errFailed = 0
strInput = InputBox("Type Static IP Address or AUTO")
If strInput = "AUTO" Then
 strComputer = "."
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\\root\\cimv2")
 Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
 For Each objNetAdapter in colNetAdapters
  errEnable = objNetAdapter.EnableDHCP()
  If Not errEnable = 0 Then
   WScript.Echo "Setting DHCP Failed."
   errFailed = 1
  End If
 Next
Else
 strComputer = "."
 arrIPAddress = Array(strInput)
 arrSubnetMask = Array("255.255.255.0")
 arrGateway = Array("192.168.1.1")
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\\root\\cimv2")
 Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
 For Each objNetAdapter in colNetAdapters
  errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)
  If Not errEnableStatic = 0 Then
   WScript.Echo "Failure assigning IP/Subnet."
   errFailed = 1
  End If
  errGateways = objNetAdapter.SetGateways(arrGateway)
  If Not errGateways = 0 Then
   WScript.Echo "Failure assigning Gateway."
   errFailed = 1
  End If
 Next
End If
If errFailed = 0 Then
 WScript.Echo "IP Settings Successfully Modified."
End If
WScript.Quit

Выбор AUTO в поле ввода скрипта

При вводе любого текста, кроме AUTO, скрипт считает это IP-адресом и подставляет его в массив arrIPAddress. Скрипт предполагает фиксированную маску 255.255.255.0 и шлюз 192.168.1.1 — измените при необходимости.

Проверка настроек адаптера после применения статического IP

Проверки после применения

  • Откройте свойства адаптера и убедитесь, что IP/маска/шлюз установлены.
  • Выполните ping по шлюзу: ping 192.168.1.1.
  • Проверьте маршрут и DNS, если нужно: ipconfig /all.

Подтверждение, что адаптер вернулся в режим автоматического получения IP

Когда подход не сработает или будет опасен

  • Если в сети используется резервирование по MAC или таблицы DHCP, установка статического IP, уже используемого другим устройством, приведёт к конфликту IP.
  • Если у адаптера сложная конфигурация (несколько шлюзов, дополнительные DNS-серверы, VLAN), простой скрипт с одним шлюзом и маской недостаточен.
  • На ноутбуках с корпоративной политикой груповых политик (GPO) автоматика может вернуть настройки обратно.

Альтернативные подходы

  • netsh interface ip set address name=”Ethernet” source=dhcp — команда для CMD.
  • PowerShell: Set-NetIPInterface / New-NetIPAddress / Remove-NetIPAddress — современный способ с более точным контролем.
  • Управление через SCCM/Intune для централизованного развёртывания настроек.

Если вы уже в окружении с центральным управлением — лучше использовать встроенные средства управления конфигурациями.

Результат после включения DHCP

Чек‑лист перед запуском скрипта

  • Сохраните текущие настройки (ipconfig /all > original_network.txt).
  • Убедитесь в наличии прав администратора.
  • Измените дефолтную маску и шлюз в скрипте под свою сеть (если нужно).
  • Тестируйте на одном питч‑девайсе перед массовым применением.

Роль‑ориентированные задачи

  • Для инженера: проверьте доступ к целевому оборудованию после переключения и зафиксируйте успешность операции в тикете.
  • Для администратора сети: подготовьте список разрешённых статических IP и внесите их в инвентарь, чтобы избежать конфликтов.
  • Для конечного пользователя: используйте AUTO, если вы не уверены в параметрах сети.

Критерии приёмки

  • Скрипт успешно применил статический IP к включённому адаптеру и вернул 0 коды ошибок.
  • При вводе AUTO адаптер переведён в DHCP и получает адрес от сервера DHCP.
  • После применения выполнены ping до шлюза и DNS-резолвинг.

SOP: быстрый плейбук использования

  1. Сохраните текущую конфигурацию: ipconfig /all > network-before.txt.
  2. Откройте файл скрипта и при необходимости отредактируйте маску и шлюз.
  3. Запустите скрипт от имени администратора.
  4. Введите STATIC_IP или AUTO при запросе.
  5. Проверьте ipconfig и соединение (ping, доступ к ресурсам).
  6. При проблемах откатите через сохранённый файл или вручную восстановите параметры.

Простая методология тестирования (мини‑метод)

  • Тест 1 (функциональный): введите корректный статический IP в той же подсети, проверьте связь.
  • Тест 2 (пограничный): введите IP из другой подсети, ожидайте отсутствие связи и корректную установку параметров.
  • Тест 3 (AUTO): проверьте, что DHCP возвращает адрес.
  • Тест 4 (ошибка): введите некорректную строку (например “foobar”) и убедитесь, что скрипт не применяет некорректную конфигурацию или выводит понятную ошибку.

Критические риски и смягчение

  • Конфликт IP: использовать зарегистрированный пул адресов и проверять занятость IP перед назначением.
  • Потеря доступа к удалённой машине: запускать скрипт локально или через консоль с возможностью физического доступа для отката.
  • Логирование: добавьте запись в файл журнала об успешности или ошибках (FSO или запись в Event Log через WMI).

Подсказки по безопасности

  • Всегда запускать с наименьшими требуемыми привилегиями. Скрипт меняет системные настройки — нужны права админа.
  • Не храните пароли или чувствительные данные в скриптах.
  • При использовании в корпоративной среде согласуйте с отделом сетевой безопасности.

Локальные нюансы и примечания для русскоязычных сетей

  • В некоторых локализациях Windows UI пункты называются «Получать IP‑адрес автоматически»; проверяйте локальный перевод при диагностике.
  • Если используется статическая маршрутизация, учтите дополнительные записи в таблице маршрутов.

Быстрые варианты улучшения скрипта

  • Поддержка выбора конкретного адаптера по имени или индексу.
  • Возможность задавать маску и шлюз в диалоговом окне.
  • Ведение логов в файл с временной меткой.
  • Проверка занятости IP перед назначением (ping) и предложение альтернатив.

Шаблон принятия решений (упрощённый):

  • Нужно быстро переключиться локально → использовать VBScript.
  • Требуется массовое управление → использовать PowerShell + централизованное средство.
  • Нужна тонкая настройка (несколько DNS, несколько шлюзов) → PowerShell.

Примеры политик развёртывания

  • Локальные инженеры: пользоваться скриптом при работе на месте.
  • Централизованные изменения: через Intune/SCCM с оповещением команды сети.

Фактбокс (ключевые моменты)

  • Протокол: WMI (Win32_NetworkAdapterConfiguration)
  • Основные методы: EnableStatic, SetGateways, EnableDHCP
  • Формат скрипта: .vbs или .wsf (если используете контейнерные теги)

Краткое резюме

Использование VBScript для переключения сетевых настроек — простой и надёжный способ автоматизировать рутинную задачу. Скрипты подходят для локальной работы и тестов, но для корпоративных развёртываний стоит переходить на PowerShell или средства централизованного управления. Перед массовым применением протестируйте скрипт, подготовьте резервные копии конфигураций и внедрите базовое логирование.

Результат: адаптер настроен на получение IP автоматически

Если хотите, могу помочь адаптировать скрипт под конкретную сеть (например, добавить выбор интерфейса, маски и шлюза в диалог), или преобразовать пример в PowerShell с унифицированным логированием.

Image Credit: Binary Codes via Shutterstock

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как создать игру в Tabletop Simulator
Настольные игры

Как создать игру в Tabletop Simulator

Скачать видео из Twitter — пошагово
Инструкции

Скачать видео из Twitter — пошагово

Установка Ubuntu через Mini ISO
Linux

Установка Ubuntu через Mini ISO

CAN-шина с MCP2515 и Arduino: сборка и код
Электроника

CAN-шина с MCP2515 и Arduino: сборка и код

Установка Ubuntu 22.04 в VirtualBox
Виртуализация Linux

Установка Ubuntu 22.04 в VirtualBox

Удаление аккаунта Facebook — полное руководство
Конфиденциальность

Удаление аккаунта Facebook — полное руководство