批处理文件连接和断开VPN连接

18

connect.bat

rasdial myvpn

disconnect.bat

rasdial myvpn /DISCONNECT

我将这两个文件分配了一个键盘快捷方式来运行它们,它们的工作非常完美。


问题:是否有可能创建一个单一的.bat文件执行以下操作:

if(connected)
   disconnect
else
   connect
1个回答

40
  • 基于 ping ,假设 VPN 服务器 IP 始终相同:

ping -n 1 1.2.3.4 && rasdial myvpn /disconnect || rasdial myvpn

将1.2.3.4替换为您的VPN服务器IP(连接时使用ipconfig / all),然后将其放入批处理文件或直接在快捷方式属性中添加cmd / c前缀。

  • 基于连接名称:

  • ipconfig|find/i "myvpn" && rasdial myvpn /disconnect || rasdial myvpn
    

    用你的 VPN 连接名称替换 myvpn


    你真是个天才,第二种方法完美地运行了。谢谢 wOx。 - derfect
    我尝试了这种方法,但是出现了一个警告,告诉我用户名和密码不正确。然而,在设置网络控制台中的VPN时,我已经填写了用户名和密码,所以我认为我不应该在BAT文件中包含它们?(在BAT文件中输入两个信息似乎不安全) - Kit Ng
    1
    @KitNg,根据在cmd中建立VPN连接的方法,使用*代替密码:rasdial myvpn myusername * - wOxxOm
    通过使用*,每次连接时都要求我输入密码。有没有办法在我的VPN属性中使用保存的凭据?我正在使用PPTP。谢谢。 - Kit Ng
    1
    @KitNg,nircmd可以做到:nircmdc rasdial myvpn - wOxxOm
    @wOxxOm 我的 VPN 服务只能通过单点登录应用程序连接,该程序需要密码和安全问题。有没有办法修改上述脚本以满足我的需求? - Ragova

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接