SSIS 运行 PS1 (powershell) 作业,但 SSMS 代理不运行

Posted

技术标签:

【中文标题】SSIS 运行 PS1 (powershell) 作业,但 SSMS 代理不运行【英文标题】:SSIS runs PS1 (powershell) job but SSMS Agent don't 【发布时间】:2020-10-23 01:00:05 【问题描述】:

我在 SSIS 上有一个包,它运行一个 .BAT 文件,因此运行一个 .PS1 文件(powershell)。此 Powershell 文件将 Excel 文件转换为 CSV,因此我可以更轻松方便地导入数据。

问题是当通过SQL Agent Job创建一个schedule并运行这个job时,并没有执行打开Excel文件并正常转换的步骤。通过 SSIS 可以工作,通过 SSMS(集成服务目录)运行包也可以,但通过代理就不行。

我的尝试:

我已经在文件夹中授予了几个 SQL 和 SSIS 的权限 用户(不知道是不是发给大家了)。

我已经激活了通过 SQL 窗口使用的功能(但是 命令也不起作用,它会给出错误)。作为答案:Enable 'xp_cmdshell' SQL Server

我已经通过 DCOMCNFG 授予了组件的权限。 作为答案:DCOM,DCOM 2

我已经在 SSMS 内部授予了权限。

我已经创建了代理并使用了凭据,并且在运行时 使用该代理的作业,它也不会运行。作为答案:Proxy answer,Proxy answer 2

但我不知道我可以做些什么来让进程通过代理、手动和通过 SSIS 正确运行,它可以完美运行。但不是自动的。 SSIS 在运行时是否有任何特定用户具有权限而 SSMS 代理没有? (尽管我已经尝试在任何地方给予许可)。

谢谢!

【问题讨论】:

错误信息?代码示例? 【参考方案1】:

问题出在 DCOM 配置中的 Excel 应用程序中,因此查看此链接 DCOM config,我能够修复它并正常运行。

【讨论】:

以上是关于SSIS 运行 PS1 (powershell) 作业,但 SSMS 代理不运行的主要内容,如果未能解决你的问题,请参考以下文章

Powershell .ps1 脚本不会运行/不存在?

在 Windows IoT 核心设备上运行 powershell 脚本“.ps1”

SSIS 运行运行 powershell 脚本但 SSMS 不运行的包

从 Powershell ISE 中的另一个 PS1 脚本调用 PowerShell 脚本 PS1

Windows11中的 powershell 无法运行 Activate.ps1

Windows11中的 powershell 无法运行 Activate.ps1