Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   Смена адресов DNS на всех компах в домене. (http://forum.oszone.net/showthread.php?t=92673)

zippi 23-10-2007 09:59 665547

Смена адресов DNS на всех компах в домене.
 
Есть необходимость сменить dns у всех компов в домене. Как бы это зделать разом, не бегая к каждому?
Реально ли впарить dns-сервера через GroupPolicy? Там якобы есть такая возможность но она не работает,
т.е. сервера таки не прописываются в настройках сет. карты.
netsh не катит, т.к. у всех интерфейсов могут называться по разному, да и она не воспринимает русские названия.

dimich22 23-10-2007 10:02 665554

DHCP спасет отца русской демократии.

Butunin Klim 23-10-2007 10:03 665555

Код:

'Если ошибка продолжаем далее.
On Error Resume Next
strComputer = inputBox("Введите имя ПК:") 'Вводим имя компьютера
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array(inputBox("Введите IP?:")) 'Вводим IP новый.
strSubnetMask = Array(inputBox("Введите Mask?:")) 'Вводим новую Mask.
strGateway = Array(inputBox("Введите Gateway?:")) 'Вводим новый шлюз
strGatewayMetric = Array(1)'Прижелании можно и метрику выставлять
For Each objNetAdapter in colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    If errEnable = 0 Then
        WScript.Echo "The IP address has been changed."
    Else
        WScript.Echo "The IP address could not be changed."
    End if
Next

On Error Resume Next

'strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNetCards = objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")

For Each objNetCard in colNetCards
    arrDNSServers = Array("192.168.1.101" , "192.168.1.100")
    objNetCard.SetDNSServerSearchOrder(arrDNSServers)
Next

Это если DHCP поставишь

Код:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
 
For Each objNetAdapter In colNetAdapters
    'Reset IP Address and Default Gateway to DHCP
    errEnable = objNetAdapter.EnableDHCP()
    'Reset DNS Server list to DHCP
    arrDNSServers = Array()
    objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)
    'Reset DNS Server Domain to DHCP
    strDNSDomain = ""
    objNetAdapter.SetDNSDomain strDNSDomain
    'Reset WINS Server list to DHCP
    strPrimaryServer = ""
    strSecondaryServer = ""
    objNetAdapter.SetWINSServer strPrimaryServer, strSecondaryServer
    'Reset DNS Server Suffix list
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objNetworkSettings = objWMIService.Get("Win32_NetworkAdapterConfiguration")
    arrDNSSuffixes = Array("", "")
    objNetworkSettings.SetDNSSuffixSearchOrder(arrDNSSuffixes)
Next


zippi 23-10-2007 10:14 665568

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

Butunin Klim 23-10-2007 10:16 665570

zippi,
Скрипт посмотри нижний

Цитата:

Цитата Butunin Klim
Это если DHCP поставишь »

Ладно для тех кто в танке...
Этот крипт сбрасывает настроки сетевой карты и ищит ДНСП сервер в твоей сети.
Тоесть ты ставишь ДШСП сервер.
Через Груповую политику запускаешь скрипт через логон или логоф. И все живешь спокойно

Тем более тебе нужен ДШЦП. так как 200 машин рано или поздно ты будешь страдать от этого (хотя что-то мне подсказывает что их там гораздо меньше)

zippi 23-10-2007 10:42 665585

2Butunin Klim
Сорри. Из маленьких окошек Т-34 я не увидел твой скрипт. DHCP вообщето есть в сети и обслуживает небольшую
ее часть. Но дело в том, что адреса некоторых компов должны быть статическими. Все же хотелось сделать через GP,
наверника есть какая-то тонкость которую я не вкурил.

dimich22 23-10-2007 10:59 665603

В GP - Конфигурация компьютера - Административные шаблоны - Сеть - DNS-клиент

Butunin Klim 23-10-2007 11:40 665628

Код:

'strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNetCards = objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")

For Each objNetCard in colNetCards
    arrDNSServers = Array("192.168.1.101" , "192.168.1.100")
    objNetCard.SetDNSServerSearchOrder(arrDNSServers)
Next

ТОгда этот кусочек
Измените на ваш DNS

SentAmalgama 28-01-2016 06:29 2599912

Помогите решить задачу с добавление альтернативного ДНС в сетевой интерфейс
Команда из CMD отрабатывает успешно, а из файла не идет- синтакс. ошибка.
Предполагаю, что из-за русских букв и пробелов.
Вот успешная команда.

Код:

netsh interface ip add dnsservers "Подключение по локальной сети" 192.168.2.252

Angry Demon 28-01-2016 08:06 2599923

Цитата:

Цитата SentAmalgama
Предполагаю, что из-за русских букв

Верно полагаете. Первой строчкой CMD-шника сделайте chcp 1251 или переименуйте сетевое подключение, например, в LAN.

Iska 28-01-2016 08:16 2599924

Цитата:

Цитата SentAmalgama
Команда из CMD отрабатывает успешно, а из файла не идет- синтакс. ошибка.
Предполагаю, что из-за русских букв и пробелов. »

Сохраните пакетный файл в кодировке OEM/866.

SentAmalgama 28-01-2016 08:23 2599925

Цитата:

Верно полагаете. Первой строчкой CMD-шника сделайте chcp 1251 или переименуйте сетевое подключение, например, в LAN.
Насколько я понимаю, переименование равносильно "походу ногами по всем компам" и правкой руками.
Смысл скрипта пропадает

Iska 28-01-2016 08:29 2599926

SentAmalgama, не надо никуда ходить. Просто сохраните Ваш пакетный файл в кодировке OEM/866.


Время: 06:44.

Время: 06:44.
© OSzone.net 2001-