启动RDP远程桌面连接时自动连接到VPN,完成后断开VPN连接


5

我知道我可以创建一个批处理文件来启动VPN连接,然后是RDP会话,但我想知道是否有可能(在Windows 7中,理想情况下也是Windows XP)将VPN连接与RDP会话状态联系起来。

场景:用户必须首先使用VPN以便能够进行RDP。理想情况下,用户可以单击一个图标(批处理文件?)来启动VPN连接并加载RDP会话。当他们关闭RDP会话时,我希望VPN自动断开连接,这样他们就不会意外地通过VPN路由其后续的非RDP浏览+ Internet活动。


你在控制VPN吗?
James Mertz

不,但可以在必要时请求更改。为什么?
约什纽曼

根据VPN的设置方式,除非是针对该虚拟网络中的特定资源,否则可能无法通过隧道路由流量。最终,无论设置如何,您的用户都必须承担关闭隧道的责任。
James Mertz

好的,谢谢 - 断开是关键部分。所以我会看看只通过VPN路由RDP流量,以防它们保持连接状态。显然,如果我在VPN的TCP / IP设置下取消选中“在远程网络上使用默认网关”,那应该这样做。
乔什-纽曼

Answers:


5

我意识到这个问题已经很老了,但我想我会为任何偶然发现它的人添加一种方法。

@echo off

:: Connecting to VPN...
rasdial "VPN Name" user pass

echo Running RDP...
"Connect to Server.rdp"

echo Finished - disconnecting from VPN...
rasdial "VPN Name" /disconnect

Rasdial内置于Windows,用于连接和断开连接。在设置时,将“VPN名称”替换为您所谓的VPN连接。将第一行中的“user”和“pass”替换为实际用户名和密码以连接到VPN(即使您选择在创建VPN时保存凭据,Rasdial也要求您输入它们)。

由于批处理脚本同步运行,因此rasdial将在打开RDP文件之前完成与VPN的连接,并且在RDP会话打开的整个时间内,批处理脚本将等待。一旦RDP会话关闭,最终命令将运行以断开VPN。简单!

我倾向于在桌面上放置批处理脚本的快捷方式,并将其图标更改为普通的RDP(从C:\ Windows \ System32 \ mstsc.exe)。如果您不希望用户看到cmd窗口,您可以选择最小化启动脚本,但我希望将其保持可见,这样他们就可以看到连接到VPN时是否有任何错误。


1

如果您有独立的VPN客户端程序(即Cisco AnyConnect),请使用Google查找该产品的命令行选项,以查看是否可以使用单个命令进行连接。例如:AnyConnect通用思科客户端Windows VPN客户端都支持此功能。但是,这可能要求您以明文形式将密码存储在批处理文件或脚本中。

一旦你的信息,编写一个批处理文件,它调用的VPN客户端,大概了几秒钟,以确保VPN连接好,然后调用命令行的远程桌面客户端

如果你想要真正的想象,而不是睡眠来验证连接,你可以ping一些只能通过VPN访问的资源,并且如果ping没有成功,脚本会返回错误。

拿起您的批处理文件,将它(或快捷方式)放在桌面或任何地方,然后您只需单击“连接到VPN然后打开远程桌面”应用程序。

另一方面,如果您的VPN客户端无法通过命令行连接,我会查看AutoIT或其他鼠标/键盘宏脚本语言,看看您是否可以自动化VPN连接。


0

我能够通过改变使用@ Gechurch的回答在Windows 10 rasdialrasphone如下:

@echo off

:: Connecting to VPN...
rasphone.exe -d "My VPN"

echo Running RDP...
"Remote Server.rdp"

echo Finished - disconnecting from VPN...
rasphone.exe -h "My VPN"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.