пятница, 23 августа 2013 г.

Изменение маски диапазона ip адресов (пула) в DHCP сервере под windows 2003

Столкнувшись с изменением адресов в сети обнаружил, что изменить маску ip-адресов, выдаваемых DHCP сервером под Windows 2003 не представляется возможным, ибо оконный элемент с этой самой маской запрещен к редактированию. Ручной труд похвален, при обработке древесины, но об объем этого труда был не маленьким и сделать все быстро не представлялось возможным. К тому же, каждый выдаваемый адрес был зарезервирован по MACу и имелись дополнительные параметры, выдаваемые хосту вместе с IP, одним словом, тяжко.
Microsoft порадовал решением - удалить пул и создать заново. Чудесно.
Рецепт, однако нашелся, не без удаления (все как MS и утвердил), но все же не совсем вручную.

Итак, необходимо воспользоваться очень универсальной утилитой netsh, хвала ее создателям!

Создадим скрипт для netsh посредством самой netsh, который затем подправим и выполним.

c:\>netsh dhcp server \\"имя сервера"  scope 192.168.1.0 dump > c:\scope0.txt

Получили текстовый файл, который предстоит изменить. Открываем файл в блокноте и видим примерно следующее среди всего прочего:

Dhcp Server 192.168.1.25 add scope 192.168.1.0 255.255.255.0 "Vlan-1" Vlan1"
Dhcp Server 192.168.1.25 Scope 192.168.1.0 set state 1

Редактируем по своему усмотрению эти строки и другие (у меня это было резервирование адресов по MAC) в зависимости от потребности. Затем удаляем (да, все-таки удаляем!) пул, с которым производим действия, сохраняем файл.

И наконец, выполняем

c:\>netsh exec c:\scope0.txt

Создается пул с нужными нам параметрами.

Примечание.
1. Команда netsh с параметром dhcp выполняется на сервере, где имеется служба dhcp server, то есть выполнять imho сподручнее в консоли сервера, или сервера-дублера если такой имеется, с рабочей станции результат выполнения будет отрицательным.
2. Возможны ошибки при выполнении уже исправленного скрипта. Те резервированные по MACу адреса, которые были созданы через оснастку, жили себе потихонечку, не могли поместиться в пул посредством netsh. Были таковы дубликатами с mac-адресов 00-00-00-00-00-00 (ну так для нужд своих делалось) Но это не страшно, ошибки просто игнорировались, и скрипт выполнялся дальше. 

Источникhttp://imhotak.blogspot.com/2012/12/ip-dhcp-windows-2003.html