Войти

Показать полную графическую версию : [решено] Скрипт для альтернативной конфигурации IP


baklanoid
24-07-2016, 21:07
Приветствую!

Найдется ли у кого-нибудь скрипт для установки альтернативной конфигурации IP?
(находится на вкладке в свойствах адаптера: протокол IPv4 => Свойства)?

Идея заключается в том, чтобы выставить всем Windows-компам в сети альтернативную конфигурацию в зависимости от их текущих IP/маски.

В данной сети IP выдается в соответствии с MAC-адресом и поэтому, он меняется только если изменилась конфигурация самого компа. В целом, эта вещь могла бы пригодится когда компы где-то в отдаленной комнате потеряют связь с сервером, при этом, у них останется возможность печатать в один принтер. Еще бывает, что сервер не пережил ночь (отключилось электропитание), а пользователи пришли и включили компы раньше, приходится советовать перезагрузить, а это не солидно как-то)).

Kazun
24-07-2016, 23:13
powershell - https://gallery.technet.microsoft.com/scriptcenter/DHCPAlternateConfiguration-90e92431
vbscript - https://blog.westmonroepartners.com/alternate-network-configuration-using-windows-scripting-host/

baklanoid
26-07-2016, 15:44
Дописал скрипт на основе второй ссылки (так-как powershell не подходит для XP), предоставленной Kazun.
Отлично работает и на WinXP/7/8, распространяю его на компы при помощи KSC, для этого в архиве лежит .au3 который преобразуется в .exe

Сам скрипт написан на JS, настройки внутри)

Iska
26-07-2016, 15:59
так-как powershell не подходит для XP »
Подходит.

baklanoid
26-07-2016, 21:25
Iska, да, действительно PowerShell подходит, но получается, что я мало о нем знаю, сталкивался пару раз, запомнилось, что пароль запрашивал при запуске набора комманд, поэтому дальше не стал вникать. Можно ли установив его на все компы, одновременно выполнить сценарий на каждом?

Iska
26-07-2016, 23:10
Можно ли установив его на все компы, одновременно выполнить сценарий на каждом? »
Совсем чтоб одновременно — нет, нельзя. Нет такого средства, какой-нибудь временной лаг, пусть в несколько миллисекунд, да будет. Плюс смотрите возражения против такого сценария работы ниже.

Откровенно говоря, смысла в «одновременном» или квазиодновременном выполнении мало, поскольку всегда существует ненулевая вероятность, что где-то данный сценарий не сработает — какая-то машина недоступна (банально выключена, перегружается в данный момент, временно пропала связь и т.п.), где-то сценарий не сработал (например, ошибка сценария во время выполнения, або ещё что) и прочее. Посему лучший вариант — исполнение назначенного сценария во время обработки групповой политики: сценарий загружается, проверяет — не был ли он уже «здесь» (машина/пользователь) успешно исполнен ранее, выполняет свою работу, добавляет/обновляет результат работы в базу данных. Как правило, нескольких дней (в худшем случае — недель) хватает для распространения результатов на весь домен.

baklanoid
26-07-2016, 23:27
Iska, да, это понятно. Я не настаиваю на одновременности, мне способ с доменом не подходит, так как домена просто нет. Работу по доставке скрипта на компы выполняет агент касперского, ну и к тому-же не уверен, что на PowerShell'е можно определить адаптер подключения к заданной по DHCP сети динамически. В общем не осилю)

Iska
27-07-2016, 02:22
мне способ с доменом не подходит, так как домена просто нет. »
Это печально.

к тому-же не уверен, что на PowerShell'е можно определить адаптер подключения к заданной по DHCP сети динамически. В общем не осилю) »
Я может и осилю, но времени на это точно не найду. А в принципе — на Powershell сие возможно.

Kazun
27-07-2016, 08:59
Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IPEnabled=true and DHCPEnabled=true" | Foreach {
$nic = $_.GetRelated("Win32_NetworkAdapter")
if($nic) {
$name = $nic | Foreach {$_.NetConnectionID}
Set-DHCPAlternateConfiguration -NicName $name
}
}

Если DHCP сервер один, то можно явно задать фильтр для него:

Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "DHCPServer='192.168.1.1'"




© OSzone.net 2001-2012