成功连接 OpenVPN 和 VPN 的 DHCP 协商后,如何更新 WinXP 客户端的 Web 代理和默认打印机设置?(以及如何在 VPN 断开连接时删除这些设置?)
我确信这是一个已解决的问题——它在概念上与为笔记本电脑从一个网络到另一个网络的非 VPN 转换自动化在概念上并没有太大的不同——但我的 XP 知识相当浅,我找不到这样做的秘诀。
成功连接 OpenVPN 和 VPN 的 DHCP 协商后,如何更新 WinXP 客户端的 Web 代理和默认打印机设置?(以及如何在 VPN 断开连接时删除这些设置?)
我确信这是一个已解决的问题——它在概念上与为笔记本电脑从一个网络到另一个网络的非 VPN 转换自动化在概念上并没有太大的不同——但我的 XP 知识相当浅,我找不到这样做的秘诀。
是的,您可以在 OpenVPN 连接的客户端或服务器端、Windows 或任何其他操作系统上、在连接的各个点执行任意命令。有几个选项(可在命令行或配置文件中使用)为连接过程的各个阶段定义要执行的脚本以及使用哪些参数。
例如,如果您在 OpenVPN 客户端配置文件中包含“up "C:\my-up-script.bat"' 行,您的客户端将执行位于 "C:\my-up-script.bat" 的任何批处理脚本。 bat”成功打开与服务器的 VPN 连接后。'down "C:\my-down-script.bat"' 行意味着在终止连接后执行脚本 "C:\my-down-script.bat"。
OpenVPN 手册(可在http://openvpn.net/index.php/open-source/documentation/manuals/69-openvpn-21.html获得完整的)列出了所有各种脚本以及每个脚本的执行时间:
如果您使用的是适用于 Windows 的 OpenVPN GUI,您可能还需要阅读该程序的安装指南 ( http://openvpn.se/install.txt ),特别是标题为“运行连接/断开/预连接脚本”的部分。OpenVPN GUI 将 OpenVPN 守护程序作为 Win32 服务运行,具有动态定义的命令行选项,因此您只需编写自己的脚本并将它们保存在服务包装器将查找它们的位置。
如果您使用 NullSoft NSIS 安装程序构建说明(http://openvpn.se/files/howto/openvpn-howto_roll_your_own_installation_package.html)“自己动手”,则可以在创建时将脚本放入包中。(我不想更详细地讨论这个主题,因为它涉及很多,官方文档比我在这里解释得更好。)
如果您不熟悉添加打印机和设置代理配置所需的 Windows 脚本命令,我建议您编写几个简短的 Visual Basic 脚本。您可以在 Google 上找到更多示例,但这里有一个初学者,灵感来自我在 Petri 论坛 ( http://www.petri.co.il/forums/showthread.php?t=6486 ) 上找到的内容,用于设置新建一台打印机并将其设为默认值:
将其保存为 .vbs 文件,您应该能够执行它并从任何可以看到打印机的机器上看到更改。此外,很明显,您必须在最后三行中的每一行中用您自己的名称替换工作组和打印机名称。
如果您使用 OpenVPN GUI 的预定义批处理脚本路径,您可以通过创建一个具有正确名称的批处理文件来运行 .vbs 脚本(如我在上面链接到的文档中所解释的那样),其中仅包含以下行:
您也可以直接从您的 OpenVPN 配置文件中调用 .vbs 脚本,方法是添加以下行:
(无论哪种方式,您都需要将该路径替换为实际 .vbs 脚本的位置。)
'down' 脚本可以以同样的方式工作——可能你只需要它包含一行,'WshNetwork.RemovePrinterConnection "\MyGroupName\MyPrinterName"'。