批处理文件运行正常但不在任务计划程序中

时间:2018-06-12 23:16:36

标签: batch-file ssis scheduled-tasks

下午大家,

我试图深入研究这个话题,我无法对我的问题得出结论。我正在尝试在任务计划程序中自动执行批处理文件以执行两个SSIS包。目前,当我尝试执行计划任务(等待其设置计划或按需运行)时,任务计划程序将显示任务已成功完成,“状态”将继续说“正在运行”但目标文件从不创建/重新创建。这是脚本:

dtexec /f "D:\SSIS\Folder\Folder\Folder\Package.dtsx"
dtexec /f "D:\SSIS\Folder\Folder\Folder\Package.dtsx"

SSIS应该从SQL中提取信息并将其导出为CSV,这非常棒......如果我在CMD,Powershell中执行此脚本,或直接运行我的批处理文件。

关于我的环境:

  • 我的脚本驻留在SQL Server上。 (Windows Server 2016标准版)
  • 我有一个用于脚本权限的域管理员帐户(包括批处理文件本身在内的所有父文件夹都添加了具有完全权限的域管理员,包括csv目标)。
  • 计划任务设置为:“运行用户是否登录”,“以最高权限运行”,为Windows Vista和Windows Server 2008配置。我知道我的凭据对于我的域管理员帐户是正确的。< / LI>
  • 在“操作”中,“程序/脚本:”当前设置为“C:\ Scripts \ file.bat”,“添加参数(可选):”中没有任何内容,当前,“启动(可选): “设置为”C:\ Scripts“。

所以这就是我尝试过的:

  • 我已将“Program / script:”设置为“cmd.exe”并添加了一个“file.bat”参数,其开头为“C:\ Scripts”,没有骰子。
  • 我已将“Program / script:”设置为“Powershell.exe”并设置参数“-ExecutionPolicy Bypass C:\ Scripts \ file.bat”,其开头为“C:\ Scripts”,no又好运了。
  • 我还将我的域管理员帐户添加到服务器上的本地管理员组。
  • 我已将用户/组从我的域管理员帐户更改为我的域管理员帐户(我登录到服务器的帐户)并将其设置为“仅在用户登录时运行”,如果这是设置并且我尝试运行计划任务,CMD在屏幕上闪烁并且在我可以读取任何内容之前消失(对于脚本实际运行来说仍然太快,它需要大约20秒)并且目标文件不会被更改。
  • (这个真的让我感到困惑)我试图将脚本添加到服务器上的另一个计划任务,计划任务将按计划运行并完成批处理文件中的每个脚本,除了这两行。它添加的另一个计划任务使用相同的域管理员帐户,全面相同的设置,甚至还有其他类似的SSIS包使用“dtexec”运行,我不明白。

感谢任何人都可以给我的任何意见,非常感谢。

1 个答案:

答案 0 :(得分:0)

我知道这是一篇非常老的帖子,但我遇到了同样的问题,并且在 StackOverflow 周围的任何其他流行解决方案中都没有成功,所以我想为仍在苦苦挣扎的任何人推出替代解决方案!

如有疑问,请在“属性”下的“安全选项”中仔细检查用户帐户(右键单击“任务”>“属性”>“安全选项”下的第一页)。

即使它默认选择的用户应该具有执行脚本的权限,我也不得不将用户帐户更改为具有更高权限的用户(我在工作计算机上)。对我来说,这意味着我必须在我的特定桌面环境中选择管理员组。