Debugger
10-02-2012, 14:19
Цель такая - имеется несколько свободных IP-адресов, которые используются не постоянно, а только на момент подготовки компьютеров к работе - установка ОС, софта, назначение уже постоянного другого IP адреса и выдача сотруднику. Сваял батник, который при первом входе в систему назначает компьютеру временный и заведомо никем не используемый IP-адрес, затем пингует остальные по списку и назначает уже другой - свободный (DHCP отключен). После чего установка софта запускается уже по сетке. Батник получился довольно громоздким, все думаю как бы его уменьшить (просто из спортивного интереса), или может быть можно сделать вообще как-то по-другому? И хочу чтобы был только один файл.
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v SearchList /t REG_SZ /d zavod.loc /f
reg add HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters /v SearchList /t REG_SZ /d zavod.loc /f
echo pushd interface ip > c:\ipconfig
echo set address name="Подключение по локальной сети" source=static addr=192.168.9.192 mask=255.255.252.0 >> c:\ipconfig
echo set address name="Подключение по локальной сети" gateway=192.168.10.199 gwmetric=0 >> c:\ipconfig
echo set dns name="Подключение по локальной сети" source=static addr=192.168.10.5 register=PRIMARY >> c:\ipconfig
echo add dns name="Подключение по локальной сети" addr=192.168.10.171 index=2 >> c:\ipconfig
echo set wins name="Подключение по локальной сети" source=static addr=none >> c:\ipconfig
echo popd >> c:\ipconfig
netsh exec c:\ipconfig
del /q c:\ipconfig
for %%I in (245,246,247,248) do ping 192.168.9.%%I -n 3 | find /I "TTL" || (set freeIP=%%I & goto :setip)
echo "Нет свободных адресов" & pause & exit
:setip
echo pushd interface ip > c:\ipconfig
echo set address name="Подключение по локальной сети" source=static addr=192.168.9.%freeIP% mask=255.255.252.0 >> c:\ipconfig
echo set address name="Подключение по локальной сети" gateway=192.168.10.199 gwmetric=0 >> c:\ipconfig
echo set dns name="Подключение по локальной сети" source=static addr=192.168.10.5 register=PRIMARY >> c:\ipconfig
echo add dns name="Подключение по локальной сети" addr=192.168.10.171 index=2 >> c:\ipconfig
echo set wins name="Подключение по локальной сети" source=static addr=none >> c:\ipconfig
echo popd >> c:\ipconfig
netsh exec c:\ipconfig
del /q c:\ipconfig
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v SearchList /t REG_SZ /d zavod.loc /f
reg add HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters /v SearchList /t REG_SZ /d zavod.loc /f
echo pushd interface ip > c:\ipconfig
echo set address name="Подключение по локальной сети" source=static addr=192.168.9.192 mask=255.255.252.0 >> c:\ipconfig
echo set address name="Подключение по локальной сети" gateway=192.168.10.199 gwmetric=0 >> c:\ipconfig
echo set dns name="Подключение по локальной сети" source=static addr=192.168.10.5 register=PRIMARY >> c:\ipconfig
echo add dns name="Подключение по локальной сети" addr=192.168.10.171 index=2 >> c:\ipconfig
echo set wins name="Подключение по локальной сети" source=static addr=none >> c:\ipconfig
echo popd >> c:\ipconfig
netsh exec c:\ipconfig
del /q c:\ipconfig
for %%I in (245,246,247,248) do ping 192.168.9.%%I -n 3 | find /I "TTL" || (set freeIP=%%I & goto :setip)
echo "Нет свободных адресов" & pause & exit
:setip
echo pushd interface ip > c:\ipconfig
echo set address name="Подключение по локальной сети" source=static addr=192.168.9.%freeIP% mask=255.255.252.0 >> c:\ipconfig
echo set address name="Подключение по локальной сети" gateway=192.168.10.199 gwmetric=0 >> c:\ipconfig
echo set dns name="Подключение по локальной сети" source=static addr=192.168.10.5 register=PRIMARY >> c:\ipconfig
echo add dns name="Подключение по локальной сети" addr=192.168.10.171 index=2 >> c:\ipconfig
echo set wins name="Подключение по локальной сети" source=static addr=none >> c:\ipconfig
echo popd >> c:\ipconfig
netsh exec c:\ipconfig
del /q c:\ipconfig