如何透過命令列工具快速連接 Windows 內建的 VPN 連線 | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何透過命令列工具快速連接 Windows 內建的 VPN 連線

由於經常在家上班,當需要連接客戶主機時,都要先撥接公司的虛擬私有網路(VPN),然後才能開始連線。但每次都要用鍵盤+滑鼠點個好幾次才能連接完成,覺得太浪費時間了,不自動化不行。所以這就花了點時間研究如何用批次檔或快速鍵來啟動 VPN 連線,本篇文章講解每個步驟與設定技巧。

傳統的連接方法

我通常都要用以下步驟建立 VPN 連線:

  1. 按下快速鍵 Win+I
  2. 輸入 VPN 搜尋
  3. 按下方向鍵 並按下 Enter
  4. 按下 Tab 鍵並按下 Enter 鍵選取 VPN 連接項目
  5. 按下 Tab 鍵跳到 連線 按鈕
  6. 按下 Space 鍵啟動 VPN 連線

image

而每次要關閉連線時,又要做一次類似的操作,當經常這樣做的時候,就有點煩人了。

使用命令列工具進行連線

在 Windows 10 有內建一個 rasdial.exe 工具,位於 C:\Windows\System32 路徑下,其用法如下:

C:\Windows\System32>rasdial.exe /?
使用方式:
        rasdial.exe entryname [username [password|*]] [/DOMAIN:domain]
                [/PHONE:phonenumber] [/CALLBACK:callbacknumber]
                [/PHONEBOOK:phonebookfile] [/PREFIXSUFFIX]

        rasdial.exe [entryname] /DISCONNECT

        rasdial.exe

        請參閱我們的線上隱私權聲明:
        'https://go.microsoft.com/fwlink/?LinkId=521839'

這個工具很神奇,在微軟官方文件中完全找不到任何文件,只有 Win32 API 的 C++ 說明文件而已。

以下是 rasdial.exe 工具的使用範例:

  1. 撥接 VPN

    rasdial.exe VPNName Username Pa$$w0rd
    
    • VPNName 就是你的 VPN 連線名稱
    • Username 就是你的 VPN 帳號
    • Pa$$w0rd 就是你的 VPN 密碼,且必須輸入明碼 (Plain Password)
      • 注意:就算你在 VPN 連線項目已經設定過密碼,這邊還是要再打一次一樣的!
  2. 掛斷 VPN

    rasdial.exe VPNName /DISCONNECT
    

上述指令寫成批次檔就可以用滑鼠雙擊連接/掛斷,相當方便!

設定 AutoHotkey 自動連線

不過對於一個真正的懶人來說,批次檔是不夠的,還需要有快速鍵才能滿足啊!

以下是我寫好的 AutoHotkey 命令腳本:

  1. 撥接 VPN ( 快速鍵: Ctrl-Alt-Shift-V )

    ^!+v::
    RunWait, rasdial.exe VPNName Username Pa$$w0rd, C:\Windows\System32, Hide|UseErrorLevel
    if (ErrorLevel) {
        TrayTip, 啟動 VPN 連線, 連線至 VPN 發生錯誤 (%A_LastError%), 3, 3
    } else {
        TrayTip, 啟動 VPN 連線, 成功連線至 VPN  (%A_LastError%), 3, 1
    }
    return
    
  2. 掛斷 VPN ( 快速鍵: Ctrl-Alt-Shift-D )

    ^!+d::
    RunWait, rasdial.exe VPNName /DISCONNECT, C:\Windows\System32, Hide|UseErrorLevel
    if (ErrorLevel) {
        TrayTip, 啟動 VPN 連線, 中斷 VPN 連線發生錯誤  (%A_LastError%), 3, 3
    } else {
        TrayTip, 啟動 VPN 連線, 已中斷 VPN 連線 (%A_LastError%), 3, 1
    }
    return
    

上述 AutoHotkey 腳本中,TrayTip 命令會讓你連線成功或失敗時顯示通知訊息。

如果你是 Windows 10 用戶,且使用 TrayTip 完全沒效果,請用以下 Chocolatey 命令重新安裝 AutoHotkey 才會正常運作:

choco install autohotkey.install --params="'/DefaultVer:U32'"

相關討論:https://www.autohotkey.com/boards/viewtopic.php?p=261485#p261485

相關連結