如何在启动时连接到 VPN?

如何在启动时连接到 VPN?

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

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

答案1

找到了这个解决方案这里

  1. 打开任务计划程序 (搜索任务计划程序)
  2. 点击创建任务在里面动作面板在右侧
  3. 常规选项卡
  4. 为任务提供一个逻辑名称,例如自动 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. 保存新任务

答案2

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"

在这里您将再次找到如何读取和解密密码: https://stackoverflow.com/a/19950628/4602253

答案3

只需创建 .bat 文件

c:\windows\system32\rasdial.exe "VPN Connection Name" [username] [password] [/domain:domainname]

并将创建的文件的快捷方式创建到 WINDOWS_KEY+R: shell:startup 文件夹中

相关内容