Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Смена DNS только на активном сетевом интерфейсе.

Ответить
Настройки темы
VBS/WSH/JS - [решено] Смена DNS только на активном сетевом интерфейсе.

Аватара для Anton04

Ветеран


Сообщения: 2068
Благодарности: 389


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте.

Нужен vbs скрипт для смены/замены DNS только на активном сетевом интерфейсе. Подразумевается, что название активного сетевого интерфейса неизвестно. Работать скрипт должен в Win XP/7.

Данное задание напоминает топик Смена адресов DNS на всех компах в домене, но предложенный там вариант не совсем подходит, а именно нужно смена dns только на текущем (активном) интерфейсе, не затрагивая остальные интерфейсы (GPO не предлагать, т.к. скрипт планируется запускать не только в доменной структуре).

P.S. В интернете есть множество примеров скриптов но полностью отвечающего такому запросу не нашёл:

Change DNS and WINS on Remote Machines (VB Script)
Изменить список DNS серверов (скрипт)
Смена шлюза и DNS скриптом
CONFIGURATION IP ALTERNATIVE AVEC DHCP ACTIF (ALTERNATE IP) - хоть и совсем не то, но тоже интересный вариант.

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 11:54, 27-11-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Anton04, расскажите, что отличает «текущий (активный) сетевой интерфейс» от прочих.

Отправлено: 13:08, 27-11-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Anton04

Ветеран


Сообщения: 2068
Благодарности: 389

Профиль | Отправить PM | Цитировать


Цитата Iska:
что отличает «текущий (активный) сетевой интерфейс» от прочих. »
Активный сетевой интерфейс это тот на котором, на данный момент времени, установлено соединение (поднят линк), т.е. подключен к свичу/wi-fi или другому сетевому оборудованию .

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 13:26, 27-11-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Тогда почему:
Цитата Anton04:
Данное задание напоминает топик Смена адресов DNS на всех компах в домене, но предложенный там вариант не совсем подходит, а именно нужно смена dns только на текущем (активном) интерфейсе, не затрагивая остальные интерфейсы »
не подходит? Там ведь есть:
Цитата:
Код: Выделить весь код
"Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE"

Отправлено: 15:45, 27-11-2012 | #4


Аватара для Anton04

Ветеран


Сообщения: 2068
Благодарности: 389

Профиль | Отправить PM | Цитировать


Цитата Iska:
не подходит? »
Честно, как то попытался его запустить не заработал, а в самом коде я профан. Если не трудно подредактируйте тот скрипт под текущую задачу?

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 16:04, 27-11-2012 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Если речь про это:



то, можно, например, так:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim objSWbemObjectEx

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
	For Each objSWbemObjectEx In .ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'True'")
		With objSWbemObjectEx
			WScript.Echo "[" & .Index & "]", .Description, "(" &  .MACAddress & ")", .SettingID
			
			If .SetDNSServerSearchOrder(Array("192.168.224.2", "192.168.224.3", "192.168.224.4", "192.168.224.5")) = 0 Then
				WScript.Echo "Successfully assign DNS server(s) to connection"
			Else
				WScript.Echo "Can't assign DNS server(s) to connection"
			End If
		End With
		
		Exit For
	Next
End With

WScript.Quit 0

Если Вам помимо того ещё и статику задавать надо, то: Script Assign a Static IP Address.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:57, 28-11-2012 | #6


Аватара для Anton04

Ветеран


Сообщения: 2068
Благодарности: 389

Профиль | Отправить PM | Цитировать


Цитата Iska:
Если речь про это: »
Ну это одно и тоже что и на первой закладке, так что конечно пойдёт!

Цитата Iska:
то, можно, например, так: »
Только вод вывод сообщений вообще не нужен, а так работает идеально.
Что нужно закомментировать чтобы убрать вывод сообщений?

Цитата Iska:
Если Вам помимо того ещё и статику задавать »
Нет, статику трогать не надо, только DNS.

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Последний раз редактировалось Anton04, 28-11-2012 в 10:41.


Отправлено: 10:30, 28-11-2012 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Anton04:
Ну это одно и тоже что и на первой закладке, …»
Отчасти. На первой вкладке можно задать не более двух.


Цитата Anton04:
Только вод вывод сообщений вообще не нужен, а так работает идеально.
Что нужно закомментировать чтобы убрать вывод сообщений? »
1. Поставить символ апострофа «'» перед обеими «WScript.Echo "…"».
2. Просто удалить строки с «WScript.Echo "…"».
3. Указывать параметром скрипта при его запуске параметр пакетной обработки «//b».
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:08, 28-11-2012 | #8


Аватара для Anton04

Ветеран


Сообщения: 2068
Благодарности: 389

Профиль | Отправить PM | Цитировать


Iska,

Ещё раз огромное спасибо. Решение более чем устраивает.

Удачи Вам.

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 11:14, 28-11-2012 | #9

atx atx вне форума

Новый участник


Сообщения: 30
Благодарности: 0

Профиль | Отправить PM | Цитировать


Можно подниму тему.

В компании сменился PDC, старый адрес DNS скоро будет неактивен, нужно на всех серверах со статикой прописать обновленный DNS.

1. Нужно поменять только 2й DNS на определенных серверах. В том числе и на домен контроллерах.
2. Нужно поменять оба DNS
3. Есть некоторое количество машин со статикой, на W7, там тоже надо поменять

Какой кусок скрипта нужно использовать по ссылке выше? Как скормить скрипту список серверов? Только для активного адаптера.

Последний раз редактировалось atx, 28-10-2014 в 13:08.


Отправлено: 13:02, 28-10-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Смена DNS только на активном сетевом интерфейсе.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - [решено] 2 IP на одном сетевом интерфейсе в Windows 7 Max2k Microsoft Windows 7 13 23-09-2015 19:30
Разное - маршрутизация на одном сетевом интерфейсе Qwerty!! Сетевые технологии 8 17-09-2012 11:06
Proxy/NAT - Прокся на одном сетевом интерфейсе Pit_bul Сетевые технологии 0 23-07-2011 21:54
[решено] Смена шлюза на сетевом интерфейсе Negativ AutoIt 3 03-11-2010 10:29
в сетевом окружении видны только сервера и несколько машин со статичными oldnew Microsoft Windows NT/2000/2003 15 10-03-2010 15:44




 
Переход