如何使用预保存的VPN凭据启动VPN

本文关键字:VPN 启动 何使用 保存 | 更新日期: 2023-09-27 17:53:12

我在Windows 7中设置了一个名为"我的VPN"的VPN连接,它保存了凭据。因此,当我在Windows中手动启动VPN时,它会立即连接,而不会询问用户的登录名或密码。

我现在想从代码中启动相同的VPN连接,使用保存的凭据,但是我没有找到一种方法来启动它,而不必在代码中提供凭据,出于安全原因,我宁愿不这样做。例如,只要我提供登录&参数字符串中的密码:

cmd.StartInfo.FileName = "rasdial.exe";
cmd.StartInfo.Arguments = "'"My VPN'" mylogin mypassword";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.ErrorDialog = true;
cmd.StartInfo.RedirectStandardError = true;
cmd.Start();

当我从参数字符串中省略凭据时,它拒绝连接,即使该连接已保存凭据。是否有一种方法可以强制代码使用保存的凭据?

我以前在XP中做的是在"网络连接"下创建一个VPN项目的快捷方式,然后我可以简单地调用eg。直接"快捷方式到myvpn . link",这样就可以了。如果可能的话,不确定Windows 7对应的是什么

Ok找到了如何创建VPN的快捷方式,所以我现在有一个。link文件。当我双击快捷方式时,VPN连接正常。此外,我可以使用start "" "C:'...'MyVPN.lnk"从命令行启动它-这也可以。

然而,我不能从代码中复制。我试过了:

cmd.StartInfo.FileName = "start '"'" '"C:'...'MyVPN.lnk'"";
cmd.StartInfo.Arguments = "";

cmd.StartInfo.FileName = "start";
cmd.StartInfo.Arguments = "'"'" '"C:'...'MyVPN.lnk'"";

抛出Win32Exception "The system cannot find The file specified."使用cmd.exe的变化也失败了…我现在已经没有主意了。

如何使用预保存的VPN凭据启动VPN

使用rasphone.exe

cmd.StartInfo.FileName = "rasphone.exe";
cmd.StartInfo.Arguments = "-d '"My VPN'"";
...
...
...

在SuperUser

上使用这个有一个答案