Как изменить IP адрес компьютера из пакетного файла

IP адрес можно изменить при помощи команды netsh. Чтобы правильно сменить IP адрес, сначала надо выяснить текущую конфигурацию. Сделать это можно в командной строке при помощи команды 
netsh interface ip show address 

Результат работы этой команды – отображение текущей конфигурации сетевого интерфейса. Нас интересует название интерфейса. Предположим, что он называется FASTNET, и нужно сменить IP адрес на 192.168.1.42, адресация в сети статическая, без использования DHCP, шлюз 192.168.1.1, маска 255.255.255.0 В этом случае, команда, которая должна быть выполнена из пакетного файла будет выглядеть следующим образом:
netsh interface ip set address name=FASTNET static 192.168.1.42 255.255.255.0 192.169.1.1 1 

После выполнения этой команды у интерфейса FASTNET, IP адрес сменится на 192.168.1.42. Команда netsh предоставляет широкие возможности по управлению сетевыми настройками из командной строки. Для ознакомления с другими ее функциональными возможностями пользуйтесь справкой при помощи netsh /?.

Ну что, Вы озабоченно полезли в help по команде netsh, в надежде разобраться, как правильно ей пользоваться? Хмм… От всей души желаю успеха в этом непростом занятии.
А теперь… внимание! Забудьте всю муть, что прочитали выше.
Наиболее удобный метод работы с netsh – скармливание ему конфигурационных сценариев. Тогда IP меняется одним щелчком мышки, и не надо париться с изучением опций netsh. Вот как это делается:

– стандартным способом настраиваются параметры сетевого интерфейса[ов] (через Сетевые подключения и свойства требуемого сетевого подключения).
– после того, как сделанные настройки вошли в силу, выполняем команду netsh dump >cfg01.txt. Она выводит всю текущую конфигурацию сетевых настроек в сценарий cfg01.txt.
– вышеуказанные операции повторяем для всех необходимых сетевых конфигураций. Для каждой конфигурации указываем индивидуальное имя сценария (например, cfg02.txt, cfg03.txt, cfg04.txt и т. д.).
– создаём командные файлы для установки каждой конфигурации с таким содержимым:
netsh exec cfg0x.txt
Эта команда будет настраивать сетевые параметры, которые были сохранены в файле cfg0x.txt.


Всё! Наслаждаемся полученным результатом – больше никогда не понадобится лезть в свойства сетевого интерфейса и муторно вводить вручную циферки, боясь при этом ошибиться. Параметры будут вступать в действие немедленно после окончания работы сценария – работает с DHCP и даже со всеми дополнительными параметрами (DNS, WINS). По поводу такого конфигурирования можно сделать несколько замечаний (выяснено путём эксперимента):
– галочки служб закладки “Общие” – Clients for Microsoft Networks, File and Printer Sharing for Microsoft Networks не могут быть сконфигурированы таким образом (установлены или сброшены).
– в сценарий пишется много лишнего (настраивается маршрутизация, RAS, IGMP и проч., и проч.). Для простой смены IP-адреса можно оставить только 2 секции сценария – сброс интерфейса и назначение параметров IP.

Например, этот сценарий у меня успешно настраивал назначение адреса с помощью DHCP:

#========================
# Конфигурация интерфейса
#========================
pushd interface
  reset all
popd
# Конец конфигурации интерфейса

# —————————————– 
# Настройка IP-интерфейсов 
# —————————————– 
pushd interface ip
# Интерфейс настройки IP для LocalLAN
  set address name=LocalLAN source=dhcp 
  set dns name=LocalLAN source=dhcp register=NONE
  set wins name=LocalLAN source=static addr=192.168.0.1
popd
# Конец настройки интерфейса IP

А этот сценарий назначал статический IP для прямого подключения (без промежуточного роутера и файервола) к ADSL-провайдеру:

#======================== 
# Конфигурация интерфейса 
#======================== 
pushd interface
  reset all
popd
# Конец конфигурации интерфейса

# —————————————– 
# Настройка IP-интерфейсов  
# —————————————– 
pushd interface ip
# Интерфейс настройки IP для LocalLAN
  set address name=LocalLAN source=static addr=213.147.35.99 mask=255.255.255.248
  set address name=LocalLAN gateway=213.147.35.97 gwmetric=0
  set dns name=LocalLAN source=static addr=195.34.32.116 register=NONE
  add dns name=LocalLAN addr=212.188.4.10 index=2
  set wins name=LocalLAN source=static addr=none
popd
# Конец настройки интерфейса IP 

Еще примеры. Смена IP, netmask и шлюза по умолчанию (<Interface name> это к примеру Подключение по локальной сети. Замечено, команда отрабатывает быстрее если к изменяемому интерфейсу не подключен сетевой кабель.): 
netsh interface ip set address <Interface name> source=static 192.168.1.2 255.255.255.0 192.168.1.1 1 

Смена первичного и вторичного dns: 
netsh interface ip set dns <Interface name> static 192.168.1.100
netsh interface ip add dns <Interface name> 192.168.1.101