sql-server - 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.
这可能意味着什么。我试图通过从脚本中剥离除退出语句之外的所有内容来将问题分解为核心。它仍然失败,所以我知道问题不在脚本中。有什么想法吗?
解决方案
发布以防其他人遇到此问题。WinSCP FAQ有一小部分关于这类问题,但错过了一个非常简单的可能性:作业是否有权访问正在执行的脚本?
无论谁创建了脚本,该命令都将由 SQLSERVERAGENT 帐户执行。如果您像我一样,将脚本保存在用户帐户的主目录下,SQLSERVERAGENT无权访问. 将脚本移动到它可以读取的目录,看看是否可以为您修复它。我使用了 Users\Public 目录。
推荐阅读
- python - 删除熵为零的列
- android - MainApplication 类中的 React Native Firebase (FCM) getToken
- python - 如何用python解析嵌套的JSON
- python - 打开 3.7GB parquet 文件立即被杀死
- sql - 如何从 json 对象中获取密钥
- c++ - CMake:在 Windows 中拥有共享库:加载共享库时出错
- sql-server - 从 SQL 中的 XML 字段中选择数据
- python - 用海龟增加网格的大小
- ruby-on-rails - Rails - Require/Permit Params 不允许嵌套数组和对象
- r - 在事件链结束之前更新 Shiny R 中的数据表内容?