Как написать скрипт Windows для изменения настроек сети на лету

  • William Charles
  • 0
  • 905
  • 169
Реклама

На этой неделе я наткнулся на интересную проблему. Во многих офисах или рабочих средах может потребоваться переопределить параметры сети для подключения к различным сетям. Например, некоторые люди берут свой ноутбук с собой и имеют статический IP-адрес, настроенный специально для этого компьютера. Однако, поскольку рабочая сеть обычно является DHCP, для этого необходимо, чтобы человек продолжал изменять настройки сети между статическим IP или автоматическим DHCP в зависимости от того, где они находятся..

Более распространенная проблема - для инженеров или ИТ-специалистов, которым часто необходимо подключаться к устройствам или компьютерам в небольшой сети внутри здания. Чтобы подключиться к этой изолированной сети, вам нужно изменить настройки сети на статический IP. Позже при повторном подключении к корпоративной сети он снова возвращается к DHCP.

Я оказывался в этой ситуации достаточно часто и так устал от просмотра сетевой карты, открытия настроек IP и внесения этих изменений, что я решил, что пришло время собрать сценарий VB, который будет делать все это в одном или два клика. Если вы следовали моим статьям по программированию, то знаете, что я люблю сценарии VB. Однажды я использовал его, чтобы создать одержимый компьютер. Сценарий для Хэллоуина со странным сценарием. Сценарий для Хэллоуина со странным сценарием. Есть множество забавных розыгрышей, которые вы можете сыграть на компьютере с друзьями. Вы, наверное, видели все эти жуткие видео на YouTube, которые люди перенаправляют друг другу, чтобы напугать…, а также использовали для автоматизации Microsoft SyncToy Как создать инструмент резервного копирования данных с помощью SyncToy & VB Script Как создать инструмент резервного копирования данных С помощью SyncToy & VB Script мы рассмотрели множество решений для резервного копирования здесь, в MUO, и все эти решения хороши, но если вы работаете в среде, которая настороженно относится к бесплатным сторонним программным пакетам или компаниям… для данных резервное копирование.

Эту задачу также можно выполнить с помощью сценария VB, и даже можно сделать его достаточно гибким, чтобы он мог принимать пользовательский ввод для статического IP-адреса. В этой статье я покажу вам, как это сделать, в трех разделах.

Создание сценария изменения настроек сети

Существует три основных задачи, которые необходимо выполнить с помощью сценария, чтобы создать это маленькое приложение для переключения сетевых настроек. Первый - использовать скрипт для создания статических настроек IP. Следующее - придумать скрипт для включения DHCP. Наконец, последнее - спросить пользователя, какую задачу он хочет выполнить, а затем использовать эту обратную связь для ее выполнения..

VB Script для установки статических настроек IP

Помните, что следующие скрипты должны быть сохранены в виде текстового файла с расширением .wsf для работы на ПК с Windows. Следующий скрипт изменит ваши сетевые настройки на статический IP с определенной маской подсети и шлюзом по умолчанию со всеми тремя жестко закодированными в скрипте.

Для всех примеров кода, перечисленных в этой статье, обязательно добавьте “” в начале и “ в конце, иначе код не запустится.
Вот скрипт статического изменения IP:

Параметр Явный При ошибке Возобновить Далее 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") Установить objWMIService = GetObject ("winmgmts: \\" & strComputer & "2 "root c" ) Установите colNetAdapters = objWMIService.ExecQuery («Выбрать * из Win32_NetworkAdapterConfiguration, где IPEnabled = TRUE») Для каждого objNetAdapter в colNetAdapters errEnableStatic = objNetAdapter.EnableStatic (arrIPAddress, arrNailEntEntNecure.Ru) " End If errGateways = objNetAdapter.SetGateways (arrGateway) Если Not errGateways = 0, то WScript.Echo "Ошибка назначения шлюза". End If Next WScript.Quit

Этот сценарий использует службу Windows WMI в Windows для достижения цели изменения настроек. Вы можете увидеть три фиксированные переменные массива, загруженные с IP-адресами, и затем, где скрипт проверяет наличие активных “включен” сетевая карта. Затем он использует “EnableStatic” а также “SetGateways” методы, чтобы сделать эти необходимые изменения. Когда я запускаю сценарий в моей домашней сети (где мне требуется DHCP), вы можете увидеть, где сценарий успешно изменил настройки моего адаптера, и я потерял подключение к Интернету.

Доказав, что часть скрипта со статическим IP работает, пришло время написать скрипт, который установит для адаптера DHCP, чтобы он автоматически обнаруживал сетевой IP. Вот сценарий, который вы можете использовать для этого.

Параметр Явный при ошибке Возобновить Далее Dim objWMIService Dim objNetAdapter Dim strComputer Dim errEnable strComputer = "." Установить objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2"). Установить colNetAdapters = objWMIService.ExecQuery ("Выбрать * из Win32_NetworkAdapterConfiguration, где IPEnabled = TRUE") для каждого объекта objNetAdHer. ) Далее WScript.Quit

Как видите, этот скрипт намного проще. Он также использует WMI, но единственная необходимая функция “EnableDHCP”. Это выполняется на текущем включенном сетевом адаптере. После сохранения и запуска этого сценария настройки моей карты адаптера изменились на DHCP, и мое интернет-соединение снова заработало.

Итак, теперь, когда у вас есть код для выполнения обоих важных действий, следующей частью этого трюка будет получение информации от пользователя, чтобы точно определить, какой статический IP-адрес ему нужен. Чтобы снова включить DHCP, вы можете попросить пользователя ввести слово “АВТО” для автоматического определения IP.
Вот как выглядит этот новый, полный скрипт, включающий два скрипта выше.

Параметр Явный При ошибке Возобновить Далее Dim objWMIService Dim objNetAdapter Dim strComputer Dim arrIPAddress Dim arrSubnetMask Dim arrGateway Dim colNetAdapters Dim errEnableStatic Dim errGateways Dim strInput DIM errFailed = Тогда strComputer = "." Установить objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2"). Установить colNetAdapters = objWMIService.ExecQuery ("Выбрать * из Win32_NetworkAdapterConfiguration, где IPEnabled = TRUE") для каждого объекта objNetAdHer. ) Если не errEnable = 0, то WScript.Echo "Настройка DHCP не удалась". 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 \ cimNetapt =") objWMIService.ExecQuery («Выбрать * из Win32_NetworkAdapterConfiguration, где IPEnabled = TRUE») Для каждого объекта objNetAdapter в colNetAdapters errEnableStatic = objNetAdapter.EnableStatic (arrIPAddress, IP-адрес arrSubnetMask, arrSubnetMasen), если не назначено. errFailed = 1 End If errGateways = objNetAdapter.SetGateways (arrGateway) Если Not errGateways = 0, то WScript.Echo "Ошибка назначения шлюза". errFailed = 1 End If Next End Если If errFailed = 0, то WScript.Echo "Настройки IP успешно изменены". End If WScript.Quit

Этот скрипт использует функцию InputBox для получения статического IP-адреса или “АВТО” команда от пользователя.

Если что-то кроме “АВТО” вводится в поле, которое будет использоваться в качестве статической строки IP в разделе кода, который использует WMI для установки параметров статического IP для сетевого адаптера. Там также проверка для “0” подтверждение, что все прошло хорошо.

Проверив настройки моей сетевой карты после запуска скрипта, я подтвердил, что скрипт действительно вносил изменения в настройки статического IP.

Теперь, чтобы проверить скрипт AUTO. Ввод AUTO удовлетворяет первому условию в “ЕСЛИ” проверка выписки для АВТО. Это запускает альтернативный скрипт, который включает DHCP.

После этого я вошел в настройки своего адаптера и убедился, что он был снова настроен на получение IP-адреса автоматически.

Хотя это может быть достаточно простой задачей, чтобы зайти в настройки вашей сетевой карты и перейти на статический или DHCP, если вам придется делать это очень часто, это может стать настоящей болью. Вы можете сделать это из командной строки, используя “Netsh”, но опять же, вам нужно запомнить синтаксис команды.

Использование приведенного выше сценария позволяет вам создать быструю и простую утилиту, которую вы можете использовать в любое время для переключения настроек сети на лету.

Думаешь, ты мог бы попробовать этот скрипт Windows? Любые другие идеи, чтобы настроить его и сделать его еще лучше? Поделитесь своими мыслями и предложениями в разделе комментариев ниже.

Изображение предоставлено: двоичные коды через Shutterstock




О современных технологиях, просто и доступно.
Ваш гид в мире современных технологий. Узнайте как использовать технологии и гаджеты, которые нас окружают каждый день и научитесь открывать интересные вещи в Интернете.