1

Я пытаюсь написать скрипт, который будет включать изменение конфигурации интерфейса IPv4. Интерфейс может иметь, а может и не иметь, настроен любой из следующих параметров:

  • Айпи адрес
  • Маска подсети
  • Шлюз по умолчанию
  • DNS-серверы
  • WINS-серверы

Когда мой сценарий завершен, я хочу настроить только те параметры, которые я установил. (Например: если я не установил сервер шлюза, DNS или WINS, я не хочу, чтобы он был настроен.) Я полагаю, что самый простой способ убедиться в этом - стереть существующую конфигурацию настолько, насколько я могу, а затем создать именно то, что мне нужно.

Оставить существующий IP-адрес и маску подсети в порядке, потому что они обязательно будут перезаписываться каждый раз. Выглядит довольно просто, чтобы удалить DNS и WINS серверы с помощью netsh .

netsh interface ipv4 delete dns "LAN" all
netsh interface ipv4 delete wins "LAN" all

Моя проблема связана с удалением шлюза. Кажется, что каждая команда netsh которая используется для изменения шлюза по умолчанию, требует в качестве параметра текущий IP-адрес. Однако это не всегда будет то, что известно. Нет ли способа использовать netsh чтобы просто удалить все шлюзы, настроенные для интерфейса, без указания IP?

2 ответа2

3

Оставить существующий IP-адрес и маску подсети в порядке, потому что они обязательно будут перезаписываться каждый раз.

Так как вы все равно перезаписываете IP и маску подсети, просто используйте netsh для удаления шлюза на том же шаге. например:

netsh interface ipv4 set address "Local Area Connection" static 192.168.1.100 255.255.255.0 none

Здесь вы не помещаете ни одного, где шлюз по умолчанию будет обычно идти. Это указывает, что шлюз не будет использоваться с этим IP.

2

Удалить шлюз по умолчанию:

route delete -p 0.0.0.0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .