Reinicializa automaticamente o Windows8 se não houver atividade na Internet

1

Eu tenho um servidor de mídia localizado em uma parte muito inconveniente da minha casa. Ocasionalmente, terei que redefinir meu roteador ou ele será redefinido. A questão é que o PC perde a conectividade por algum motivo, e eu sou forçado a caminhar para fora, ao redor da casa, para o porão, sobre um monte de brinquedos e pesos e caixas, para apertar um botão para reiniciá-lo.

Eu adoraria verificar a si mesmo a cada 5 a 10 minutos e reinicializar automaticamente caso não consiga executar o ping em um determinado endereço / IP.

Alguma idéia de como fazer isso?

    
por mrpatg 12.06.2014 / 16:58

2 respostas

2

Arquivo em lote:

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

Qualquer um destes pode ser agendado para funcionar como uma tarefa em um intervalo para atender você - um programado para ser executado com "privilégios mais altos", então será capaz de superar quaisquer problemas potenciais do UAC.

Lembre-se de que isso apenas verifica a conectividade do seu roteador. Talvez valha a pena substituir o IP por um como o www.google.com ou similar. Torne-o algo que você sabe responder (faça um ping manual) e certifique-se de que ele não é um site duvidoso que é vulnerável ao tempo de inatividade. seu pc reiniciando por nada

    
por 12.06.2014 / 17:24
0

Aqui está um script do PowerShell que fará isso. Basta executá-lo como uma tarefa agendada com a frequência que desejar. Ele usa Reiniciar-Computador , você pode precisar usar -force , dependendo das circunstâncias. Verifique o link para opções.

If (!(Test-Connection 192.168.20.199 -quiet)) {
    #Write-Host "Not connected"
    Restart-Computer
}
Else {
    #Write-Host "Connected"
}

Incluí uma declaração If / Else completa, mas você pode fazer isso em uma linha. O If / Else completo oferece a flexibilidade de fazer mais, se necessário. Aqui está um 1 liner:

if (!(Test-Connection 192.168.20.199 -quiet)) {Restart-Computer}

Se você não puder fazer o ping do roteador quando ele falhar, use o endereço do roteador no script. Essa seria a melhor opção. Você poderia testar um site como o yahoo.com. O problema com o teste de um site externo é o seguinte:

  1. O endereço remoto tem que aceitar pings
  2. O endereço remoto pode estar inativo, o que faria a máquina reinicializar
por 12.06.2014 / 17:15