使用 Windows 任务计划程序的 PowerShell 脚本 运行 未 运行 宁 SQL 服务器 SSIS DTEXEC.EXE 作业

PowerShell script run using Windows Task Scheduler is not running a SQL Server SSIS DTEXEC.EXE job

希望这个问题足够独特,不会重复。我有一个 PowerShell 脚本,它可以做两件事。

  1. 将记录插入 SQL 服务器 table
  2. 将文本写入文本文件

为了post,我简化了脚本。在我的电脑上,脚本位于 C:\Temp\ssis.ps1。以下是脚本内容。

DTEXEC.EXE /F "C:\Temp\ssisjob.dtsx"    
$date = Get-Date
Write-Output "This PowerShell script file was last run on $date" >> C:\Temp\test.txt  

当我手动运行这个PowerShell脚本时,记录被插入SQL服务器table,一行文本被写入test.txt文件。如果我使用 Windows 任务计划程序将此脚本安排到 运行,则会向文本文件写入一行新文本,但不会将记录插入到 SQL 服务器 table.这告诉我 Windows 任务计划程序能够 运行 PowerShell 脚本。但是,由于某些未知原因,Windows 任务计划程序似乎不想 运行 SSIS 作业 (DTEXEC.EXE) 脚本的一部分。事件查看器确认 SSIS 作业存在问题。我正在 运行ning Microsoft SQL Server 2014,开发者版。

在我的任务中,在“操作”选项卡上,“添加参数”字段具有以下引用:C:\Temp\ssis.ps1。任务计划程序配置为 运行 具有最高权限。

我已经在 PowerShell 中尝试了以下所有执行策略。无论我 select 的执行策略如何,我的经验都不会改变。

任务计划程序中的“历史记录”选项卡有 信息 事件,但没有 错误 事件。

我没有权限查看 SQL 服务器日志(这是生产服务器)。

我已经调试这个问题几个星期了,我在 Stack Overflow 上阅读了很多 post ,但我似乎仍然找不到答案,所以希望我已经尽职调查在此处创建新的 post 之前。我可以添加一些额外的观察结果,但我不希望我的 post 变得太长。如果有人有任何可能引导我走上正确道路的提示、技巧或见解,将不胜感激。

这是我想出的解决方案。我没有将文件导出到 Excel,而是导出到平面文件(txt 文件)。此外,使用 Nick McDermaids 的优秀建议,而不是在 Task Scheduler 中使用 PowerShell,我在 Task Scheduler 中启动了 dtexec.exe 文件。

任务调度程序操作选项卡

  • 将操作保持为启动程序

  • 在Program/script中输入dtexec.exe

  • 在添加参数中,键入 /f "C:\path\to\example.dtsx

  • 将“开始”框留空