如果没有互联网连接,自动重启 Windows

mrp*_*atg 2 windows batch-file system-monitoring windows-8 windows-8.1

我有一个媒体服务器(Windows 8)位于我家一个非常不方便的地方。有时我必须重置我的路由器,否则它会自行重置。问题是 PC 由于某种原因失去连接,我被迫走出屋外,绕过房子,走进地下室,翻过一堆玩具、重物和盒子,按下按钮重新启动它。

我希望它每 5-10 分钟检查一次,并在无法 ping 给定地址/IP 时自动重启。

任何想法如何实现这一点?

Faz*_*r87 6

批处理文件:

ping 192.168.1.1
IF ERRORLEVEL 1 SHUTDOWN -R -T 00
Run Code Online (Sandbox Code Playgroud)

电源外壳:

if (!(Test-Connection 192.168.1.1 -quiet)) {Restart-Computer -Force}
Run Code Online (Sandbox Code Playgroud)

脚本:

 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
Run Code Online (Sandbox Code Playgroud)

这些中的任何一个都可以安排为适合您的时间间隔的任务 - 如果安排以“最高权限”运行,那么将能够克服任何潜在的 UAC 问题。

请记住,这只会检查与路由器的连接。也许值得用 www.google.com 或类似的 IP 替换 IP。让它成为你知道回复的东西(做一个手动 ping)并确保它不是一个容易停机的狡猾站点......你不想要你的电脑白白重启