Câu hỏi Làm cách nào để khởi động lại máy tính khi mạng của tôi hoạt động?


Tôi đang chạy một máy tính Windows 10 mà tôi cần để có thể truy cập từ xa khi xa nhà. Tôi sử dụng dịch vụ VPN trên máy tính này và khi còn lại trong thời gian dài, kết nối sẽ thường xuyên bị ngắt, đưa hệ thống vào trạng thái mà máy khách VPN cho rằng nó vẫn được kết nối, nhưng không. Máy khách không bao giờ cố gắng kết nối lại, vì nó tin rằng nó vẫn được kết nối và lưu lượng không phải VPN cũng bị chặn (giống như một loại công tắc giết không chủ ý). Điều này dẫn đến tình huống mà một công tắc giết người không chủ ý ngăn tôi truy cập máy tính từ xa.

Tự động khởi động lại máy tính khi internet có vẻ không thể truy cập được trong một khoảng thời gian dài hơn 5 phút là mục tiêu cuối cùng của tôi, nhưng tôi không chắc chắn cách thực hiện nó. Tôi sẽ đánh giá cao nếu ai đó có thể giúp tôi thiết kế một kịch bản sẽ khởi động lại máy tính trong tình huống này. Tôi không phải là tất cả những người quen thuộc với kịch bản lệnh cmd hoặc PowerShell, nhưng đây là một mã giả nhỏ thể hiện quá trình tôi đang tìm kịch bản, theo cách nó có thể chạy với các công cụ / phần mềm tích hợp đi kèm với hệ điều hành của tôi, ví dụ: quyền hạn hoặc lô.

// 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
}

Tôi muốn lên kế hoạch cho hoạt động này như một nhiệm vụ chạy trong khoảng thời gian 5 phút trong bộ lập lịch tác vụ nếu có thể. Tôi đã tìm kiếm các giải pháp, nhưng không tìm thấy giải pháp, nhưng không tìm thấy giải pháp nào cho Windows, mặc dù tôi đã thực hiện một cài đặt tương tự cho các thiết lập Linux (tình cờ cũng sử dụng DNS của Google làm thử nghiệm hoặc có thể đó chỉ là đi đến trang web để kiểm tra ping nói chung ...).


0
2017-09-08 07:05


gốc


Tại sao không chỉ cho phép giữ các gói dữ liệu còn sống trong máy khách VPN của bạn? - Daniel B
@Daniel B Điều đó có thể dễ dàng hơn nếu khách hàng có tùy chọn, nhưng không. Tôi đang sử dụng ứng dụng khách TigerVPN chính thức. TigerVPN IS tương thích với GUI OpenVPN, nhưng ngay cả với plugin bị rò rỉ DNS, tôi vẫn thường xuyên bị rò rỉ khi sử dụng nó. - Matthew


Các câu trả lời:


Tôi đoán một cái gì đó như thế này nên làm các trick

:: 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
)

0
2017-09-08 07:23