如何在启动时连接到 VPN?

Mik*_*der 21 windows vpn automation windows-8

我需要让分支机构的计算机自动连接到公司 VPN 以简化登录过程(不强制用户按下右侧的网络登录)。

客户端机器是 Windows 8.1 机器,VPN 是标准的 PPTP 隧道。

Mik*_*der 41

在这里找到了这个解决方案。

  1. 打开任务计划程序 (搜索任务计划程序)
  2. 单击右侧操作面板中的创建任务
  3. 常规选项卡
  4. 为诸如Auto VPN 之类的任务提供一个逻辑名称
  5. 将运行任务模式切换为无论用户是否登录都运行
  6. 启用以最高权限运行选项
  7. 配置更改为:下拉菜单为Windows 10
  8. 触发器选项卡
  9. 单击新建...按钮
  10. 更改开始任务:启动时
  11. (可选)启用延迟任务并设置为 5 分钟。这让速度较慢的机器有机会在启动 VPN 之前空闲下来。
  12. 操作选项卡
  13. 单击新建...按钮
  14. 输入c:\windows\system32\rasdial.exe程序/脚本:场。如果您不想输入它或者您的默认 Windows 安装目录不同,您也可以浏览到它。
  15. 添加参数字段中输入连接名称。在要求你包的连接名称加上引号,如果有空间。您可能还需要附加的连接的用户名密码,以及域,如果他们需要,像这样:。rasdial.exe"VPN Connection Name" username password /domain:domainname
  16. 条件选项卡
  17. 取消选中条件选项卡上的所有选项。
  18. 设置选项卡
  19. (可选)启用“如果任务失败,重新启动每个:”并设置为适当的值。我将我的设置为 1 小时,以防 VPN 服务器端出现问题。
  20. (可选)将“尝试重新启动:”值设置为可接受的数字。我的默认值为 72 次,间隔为 1 小时。这包括长周末。
  21. 保存新任务


小智 5

Mikael 接受的答案很棒,除了 5.3 中的纯文本密码,这让我感到恶心。我的 VPN 连接(通过 IKEv2)的工作方式,rasdial 不需要用户名和密码作为参数。

但如果您的情况不同,有一些方法可以避免脚本中使用纯文本密码:

本文介绍如何使用 Powershell 加密和保存文本:https://www.pdq.com/blog/secure-password-with-powershell-encrypting-credentials-part-1/

总结一下:使用函数 ConvertTo-SecureString 您可以加密文本,只有同一台计算机上的同一用户(在其下运行的进程)才能解密它。这并不完全安全,但比纯文本更好。用于加密“MyP@ssword1”并将其保存到文件的 powershell 命令为:

"MyP@ssword1" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File "C:\path to\your\Password.txt"

在这里您将找到如何再次读取和解密密码: /sf/answers/1396543991/