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

时间:2015-12-21 22:40:24

标签: sql-server windows powershell ssis scheduled-tasks

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

  1. 将记录插入SQL Server表
  2. 将文字写入文字文件
  3. 为了这篇文章的目的,我简化了脚本。在我的计算机上,该脚本位于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 Server表中,并将一行文本写入test.txt文件。如果我将此脚本安排为使用Windows任务计划程序运行,则会在文本文件中写入新的文本行,但不会将记录插入SQL Server表中。这告诉我Windows任务计划程序能够运行PowerShell脚本。但是,由于某些未知原因,Windows任务计划程序似乎不希望运行SSIS作业(DTEXEC.EXE)部分脚本。事件查看器确认SSIS作业存在问题。我正在运行Microsoft SQL Server 2014,开发人员版本。

    enter image description here enter image description here

    在我的任务中,在Actions选项卡上,Add arguments字段具有以下引用:C:\ Temp \ ssis.ps1。任务计划程序配置为以最高权限运行。

    enter image description here

    我在PowerShell中尝试了以下所有执行策略。无论我选择哪种执行政策,我的经验都不会改变。

    • 旁路
    • 无限制
    • 下RemoteSigned

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

    enter image description here

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

    我已经调试了几个星期这个问题了,我已经在Stack Overflow上阅读了很多帖子,但我似乎无法找到答案,所以希望我在此之前做了一个新帖子之前做了尽职调查。我可以添加一些额外的观察,但我不希望我的帖子在这里得到很长时间。如果任何人有任何提示或提示或洞察力可能会让我走上正确的道路,那将非常感激。

1 个答案:

答案 0 :(得分:0)

这是我提出的解决方案。我没有将文件导出到Excel,而是导出到平面文件(txt文件)。此外,使用Nick McDermaids出色的推荐,而不是在任务计划程序中使用PowerShell,我在任务计划程序中启动了dtexec.exe文件。

任务Sheduler操作标签

  • 将操作保持为启动程序

  • 在“程序/脚本”中,键入dtexec.exe

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

  • 将“开始时间”框保留为空