Batch File:
ping 192.168.1.1 IF ERRORLEVEL 1 SHUTDOWN -R -T 00
Powershell:
if (!(Test-Connection 192.168.1.1 -quiet))
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
Any of these can be scheduled to work as a task at an intervall to suit you - an if scheduled to run with "highest priviledges", then will be able to overcome any potential UAC problems.
Bear in mind this only checks connectivity to your router. It maybe worth replacing the IP with one such as www.google.com or similar.. make it something which you know replies (do a manual ping) and make sure it isnt a dodgy site which is vulnerable to downtime.. you dont want your pc rebooting for nothing