希望这个问题足够独特,不会重复。我有一个PowerShell脚本,可以完成两件事。
为了这篇文章的目的,我简化了脚本。在我的计算机上,该脚本位于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,开发人员版本。
在我的任务中,在Actions选项卡上,Add arguments字段具有以下引用:C:\ Temp \ ssis.ps1。任务计划程序配置为以最高权限运行。
我在PowerShell中尝试了以下所有执行策略。无论我选择哪种执行政策,我的经验都不会改变。
任务计划程序中的“历史记录”选项卡包含信息事件,但没有错误事件。
我没有权限查看SQL Server日志(这是一个生产服务器)。
我已经调试了几个星期这个问题了,我已经在Stack Overflow上阅读了很多帖子,但我似乎无法找到答案,所以希望我在此之前做了一个新帖子之前做了尽职调查。我可以添加一些额外的观察,但我不希望我的帖子在这里得到很长时间。如果任何人有任何提示或提示或洞察力可能会让我走上正确的道路,那将非常感激。
答案 0 :(得分:0)
这是我提出的解决方案。我没有将文件导出到Excel,而是导出到平面文件(txt文件)。此外,使用Nick McDermaids出色的推荐,而不是在任务计划程序中使用PowerShell,我在任务计划程序中启动了dtexec.exe文件。
任务Sheduler操作标签
将操作保持为启动程序
在“程序/脚本”中,键入dtexec.exe
在添加参数中,键入/ f" C:\ path \ to \ example.dtsx
将“开始时间”框保留为空