Скрипт для альтернативной конфигурации IP
Приветствую!
Найдется ли у кого-нибудь скрипт для установки альтернативной конфигурации IP?
(находится на вкладке в свойствах адаптера: протокол IPv4 => Свойства)?
Идея заключается в том, чтобы выставить всем Windows-компам в сети альтернативную конфигурацию в зависимости от их текущих IP/маски.
В данной сети IP выдается в соответствии с MAC-адресом и поэтому, он меняется только если изменилась конфигурация самого компа. В целом, эта вещь могла бы пригодится когда компы где-то в отдаленной комнате потеряют связь с сервером, при этом, у них останется возможность печатать в один принтер. Еще бывает, что сервер не пережил ночь (отключилось электропитание), а пользователи пришли и включили компы раньше, приходится советовать перезагрузить, а это не солидно как-то)).
|
Вложений: 1
Дописал скрипт на основе второй ссылки (так-как powershell не подходит для XP), предоставленной Kazun.
Отлично работает и на WinXP/7/8, распространяю его на компы при помощи KSC, для этого в архиве лежит .au3 который преобразуется в .exe
Сам скрипт написан на JS, настройки внутри)
|
Цитата:
Цитата baklanoid
так-как powershell не подходит для XP »
|
Подходит.
|
Iska, да, действительно PowerShell подходит, но получается, что я мало о нем знаю, сталкивался пару раз, запомнилось, что пароль запрашивал при запуске набора комманд, поэтому дальше не стал вникать. Можно ли установив его на все компы, одновременно выполнить сценарий на каждом?
|
Цитата:
Цитата baklanoid
Можно ли установив его на все компы, одновременно выполнить сценарий на каждом? »
|
Совсем чтоб одновременно — нет, нельзя. Нет такого средства, какой-нибудь временной лаг, пусть в несколько миллисекунд, да будет. Плюс смотрите возражения против такого сценария работы ниже.
Откровенно говоря, смысла в «одновременном» или квазиодновременном выполнении мало, поскольку всегда существует ненулевая вероятность, что где-то данный сценарий не сработает — какая-то машина недоступна (банально выключена, перегружается в данный момент, временно пропала связь и т.п.), где-то сценарий не сработал (например, ошибка сценария во время выполнения, або ещё что) и прочее. Посему лучший вариант — исполнение назначенного сценария во время обработки групповой политики: сценарий загружается, проверяет — не был ли он уже «здесь» (машина/пользователь) успешно исполнен ранее, выполняет свою работу, добавляет/обновляет результат работы в базу данных. Как правило, нескольких дней (в худшем случае — недель) хватает для распространения результатов на весь домен.
|
Iska, да, это понятно. Я не настаиваю на одновременности, мне способ с доменом не подходит, так как домена просто нет. Работу по доставке скрипта на компы выполняет агент касперского, ну и к тому-же не уверен, что на PowerShell'е можно определить адаптер подключения к заданной по DHCP сети динамически. В общем не осилю)
|
Цитата:
Цитата baklanoid
мне способ с доменом не подходит, так как домена просто нет. »
|
Это печально.
Цитата:
Цитата baklanoid
к тому-же не уверен, что на PowerShell'е можно определить адаптер подключения к заданной по DHCP сети динамически. В общем не осилю) »
|
Я может и осилю, но времени на это точно не найду. А в принципе — на Powershell сие возможно.
|
Код:
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'"
|
Время: 15:51.
© OSzone.net 2001-