Korzystam z komputera z systemem Windows 10, do którego muszę mieć zdalny dostęp poza domem. Korzystam z usługi VPN na tym komputerze, a kiedy jest włączony przez dłuższy czas, połączenie często zrywa się, co powoduje, że system przechodzi w stan, w którym klient VPN uważa, że jest nadal podłączony, ale nie jest. Klient nigdy nie próbuje połączyć się ponownie, ponieważ uważa, że jest nadal połączony, a ruch inny niż VPN jest również blokowany (jak swego rodzaju niezamierzony przełącznik zabicia). Powoduje to sytuację, w której niezamierzony wyłącznik awaryjny uniemożliwia mi zdalny dostęp do mojego komputera.
Ponowne uruchomienie komputera automatycznie, gdy Internet wydaje się nieosiągalny przez okres dłuższy niż 5 minut, jest moim ostatecznym celem, ale nie jestem pewien, jak sobie z tym poradzić. Byłbym wdzięczny, gdyby ktoś mógł mi pomóc zaprojektować skrypt, który uruchomiłby ponownie komputer w takiej sytuacji. Nie jestem do końca zaznajomiony ze skryptami cmd lub PowerShell, ale oto mały pseudokod pokazujący proces, w którym szukam skryptu, w taki sposób, że można go uruchomić za pomocą wbudowanych narzędzi / oprogramowania dołączonego do mojego systemu operacyjnego, np. PowerShell lub partia.
// 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
}
Jeśli to możliwe, planuję uruchomić to jako zadanie uruchamiane w 5 minutowych odstępach w harmonogramie zadań. Grzebałem w Internecie (a konkretnie na tej stronie), szukając rozwiązań, ale nie znalazłem żadnego dla Windows, chociaż znalazłem bardzo podobną implementację dla konfiguracji Linuxa (która przypadkowo używała również DNS Google'a jako testu, a może to tylko przejdź na stronę ogólnie po testy ping ...).