rasdial pbk 檔案出現錯誤 703

rasdial pbk 檔案出現錯誤 703

我需要使用 pbk 檔案和登入/密碼靜默建立 VPN 連接,無需任何對話框。就像運行腳本一樣 - 連接。此外,用戶不應手動建立連接,一切都應以程式設計方式完成。

首先,我手動建立了一個連線來檢查它是否正常工作,我運行 pbk 文件,在新連線對話方塊中輸入登入名稱和密碼,然後按一下連線按鈕。連線已成功建立並且 VPN 可以工作。

然後我關閉了連接並在cmd中運行以下命令:

rasdial "MyVPNName" "login" "password" /phonebook:"path\to\file.pbk"

並成功連接VPN。我很高興,一切都按照我的預期進行。但是當我在另一台電腦上運行相同的命令時,出現 703 錯誤:

The connection needs information from you, but the application does not allow user interaction.

我認為它需要登入名稱和密碼。我注意到它會忽略命令列中的登入名稱和密碼,並使用錯誤的憑證甚至沒有它們。我嘗試使用 rasphone.exe 建立連接,但出現建立連接對話框。當我使用該對話方塊建立連線時,即使在命令列中沒有登入名稱和密碼,rasdial 命令也可以運作。系統似乎儲存了一個連接並使用保存的憑證進行連接。

但這不是我需要的。我需要在我的應用程式中單擊即可建立 VPN 連線。在該應用程式中,我計劃運行 rasdial.exe 或其他內建實用程序,並且除了我的應用程式或手動輸入登入/密碼之外,用戶不應看到任何其他對話框。

我有預覽用戶密碼=0在 pbk 文件中,如此處提到的在 Windows 10 上按一下即可連線至 VPN但這沒有幫助,對話框無論如何都會出現。

或者也許我可以將登入名稱和密碼設定到 pbk 檔案?有可能嗎?

答案1

  1. rasdial vpnname在 MS Windows 10、19XX、20H1、20H2 上運作良好,但當我升級到 21H1 時,它停止使用使用基於憑證的驗證或使用已儲存的憑證的 VPN 設定。

產生的錯誤是:

遠端存取錯誤 703 - 連線需要您提供訊息,但應用程式不允許使用者互動。

rasdial在指定要使用的配置後,似乎開始需要 2 個額外的參數:“用戶名”和“密碼”

您可以將“*”替換為密碼,然後系統會提示您輸入密碼。您可以將“ * * ”替換為使用者名稱和密碼,以便系統提示輸入兩者。

但是,如果您已在設定中儲存了憑證,或者您使用基於憑證的驗證,則實際上並不需要這些。

您可以改為傳遞參數“ '' '' ”(沒有雙引號,只有兩個單引號,連續 '' 作為用戶名,然後是一個空格,後跟兩個單引號,連續 ''對於密碼:

rasdial vpnname '' ''

考慮嘗試傳遞“”作為用戶名密碼,看看這是否可以解決您遇到的問題。

2) 如果您使用strongswan 作為從Windows 連接的IPSec 隧道服務,則存在一個“錯誤”,該錯誤會阻止MS Windows“保存使用者名稱和密碼”工作。已提供針對此 windows/strongswan 問題的解決方法,作為對 Strongswan 配置的更改,該方法有效: https://serverfault.com/questions/908098/strongswan-clients-access-rights/9081

3)假設IPSec隧道...我發現使用PowerShell創建VPN“連接”似乎支援保存憑證所需的一切,以便可以編寫“rasdial”腳本來檢查指定的VPN是否正在運行,如果沒有啟動它無需提示。此腳本化過程在 Windows 10 21H1 之前有效,但需要對上述 rasdial 進行更改。

唯一的警告是什麼?使用者第一次連線時需要指定其憑證,但如果成功,則不再提示輸入憑證。在那之後?可以使用腳本呼叫 rasdial 來啟動 VPN。

對於 powershell 建立 vpn「連線」 ,無需指定 /phonebook:\path\to\pbk

使用 powershell 建立可供 rasdial 使用的 vpn「連線」的範例,假設 IKEv2 和更多假設,請根據需要進行變更:(PowerShell 範例) Add-VpnConnection -Name "your-vpn-connection-name" -ServerAddress "fqdn.example.com" -TunnelType "IKEv2" -RememberCredential -AuthenticationMethod Eap -EncryptionLevel "Maximum";

然後也許添加更多功能: Set-VpnConnection -Name "your-vpn-connection-name" -ServerAddress "fqdn.example.com" -SplitTunneling $False -RememberCredential $True -TunnelType "IKEv2" -AuthenticationMethod Eap -UseWinlogonCredential $False -EncryptionLevel "Maximum";

然後,您可以使用 PowerShell「Set-VpnConnectionIPsecConfiguration」來設定以下內容:要使用的密碼、要使用的雜湊以及更進階的功能。

4) 一旦你有了一個命名的VPN“連接”,你應該能夠:

(使用舊版 rasdial 不需要使用者名稱/密碼參數:)

rasdial your-vpn-connection-name

(較新的 rasdial 需要您儲存或打算儲存到系統的使用者名稱和密碼:)

rasdial your-vpn-connection-name '' ''

希望這可以幫助。祝你好運!

相關內容