Скрипт для замены DNS сервера на удаленном хосте

Windows_PowerShell_icon

Как-то возникла перенести в другую подсеть контроллер домена, а значит — изменить ему IP адрес.

Ситуацию немного осложняло то, что он был DNS сервером. И, если на клиентских ПК изменение DNS сервера сводилось к перенастройке пула на DHCP, то на рядовых серверах, которых около 200, изменение настроек представляло некоторую сложность. Но «все уже придумано до нас» и не у меня первого возникла такая проблема -

$computer = get-content HostNames.csv
$NICs = Get-WMIObject Win32_NetworkAdapterConfiguration -computername $computer |where{$_.IPEnabled -eq "TRUE"}
Foreach($NIC in $NICs) {
$DNSServers = "198.102.234.125","198.102.234.126"
$NIC.SetDNSServerSearchOrder($DNSServers)
$NIC.SetDynamicDNSRegistration("TRUE")
}

В файлике HostNames.csv задаем список наших серверов и — вперед :)!

 

Задержка выполнения logon скрипта

Видимо, для того, чтобы операционная система загружалась шустрее, а пользователь как можно быстрее мог приступить к работе разработчики сделали хитрый финт ушами — logon скрипты выполняются с задержкой в 5 минут.  Что занятно -  в Windows 8 такого мерзкого поведения не наблюдалось,  а в Windows 8.1 -в наличии.

В моем случае logon скрипт отвечал за монтирование сетевых дисков (так уж исторически сложилось) и проблема вылезла у топ-менеджера. Ну а кому же еще в первую очередь покупают новые ноуты с самой современной операционной системой :)

От первой линии поддержки проблема пришла в такой формулировке «Диски то есть, то нету, как хотят, так и появляются». Попросил принести ноутбук для диагностики. После пары экспериментов оказалось что есть определенная закономерность — пятиминутная задержка выполнения logon скрипта. После этого гугление проблемы пошло как по маслу и была найдена причина -
параметр локальной политики

Computer Configuration\Policies\Administrative Templates\System\Group Policy

Configure Logon Script Delay

Задержка выполнения скрипта

Установка этого парметра в «0″ позволяет выполнять скрипты без задержки.

Кстати, этот же параметр пришлось поредактировать после миграции терминального сервера на Windows 2012 R2