Показать полную графическую версию : Смена адресов DNS на всех компах в домене.
Есть необходимость сменить dns у всех компов в домене. Как бы это зделать разом, не бегая к каждому?
Реально ли впарить dns-сервера через GroupPolicy? Там якобы есть такая возможность но она не работает,
т.е. сервера таки не прописываются в настройках сет. карты.
netsh не катит, т.к. у всех интерфейсов могут называться по разному, да и она не воспринимает русские названия.
dimich22
23-10-2007, 10:02
DHCP спасет отца русской демократии.
Butunin Klim
23-10-2007, 10:03
'Если ошибка продолжаем далее.
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
DHCP тоже не катит - в сети статическая адресация, а чтобы подлнять динамическую надо опять же бегать и менять на 200 компах руками.
Butunin Klim
23-10-2007, 10:16
zippi,
Скрипт посмотри нижний
Это если DHCP поставишь »
Ладно для тех кто в танке...
Этот крипт сбрасывает настроки сетевой карты и ищит ДНСП сервер в твоей сети.
Тоесть ты ставишь ДШСП сервер.
Через Груповую политику запускаешь скрипт через логон или логоф. И все живешь спокойно
Тем более тебе нужен ДШЦП. так как 200 машин рано или поздно ты будешь страдать от этого (хотя что-то мне подсказывает что их там гораздо меньше)
2Butunin Klim
Сорри. Из маленьких окошек Т-34 я не увидел твой скрипт. DHCP вообщето есть в сети и обслуживает небольшую
ее часть. Но дело в том, что адреса некоторых компов должны быть статическими. Все же хотелось сделать через GP,
наверника есть какая-то тонкость которую я не вкурил.
dimich22
23-10-2007, 10:59
В GP - Конфигурация компьютера - Административные шаблоны - Сеть - DNS-клиент
Butunin Klim
23-10-2007, 11:40
'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
Помогите решить задачу с добавление альтернативного ДНС в сетевой интерфейс
Команда из CMD отрабатывает успешно, а из файла не идет- синтакс. ошибка.
Предполагаю, что из-за русских букв и пробелов.
Вот успешная команда.
netsh interface ip add dnsservers "Подключение по локальной сети" 192.168.2.252
Angry Demon
28-01-2016, 08:06
Предполагаю, что из-за русских букв
Верно полагаете. Первой строчкой CMD-шника сделайте chcp 1251 или переименуйте сетевое подключение, например, в LAN.
Команда из CMD отрабатывает успешно, а из файла не идет- синтакс. ошибка.
Предполагаю, что из-за русских букв и пробелов. »
Сохраните пакетный файл в кодировке OEM/866.
SentAmalgama
28-01-2016, 08:23
Верно полагаете. Первой строчкой CMD-шника сделайте chcp 1251 или переименуйте сетевое подключение, например, в LAN.
Насколько я понимаю, переименование равносильно "походу ногами по всем компам" и правкой руками.
Смысл скрипта пропадает
SentAmalgama, не надо никуда ходить. Просто сохраните Ваш пакетный файл в кодировке OEM/866.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.