Wie starte ich einen Computer neu, wenn mein Netzwerk ausfällt?

0

Ich verwende einen Windows 10-Computer, auf den ich von unterwegs aus remote zugreifen kann. Ich verwende einen VPN-Dienst auf diesem Computer, und wenn die Verbindung über einen längeren Zeitraum bestehen bleibt, wird die Verbindung häufig unterbrochen, wodurch das System in einen Zustand versetzt wird, in dem der VPN-Client den Eindruck hat, dass er noch verbunden ist, aber nicht. Der Client versucht nie, die Verbindung erneut herzustellen, da er der Meinung ist, dass er immer noch verbunden ist, und auch der Nicht-VPN-Verkehr wird blockiert (wie eine Art ungewollter Kill-Schalter). Dies führt zu einer Situation, in der ein unbeabsichtigter Kill-Switch den Remotezugriff auf meinen Computer verhindert.

Ein automatischer Neustart des Computers, wenn das Internet länger als 5 Minuten nicht erreichbar ist, ist mein Endziel, aber ich bin mir nicht sicher, wie ich damit umgehen soll. Ich würde mich freuen, wenn mir jemand helfen könnte, ein Skript zu entwerfen, das den Computer in dieser Situation neu startet. Ich bin mit Cmd- oder Powershell-Skripting nicht sehr vertraut, aber hier ist ein kleiner Pseudocode, der den Prozess veranschaulicht, den ich für das Skript suche, und zwar so, dass er mit den integrierten Tools / Software ausgeführt werden kann, die in meinem Betriebssystem enthalten sind, z. Powershell oder Charge.

// Note- PSEUDO-CODE, NOT A USABLE SCRIPT AS-IS
ping 8.8.8.8 // check for internet connection. 0% packet returns would indicate the computer had probably entered this network lock-up
if pingsReturned == 0
{
    wait 5 minutes // in case of temporary disconnect, give the network time to reestablish itself
    ping superuser.com // alternate site used to confirm google isn't the only site I can't connect to, i.e. google is down, not my network connectivity
    if pingsReturned == 0
        shutdown /f /r /t 60 /c "Rebooting due to connection issues." 
    else
    {
        exit
    }
}
else
{
    exit
}

Ich möchte diese Aufgabe als Aufgabe ausführen, die im Taskplaner alle fünf Minuten ausgeführt wird. Ich habe im Internet (und dieser Website speziell) nach Lösungen gesucht, aber keine für Windows gefunden, obwohl ich eine sehr ähnliche Implementierung für Linux-Setups gefunden habe (die zufällig auch Googles DNS als Test verwendet hat, oder vielleicht auch nur eine Auf der Website finden Sie allgemeine Ping-Tests ...).

Matthew
quelle
Warum aktivieren Sie nicht einfach Keep-Alive-Pakete in Ihrem VPN-Client?
Daniel B
@Daniel B Das könnte einfacher sein, wenn der Kunde die Option hätte, aber das tut es nicht. Ich verwende den offiziellen TigerVPN-Client. TigerVPN ist mit der OpenVPN-GUI kompatibel, aber selbst mit dem DNS-Leak-Plugin treten bei der Verwendung gelegentlich Lecks auf.
Matthew

Antworten:

0

Ich denke, so etwas sollte den Trick tun

:: ping google
ping www.google.com -n 1 | find "TTL=" >nul
if errorlevel 1 (
    :: wait 60 seconds
    ping 127.0.0.1 -n 60 > nul

    :: ping another
    ping www.facebook.com -n 1 | find "TTL=" >nul
    if errorlevel 1 (
        echo Rebooting...
        shutdown /r
    ) else (
        echo We're back up again
    )
) else (
    echo We're up
)
Berend
quelle