首页 > 解决方案 > WinSCP 脚本手动工作正常,但在 SQL Server 代理作业执行时失败

问题描述

我有一个 WinSCP 脚本,它将文件从远程服务器 SFTP 到本地目录。当我从命令行执行脚本时,该脚本运行良好,但是当我尝试将其作为 SQL Server 代理作业中的命令步骤执行时,作业失败。历史告诉我的只有:

Executed as user: NT Service\SQLSERVERAGENT. The step did not generate any output. Process Exit Code 1. The step failed.

这可能意味着什么。我试图通过从脚本中剥离除退出语句之外的所有内容来将问题分解为核心。它仍然失败,所以我知道问题不在脚本中。有什么想法吗?

标签: sql-serverwinscpsql-server-agent

解决方案


发布以防其他人遇到此问题。WinSCP FAQ有一小部分关于这类问题,但错过了一个非常简单的可能性:作业是否有权访问正在执行的脚本?

无论谁创建了脚本,该命令都将由 SQLSERVERAGENT 帐户执行。如果您像我一样,将脚本保存在用户帐户的主目录下,SQLSERVERAGENT无权访问. 将脚本移动到它可以读取的目录,看看是否可以为您修复它。我使用了 Users\Public 目录。


推荐阅读