Массовое удаленное изменение DNS-серверов в настройках сетевой карты в Windows

При апгрейде контроллеров домена или их удалении\добавлении, всегда появляется необходимость изменить DNS-сервера в настройках сетевых интерфейсов. Там, где сетевые настройки выдаются через DHCP - проблем нет. А там, где все настроено вручную, придется заходить на каждый сервер и менять руками. Это долго и неудобно.

Вот скрипт на Powershell, который упростит задачу и сделает все автоматически. Вам только нужно подготовить список серверов.

$computerlist = "server1.domain.local",
				"server2.domain.local",
				"server3.domain.local" #Обратите внимание, что в конце этой строки нет запятой
				;
$dnsservers =@("10.1.1.1","10.1.1.2") #Список новых DNS-серверов
 
foreach ($computername in $computerlist) { 
    $result =  get-wmiobject win32_pingstatus -filter "address='$computername'" 
    if ($result.statuscode -eq 0) { 
        $remoteNic = get-wmiobject -class win32_networkadapter -computer $computername | where-object {$_.netconnectionstatus -ne $null} 
        $index = $remotenic.index 
        $DNSlist = $(get-wmiobject win32_networkadapterconfiguration -computer $computername -Filter ‘IPEnabled=true’ | where-object {$_.index -eq $index}).dnsserversearchorder 
        $priDNS = $DNSlist | select-object -first 1 
        Write-host "Changing DNS IP's on $computername" -b "Yellow" -foregroundcolor "black" 
        $change = get-wmiobject win32_networkadapterconfiguration -computer $computername | where-object {$_.index -eq $index} 
        $change.SetDNSServerSearchOrder($DNSservers) | out-null 
        $changes = $(get-wmiobject win32_networkadapterconfiguration -computer $computername -Filter ‘IPEnabled=true’ | where-object {$_.index -eq $index}).dnsserversearchorder 
        Write-host "$computername's Nic1 Dns IPs $changes" 
    } 
    else { 
        Write-host "$Computername is down cannot change IP address" -b "Red" -foregroundcolor "white" 
    } 
}

Помните, что у пользователя, под которым запускается скрипт, должны быть административные права на удаленных серверах!

Метки: powershell (ru), скрипт, Windows (RU)

ПечатьE-mail

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


Защитный код
Обновить