我已经构建了一个 Windows 批处理文件代码,它从 FTP 服务器获取文件列表,然后从该列表中提取适当的文件。批处理文件使用 pscp.exe 和 psftp.exe 的组合来实现此目的。
如果我以管理员组的成员身份登录并手动执行此批处理文件(双击)它可以完美运行,但是当我安排一个 Windows 任务从 Windows 服务帐户运行该批处理文件时出现问题(不在管理员组)。
在 Windows 服务帐户下运行的作业无法执行代码中使用的 pscp.exe 命令,而在批处理文件中执行之前的所有其他内容完全正常。
下面是我在批处理文件中使用的代码行:
pscp.exe -sftp -v -batch -pw %password% -ls %username%@ServerAddress:/outbox > F:\dirlist.txt
服务帐户是 BatchAccountsLG 和 ServiceAccountsLG 组的成员,作业需要它才能执行批处理文件代码。此外,服务帐户对执行代码所需的任何文件/文件夹具有所有必需的访问权限。
我不确定问题出在哪里,因为如果使用我的管理员凭据,批处理文件工作得非常好,而当使用 Windows 服务帐户安排作业时它会失败。
我曾尝试通过谷歌寻找答案,但我画了一个空白,对此的任何帮助将不胜感激。如果还有什么我需要补充的,我会很高兴这样做。
提前感谢所有的想法。