我有一个支持环境,使用VPN和远程桌面连接到许多客户的系统。 目前,支持人员必须在其工作站上手动设置VPN连接。 有没有办法以编程方式创buildVPN连接?
查看CodePlex上的DotRas项目,RasPhoneBook组件完全支持管理Windows使用的电话簿。
http://www.codeplex.com/DotRas
这比直接使用API要容易得多,我可以保证。 🙂
查找RAS API(远程访问服务),这是一个win32 DLL,但你可以从C#调用它。 以下是可帮助您开始使用的一些链接:
在Windows ras电话簿存储在一个简单的ini文件,可以在找到
C:\ Documents and Settings \ All Users \ Application Data \ Microsoft \ Network \ Connections \ Pbk \ rasphone.pbk
您可以在您的计算机上准备这样的文件,然后通过简单地将其复制到指定路径(或将其内容添加到现有文件中),将该文件部署到客户。 要在“网络连接”面板中显示新的连接,只需刷新资源管理器的视图(通过F5键),甚至不需要重新启动资源管理器。
我知道这个问题很老,但我有同样的问题,并用这个C#代码解决它。 也许这有助于某人。
首先,在您的个人电脑上创建VPN连接。 它将存储在%userprofile%\ AppData \ Roaming \ Microsoft \ Network \ Connections \ PBK中
然后用文本编辑器(例如Notepad ++)打开rasphone.pbk文件并复制连接信息。 但是别忘了。 在此步骤之前,您必须完成您的连接设置。 然后,从rasphone.pbk文件复制您的连接信息并粘贴到脚本(rasphone字符串)。 提示:rasphone.pbk文件只包含设置。 没有用户名和密码…
在我的代码中,我使用这些设置创建了一个连接。
连接名称:RAS – >起初行[RAS]
连接Ip:ras.ugurturhal.com
VPN类型:PPTP,支持CHAP和MS-CHAP v2协议
代码是检查您的VPN连接。 如果您有一个名为RAS或IP地址是ras.ugurturhal.com的连接,则代码不会改变,并向您发出警告。 如果你有很多VPN连接,并且没有一个设置相同(在上面),它也会“添加”这个VPN。 而最后一件事,如果你没有VPN连接,它将会创建一个新的。
注意:您无法看到您的网络上由C#创建的VPN连接。 但这将是工作。 并重新启动到电脑后,将在您的网络上看到它:)
我希望这对别人有帮助
你可以从我的Web主机上下载我的项目文件。
问候。
PS:我试图把所有的代码添加到这里,但在stackoverflow非常新。 请原谅我。 你可以下载样本;)
PS2:或者你可以从GitHub上检查它。 谢谢@axrwkr
我知道这不是“批准”的方法。 但是我一直这样做没有问题多年。
在你自己的电脑上设置vpn,确保在那里只有一个VPN设置,否则你将把它们全部部署到你的员工。 在PC上找到rasphone.pbk文件,将其重命名为myVPN.pbk(或任何你想要的),然后使用Altiris或其他方法将其部署到每个桌面上。
当他们点击它,它打开并正常工作。 作为一个额外的好处把它在网上,并告诉你的工作人员右键点击链接,并将其保存到他们的桌面和dbl点击它。 自从我第一次发现它在10年前的大部分时间以来,我们的uni就一直这样做。
您需要批处理脚本才能连接到基本机器上设置的VPN。 我有一个类似的问题需要处理,我发现这个和这个链接是有帮助的。 我已经使用过这个解决方案(第一个链接),所以它可以工作,但我没有批处理脚本了。
1.)在您的脚本中(在C:\ Users \ USERNAME \ AppData \ Roaming \ Microsoft \ Windows下)中的C:\ Documents and Settings \ All Users \ Application Data \ Microsoft \ Network \ Connections \ Pbk \中包含rasphone.pbk。 Vista中的Network \ Connections \ Pbk)
2.)将工作目录设置为一个变量名称,以便返回
3.)使用基于用户配置文件的变量名称移动到电话簿所在的目录
4.)测试电话簿是否存在,如果是,将其重命名为rasphone.pbk.bk,然后将xcopy从脚本位置(保存在变量中)新的电话簿移到新的位置。
5.)连接。
6.)准备就绪后,断开连接并使用原始文件中的设置覆盖电话簿(如果有的话),否则只需删除电话簿。
我是CMAK将有所帮助(CONNECTION MANAGER ADMINISTRATOR KIT)