我正在学习如何使用SSIS创建自动计划任务。在安全政策发生变化之前,一切都进展顺利。在我想连接数据库之前,我只需在SSIS连接管理器中输入IP地址,用户名和密码。 现在我需要首先打开OpenVPN,这仍然是一个手动过程。所以我真的想把这一点放到SSIS任务流程中。
我在Stackoverflow和其他一些网站上搜索过。这是stackoverflow中的link。这个例子给出了我们可以使用VBA来设置链接的想法。然而,该示例显示我们需要VPN连接名称和VPN用户名,我实际上并不知道在哪里找不到。每次我右键单击.ovpn文件并选择在此配置文件上启动openvpn 。此外,当我打开.ovpn文件时,没有命令指示哪个是我的连接名称或用户名。这是我打开它时的样子(这个文件中没有-auth-user-pass
的东西,我可以使用这个文件,而不必指定它):
client
dev tun
proto udp
remote a website here 1111
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca ca.crt
cert office.crt
key office.key
askpass login.txt
是否可以找到我的连接名称和用户名?如果我不需要连接名称和用户名,我还可以编写VBA来建立自动连接过程吗?
我还注意到SSIS中有一个execute process task
。是否有可能我可以使用它(因为在我的理解中显然我使用openvpn.exe来执行.ovpn文件)?
如果我说错了,请纠正我,因为我是VPN和SSIS的新手。无论谁能帮助我,我都非常感激。
答案 0 :(得分:3)
我对OpenVPN一无所知,但一段时间后我遇到了一个类似的问题:服务器坚持使用PuTTY作为唯一允许的连接方法的SSH隧道。
制定这些政策的人从未想过对SSIS的影响,特别是对于无人值守的处理。
我找到的解决方案是:
另外,请记住,在无人值守的执行中(例如,当在作业中安排时),您的程序包将在不同的安全上下文中运行,与您工作的程序包一起开发(取决于SSIS服务设置)。如果您对OpenVPN的访问权限依赖于ActiveDirectory,则可能需要为SSIS服务的登录用户设置另一个OpenVPN帐户。
如果这听起来很可怕,那就是噩梦般的复杂和不稳定,那是因为它是。真的,TL; DR版本是:告诉管理服务器的人,如果他们真的希望你使用SSIS访问它,他们应该制定更合理的访问策略。
答案 1 :(得分:0)
与我的IT同事合作后,我认为我解决了这个问题。以下是我对这个问题的回答和意见,如果我错了,请纠正我。
我认为自动打开VPN是个案问题。在这种情况下,我仍然在SSIS中使用执行流程任务。在任务编辑器中,我们正在执行的不是openVPN.exe,它应该是一个批处理文件。在批处理文件(.bat文件)中,它包含使用OpenVPN.exe打开.ovpn文件的命令
以下流程为您提供更详细的信息。
命令行是我在批处理文件中使用的:
@echo off
CD /D "C:\Program Files\OpenVPN\config"
start openvpn client.ovpn
TIMEOUT /T 10
exit
希望这很有用