【问题标题】:Batch script having weird issues when put on Task Scheduler批处理脚本在任务计划程序上出现奇怪的问题
【发布时间】:2014-01-08 18:57:05
【问题描述】:

我有一个使用 psftp 从 Linux 服务器获取文件的批处理脚本

//test.bat

@echo off
echo "starting script" >> test.txt
echo y | "C:\Program Files (x86)\PuTTY\psftp.exe" user@server.com -b C:\runCmds.bat
exit

// runCmds.txt

cd /this/directory
lcd C:\directory
mget ./*.complete
mget ./*.zip
quit

这是一个极其精简的版本,但它是我遇到的问题的基础。如果我手动运行,我的整个批处理文件、复杂性和所有文件都将完美运行。我的计划任务将成功运行,因为没有错误,并且 test.txt 日志文件将显示我设置的文本。我已经看到计划任务和双引号的一些问题,但我不确定这是否是问题。看起来 psftp 命令无法正常工作。这是在 Windows Server 2008 R2 上。

【问题讨论】:

  • 将您的第三行放入括号中并添加>>test.txt,如下所示:(echo <...>\runCmds.bat)>>test.txt。有什么错误吗?
  • 好电话。所以它提示了我的密码几次,我使用了一个 private_key。所以任务设置为使用SYSTEM来运行它,也许它无权访问我的密钥?我确认它适用于我的用户名和密码。无论如何让系统知道我的私钥?无论如何,这就是我的问题。顺便说一句,感谢您的帮助。
  • 我有选美加载“C:\Program Files (x86)\PuTTY\pageant.exe C:\Program Files (x86)\PuTTY\private_key.ppk” 应该开始选美和加载私钥,但是日志多次输出“用户密码:”。所以看起来它没有使用它们的键......
  • 任务调度默认使用系统账号,没有网络权限。

标签: windows batch-file scheduled-tasks windows-server-2008-r2


【解决方案1】:

好的,cmets 引导我找到以下解决方案。

我正在使用 SYSTEM 运行计划任务,它无权访问我的 private_key。我更新了它以使用作为 private_key 文件所有者的管理员。然后,我没有使用私钥加载选美比赛,而是使用 -i 参数来指定 private_key。现在一切正常。谢谢!

// test.bat

@echo off
echo "starting script" >> test.txt
echo y | "C:\Program Files (x86)\PuTTY\psftp.exe" user@server.com 
    -i "C:\Program Files (x86)\PuTTY\private_key.ppk" -b C:\runCmds.bat
exit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 2011-10-11
    • 2013-10-19
    • 1970-01-01
    • 2014-03-15
    相关资源
    最近更新 更多