Показать полную графическую версию : Пропадает интерфейс LAN приходится выкл/вкл
Windows2003server (хочу поехать в отпуск - небыл 2года, а тут такое началось)
Очень странная проблема раз в день приходится программно отключать и заново включать интерфейс LAN (так как сеть реально пропадает)
решил проблему скриптом, который пингует сначала один принтер, если его нет, второй принтер, если его тоже нет, вайфай точку(подлюченную по лан), и если и ее нету в сети - то выключить-включить LAN
@echo off
set ip1="192.168.6.38"
set ip2="192.168.6.30"
set ip3="192.168.6.222"
:start
ping %ip1% | find /i "TTL="
if %errorlevel% == 1 goto add
echo %ip1% + allright
goto start
exit
:add
ping %ip2% | find /i "TTL="
if %errorlevel% == 1 goto add2
echo %ip2% + allright
goto start
:add2
ping %ip3% | find /i "TTL="
if %errorlevel% == 1 goto re
echo %ip3% + allright
goto start
:re
netsh interface set interface "LAN" DISABLE
netsh interface set interface "LAN" ENABLE
echo %date% %time% >> d:\log\relan2.txt
echo "RELOAD LAN==========================================="
goto start
exit
как сильно идет нагрузка на сеть в таком скрипте, можно ли его модернизировать?
avolkov2009
23-08-2009, 20:57
Я несколько модернизировал. Сделал так, чтобы при "непрохождени" пинга интерфейс отключался (netsh interface set interface "LAN" DISABLE), потом 3 секунды сна (нашел утилитку sleep, вроде портирована из UNIX), потом - включение (netsh interface set interface "LAN" ENABLE). Скриптик просто заставил "крутиться" в планировщике каждые 10 минут.
Если кому интересно, могу завтра выложить текст скрипта.
поясните смысл 3 секунд после разрыва LAN?
avolkov2009
24-08-2009, 11:35
поясните смысл 3 секунд после разрыва LAN? »
Не знаю, на всякий, как говорится, случай... Может оно и не нужно?
Вот полный текст скрипта:
@echo off
set ext_loc=www.ya.ru
set int_loc=<то_чё_пингую_во_внутренней_сети>
set ext_if=ByFly
set int_if=Local
echo Testing* %ext_if%...
ping %ext_loc% | find /i "TTL="
if %errorlevel%==1 ( echo Resetting* %ext_if%...
netsh interface set interface "%ext_if%" disable
sleep 3s
netsh interface set interface "%ext_if%" enable )
echo Done.
echo.
echo Testing* %int_if%...
ping %int_loc% | find /i "TTL="
if %errorlevel%==1 ( echo Resetting* %int_if%...
netsh interface set interface "%int_if%" disable
sleep 3s
netsh interface set interface "%int_if%" enable )
echo Done.
echo.
set ext_loc=
set int_loc=
set ext_if=
set int_if=
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.