ผมประหลาดใจ ไม่มากนัก แต่ เมื่อพบว่าใน Windows 8 และ Windows Server 2008 หรือใหม่กว่า Microsoft ได้ "ปรับปรุง" การตั้งค่าการเชื่อมต่อ VPN เล็กน้อย เพื่อให้แม่นยำกว่า ลบการตั้งค่าจำนวนหนึ่งในแท็บ Options นี่คือลักษณะใน Windows 7:

ตอนนี้ (Windows 8, Windows 10) เกือบทุกอย่างถูกลบออก:

คำถามที่เกิดขึ้นโดยธรรมชาติ — จะตั้งค่า Auto Reconnection และจำนวนครั้งที่พยายามสร้างการเชื่อมต่อหากขาดได้อย่างไร?
มีหลายวิธีในการทำ มาเริ่มจากพื้นฐาน ตามระดับความยาก
วิธี 1 — การใช้ Notepad
คุณต้องตั้งค่าพารามิเตอร์ด้วยตนเอง เพื่อทำเช่นนั้น ให้ไปที่โฟลเดอร์
C:\Users\[USER]\AppData\Roaming\Microsoft\Network\Connections\Pbk\
ที่นั่น หาไฟล์ (อาจมีเพียงไฟล์เดียว) ชื่อ rasphone.pbk มันเป็นไฟล์ข้อความทั่วไป ซึ่งมีการตั้งค่าการเชื่อมต่อ VPN
คุณสามารถเปิดไฟล์นี้ด้วย notepad.exe
ปกติแล้วคุณต้องหาส่วนที่มี VPN ของคุณ เช่น [PPTP-VPN]
หาบรรทัดเหล่านี้ หากคุณไม่ได้ทำการเปลี่ยนแปลง พวกเขาจะมีลักษณะดังนี้:
RedialAttempts=3
RedialSeconds=60
IdleDisconnectSeconds=0
RedialOnLinkFailure=1
ดังนั้น Microsoft ตัดสินใจให้คุณแล้ว
แตตอนนี้คุณรู้ว่าจะหาและเปลี่ยนพารามิเตอร์ที่จำเป็นได้ที่ไหน
- RedialAttempts=3 – จำนวนครั้งที่พยายาม Redial (สูงสุด 99)
- RedialSeconds=60 – จำนวนวินาทีระหว่างการพยายาม Redial
- IdleDisconnectSeconds=0 — เวลารอก่อนที่จะชัดเจนว่ามีการตัดการเชื่อมต่อ (0 – ไม่รอ)
- RedialOnLinkFailure=1 — Redial หากการเชื่อมต่อล้มเหลว? 1 – ใช่, 0 – ไม่
เพื่อนำพารามิเตอร์ไปใช้ คุณต้องรีสตาร์ทการเชื่อมต่อ VPN ของคุณเหมือนเดิม
และเชื่อว่า Microsoft จะทำทุกอย่างให้คุณ
หมายเหตุ สังเกตว่า Windows Server 2012 อาจใช้ C:\Users\[USER]\AppData\Roaming\Microsoft\Network\Connections\Pbk\_hiddenPbk โฟลเดอร์ด้วยความประสงค์ของมันเองและตั้ง rasphone.pbk ไว้ในโฟลเดอร์นี้
วิธี 2 — การกำหนดค่า Task แบบง่าย
สร้าง Task ใน Task Scheduler ซึ่งจะรันไฟล์ BAT ที่มี Connection String ของ VPN และกำหนดค่า Task นี้ให้รัน เช่น ทุก 5 นาที
ควรเตือนว่า Command String เพื่อสร้างการเชื่อมต่อ VPN มีลักษณะดังนี้:
C:\windows\system32\rasdial.EXE entryname [username [password|*]] [/DOMAIN:domain]
มีพารามิเตอร์อื่นๆ แต่ถ้าสนใจหาเองได้
อย่าลืมติ๊ก "Run whether user is logged on or not" ในการตั้งค่า Task

ระบุไฟล์นำออกไป เช่น:

หรือ ให้ rasdial.exe เริ่มต้น (VPN User Password คือชื่อการเชื่อมต่อ VPN ของคุณ, user_name และ password)

เริ่มทุก 5 นาที ทุกวัน

วิธี 3 — กำหนดค่า Task แบบซับซ้อน
- สร้าง Task ใน Task Scheduler
- ตั้งค่า Trigger 2 ตัวใน Task ตัวแรกจะใช้ XML Query (เหมือนที่อธิบายในบทความ "How to Start a Scheduler Task After the Previous Task")
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[Provider[@Name='RasClient'] and (EventID=20226)]] and *[EventData[Data[4]='829' or '629']]</Select>
</Query>
</QueryList>
หมายเหตุ ค่า: 829 — Remote Disconnect, 629 -Client Disconnect
Trigger ที่สองขึ้นอยู่กับการติดตาม Event ใน Event Log:
- Log Name: Microsoft-Windows-NetworkProfile/Operational
- Source: NetworkProfile
- Event ID: 10000
- เลือก rasdial.exe พร้อมพารามิเตอร์ vpn-name username password เป็นโปรแกรมที่จะเริ่ม
- นอกจากนี้ ในแท็บ Conditions คุณสามารถตรวจสอบพารามิเตอร์ต่อไปนี้:

หมายเหตุ เพื่อให้แน่ใจว่า Task นี้ทำงาน ให้สร้าง Trigger อีกตัวด้วย Event ID = 10001 Event นี้ปรากฏเมื่อ VPN ถูก Disconnect ด้วยตนเอง หลังจากนั้น ลอง Disconnect VPN ด้วยตนเอง การเชื่อมต่อจะถูกกู้คืนทันที
นั่นคือทั้งหมด
หมายเหตุ วิธีที่อธิบายด้านบนใช้ได้กับ Windows 7 ด้วย