Войти

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


DeepWaters
28-08-2018, 10:15
Всем доброго дня, помогите советом - нужен скрипт перезагрузки компьютера при отсутствии сети, на любом скриптовом средстве для для Windows, т.е. чтобы создать скрипт вставить его в планировщик для выполнения при запуске винды и пускай он потихоньку в фоне выполняется не отнимая у системы особенно ресурсов и процессорного времени, только скрипт обнаружил что инет отвалился - перезагрузка компьютера, но не сразу а чтобы подождал немного - вдруг инет появится, скажем минут 5, и перед тем как перезагружать компьютер сначала выполнить перезагрузку сетевого адаптера и посмотреть - вдруг сеть появится, тогда перезагрузка компьютера отменяется.
А то я в скриптовых языках администрирования Windows не силен, а вот возникла такая необходимость
В инете на эту тему находится многое но там в основном через bat файл это делается, хотелось бы через VBS Powershell или Autoit, так надежней будет, bat при долгой работе может неожиданно завершится по каким либо причинам да и постоянное фоновое выполнение bat файла потребляет больше ресурсов VBS Powershell или Autoit

Elven
29-08-2018, 12:45
не представляю как cmd запускаемый раз в пять минут может неожиданно завершиться и/или отожрать много ресурсов.
ping 8.8.8.8 | find /i TTL && (
if exist f.lag del f.lag
) || (
if not exist f.lag (
echo nul >f.lag
) else (
del f.lag
shutdown -r -t 0 -f)
)
если при первой проверке 8.8.8.8 не пингуется создается файл f.lag, при повторном запуске не пингуется и f.lag есть - удаляем f.lag и ребутим машину, есть пинг - удаляем f.lag. короче - все просто, в шедулер добавлять с запуском каждые 5 минут от имени пользователя, у которого есть разрешение на запись/чтение в папке, в которой выполняется батник.
разумеется, можно сюда же добавить и перезагрузку сетевого адаптера » правда тут придется уточнить что именно имеется ввиду.

subuday77
29-08-2018, 16:34
@echo off
MODE CON COLS=60 LINES=10
title Connection check
:LOOP
1>nul (ping google.com -l 1 -n 1)
if %errorlevel% neq 0 call :reboot
timeout -T 10 /nobreak
cls
goto LOOP
:reboot
timeout -T 300
1>nul (ping google.com -l 1 -n 1)
if %errorlevel%==0 goto LOOP
ipconfig /release
ipconfig /renew
ipconfig /flushdns
timeout -T 60
1>nul (ping google.com -l 1 -n 1)
if %errorlevel%==0 goto LOOP
shutdown -f -r -t 30
exit




© OSzone.net 2001-2012