如何使用预保存的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
的变化也失败了…我现在已经没有主意了。
使用rasphone.exe
cmd.StartInfo.FileName = "rasphone.exe";
cmd.StartInfo.Arguments = "-d '"My VPN'"";
...
...
...
在SuperUser