Powershell – приводим в порядок настройки резервирований адресов на DHCP серверах


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

Проблема: со временем резервирования на двух серверах приходят в хаос из-за ошибок администраторов – на одном сервере резервирование адреса может быть сделано, а на другом нет.

Задача: сделать резервирования адресов на обоих серверах одинаковым.

Решение:

Мы не будем анализировать правильность резервирований, допустим, что они все верные и просто восстановим симметрию.

Выполнить такую работу вручную очень трудоемко: можно потратить многие часы, а то и дни.

Можно решить задачу традиционным способом: выгрузить конфигурацию DHCP серверов с помощью netsh в текстовые файлы, написать скрипты разборки и анализа конфигурации, обработать тестовые файлы и получить командный файл для той же netsh. На такую работу можно потратить несколько часов.

Используя командлеты работы с DHCP, которые теперь есть в Windows Server 2012 и соответствующем RSAT, можно решить задачу за несколько минут:

 

$ServerName1 = «dhcp1.domain.ru»

$ServerName2 = «dhcp2.domain.ru»

 

$ServerName = $ServerName1

$res1 =Get-DhcpServerv4Scope -ComputerName $ServerName | % {Get-DhcpServerv4Reservation -ScopeId $_.ScopeId -ComputerName $ServerName}

 

$ServerName = $ServerName2

$res2 =Get-DhcpServerv4Scope -ComputerName $ServerName | % {Get-DhcpServerv4Reservation -ScopeId $_.ScopeId -ComputerName $ServerName}

 

 

$c = Compare-Object -ReferenceObject $res1 -DifferenceObject $res2 -Property IPAddress -PassThru

 

$ServerName = $ServerName1

$c | ? { $_.SideIndicator -eq «=>»} | Add-DhcpServerv4Reservation -ComputerName $ServerName

 

$ServerName = $ServerName2

$c | ? { $_.SideIndicator -eq «<=»} | Add-DhcpServerv4Reservation -ComputerName $ServerName

 

Это все!!! Улыбка

Все командлеты для работы с DHCP сервером вы можете получить командой:

Get-Command *DHCP*

 

Их более 100!

 

Реклама

комментариев 6

  1. Вы не написали, что в Windows 2012 появилась новая функция у DHCP — Отработка отказа — которая позволяет в несколько кликов настраивать два DHCP на совместную работу в определенной области адресов с балансировкой нагрузки и реплицированием данных между собой. http://technet.microsoft.com/ru-ru/library/hh831385.aspx

  2. Илья, есть же «стандартный» скрипт по синхронизации настроек между двумя отказоустойчивыми узлами — http://gallery.technet.microsoft.com/scriptcenter/Auto-syncing-of-configurati-6eb54fb0. Единственный момент — вообще все изменения надо выполнять на одном узле. На второй они будут приезжать с этим скриптом (который, например, будет запускаться по расписанию).

  3. […] 2.       Powershell – приводим в порядок настройки резервирований а… […]

  4. В «Windows 2012 появилась новая функция у DHCP – Отработка отказа» насколько я понял, по умолчанию она не синхронизирует созданные резервации. Нужно или запускать вручную из GUI или использовать powershell скрипт. Это действительно так или плохо смотрел?

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: