2016年7月29日 星期五

Windows 10 VPN斷線自動重撥解決方案

Windows自帶pptp的VPN連線方式,不用安裝任何軟體就可以使用VPN連線,但是從8.1開始,居然把斷線自動重撥的功能拿掉了...

還好有變通方法可以使用...不過有點麻煩...就是使用工作排程器,偵測斷線的事件20226 & 重撥失敗的事件20227

1. 使用工作排程器,新增一個工作
2. 觸發程序 選擇 當事件發生時
3. 紀錄檔 選擇 應用程式
4. 來源 RasClient
5. 識別碼 20226
6. 再新增一個觸發程序 識別碼 20227
7. 動作 新增一個 啟動程式  指令碼填 rasdial
8. 引數填 "VPN_NAME" id pw
9. 完成

這樣就能夠自動斷線重連了(手動斷線不會)

嫌麻煩也可以利用以下的XML檔匯入...VPN_NAME記得修改

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2016-07-29T14:52:44.5247799</Date>
    <Author>DESKTOP-LABE5JE\jikker</Author>
    <URI>\VPN</URI>
  </RegistrationInfo>
  <Triggers>
    <EventTrigger>
      <Enabled>true</Enabled>
      <Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="Application"&gt;&lt;Select Path="Application"&gt;*[System[Provider[@Name='RasClient'] and EventID=20226]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>
    </EventTrigger>
    <EventTrigger>
      <Enabled>true</Enabled>
      <Subscription>&lt;QueryList&gt;&lt;Query Id="0" Path="Application"&gt;&lt;Select Path="Application"&gt;*[System[Provider[@Name='RasClient'] and EventID=20227]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>
    </EventTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-21-687921218-3904265620-350331364-1001</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P1D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>rasdial</Command>
      <Arguments>"VPN_NAME" id pw</Arguments>
    </Exec>
  </Actions>
</Task>