Пакетный файл:
ping 192.168.1.1
IF ERRORLEVEL 1 SHUTDOWN -R -T 00
Powershell:
if (!(Test-Connection 192.168.1.1 -quiet)) {Restart-Computer -Force}
VBScript:
If Reachable("192.168.1.1") Then
WScript.Run("shutdown -r -t 00")
End If
Function Reachable(strComputer)
Dim wmiQuery, objWMIService, objPing, objStatus
wmiQuery = "Select * From Win32_PingStatus Where Address = '" & strComputer & "'"
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set objPing = objWMIService.ExecQuery(wmiQuery)
For Each objStatus in objPing
If IsNull(objStatus.StatusCode) Or objStatus.Statuscode<>0 Then
Reachable = False 'if computer is unreacable, return false
Else
Reachable = True 'if computer is reachable, return true
End If
Next
End Function
Любой из них может быть запланирован для работы в качестве задачи на подходящем для вас интервале - если он запланирован для работы с "самыми высокими привилегиями", он сможет преодолеть любые потенциальные проблемы с UAC.
Имейте в виду, что это только проверяет подключение к вашему маршрутизатору. Возможно, стоит заменить IP-адрес на такой, как www.google.com или похожий. Сделайте что-нибудь, на что вы знаете ответы (выполните ручной пинг) и убедитесь, что это не хитрый сайт, который уязвим для простоя. Вы не хотите ваш компьютер перезагружается даром