SQL Agent无法使用WMI Event Watcher Task运行程序包

时间:2019-10-22 23:47:39

标签: sql-server ssis com wmi sql-agent

我创建了一个SSIS包,该包使用WMI Event Watcher Task监视正在另一台服务器上创建的文件。当我在VS中运行该程序包时,该程序运行良好。当我从Integration Services目录手动执行它时,它工作正常。当我尝试将其作为计划的SQL Agent Job运行时,我得到了 错误:正在监视Wql查询导致以下系统异常:“访问被拒绝。(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))”。检查查询中是否有错误或访问权限的WMI连接。

我的问题是,当我可以几种不同的方式成功运行它时,为什么它不能作为SQL Agent Job运行?基于错误代码似乎是一个COM / DCOM安全问题。

到目前为止,我有:

  • 尝试过许多网站,大多数都或多或少像这样 https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-troubleshooting?redirectedfrom=MSDN我已完全遵循这些网站上的所有说明。
  • 退回并给予更多的权限,然后再授予网站指定的Windows管理和工具的COM限制和DCOM配置。
  • 每次更改后,已经多次在另一台服务器上重新启动WMI服务。
  • 将SA和我本人作为工作的所有者。
  • 尝试了我通常的SQL Agent代理帐户和默认的Server Agent服务帐户(即托管服务帐户)作为程序包的运行方式。
  • 尝试以32位和64位运行时运行。
  • 已在另一台服务器上执行了SQL Agent代理帐户和Server Agent服务帐户管理员。
  • 尝试将我的用户名和密码硬编码到连接管理器中,并使用Windows身份验证。

*新测试*

  • 使用文件系统而不是SSIS目录作为包源测试了SQL代理作业,但仍然失败,并出现相同的错误。
  • 使用Execute Package Utility测试了运行中的程序包,它起作用了!

1 个答案:

答案 0 :(得分:0)

AgentSqlServer用户无权在服务器上启动WMI查询,您应该创建一个代理帐户并将其加入à到SQL Job上的步骤。