我知道我可以创建一个批处理文件来启动VPN连接,然后是RDP会话,但我想知道是否有可能(在Windows 7中,理想情况下也是Windows XP)将VPN连接与RDP会话状态联系起来。
场景:用户必须首先使用VPN以便能够进行RDP。理想情况下,用户可以单击一个图标(批处理文件?)来启动VPN连接并加载RDP会话。当他们关闭RDP会话时,我希望VPN自动断开连接,这样他们就不会意外地通过VPN路由其后续的非RDP浏览+ Internet活动。
我知道我可以创建一个批处理文件来启动VPN连接,然后是RDP会话,但我想知道是否有可能(在Windows 7中,理想情况下也是Windows XP)将VPN连接与RDP会话状态联系起来。
场景:用户必须首先使用VPN以便能够进行RDP。理想情况下,用户可以单击一个图标(批处理文件?)来启动VPN连接并加载RDP会话。当他们关闭RDP会话时,我希望VPN自动断开连接,这样他们就不会意外地通过VPN路由其后续的非RDP浏览+ Internet活动。
Answers:
我意识到这个问题已经很老了,但我想我会为任何偶然发现它的人添加一种方法。
@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时是否有任何错误。
如果您有独立的VPN客户端程序(即Cisco AnyConnect),请使用Google查找该产品的命令行选项,以查看是否可以使用单个命令进行连接。例如:AnyConnect,通用思科客户端和Windows VPN客户端都支持此功能。但是,这可能要求您以明文形式将密码存储在批处理文件或脚本中。
一旦你的信息,编写一个批处理文件,它调用的VPN客户端,大概睡了几秒钟,以确保VPN连接好,然后调用命令行的远程桌面客户端。
如果你想要真正的想象,而不是睡眠来验证连接,你可以ping一些只能通过VPN访问的资源,并且如果ping没有成功,脚本会返回错误。
拿起您的批处理文件,将它(或快捷方式)放在桌面或任何地方,然后您只需单击“连接到VPN然后打开远程桌面”应用程序。
另一方面,如果您的VPN客户端无法通过命令行连接,我会查看AutoIT或其他鼠标/键盘宏脚本语言,看看您是否可以自动化VPN连接。