AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1084015
Accepted
amyassin
amyassin
Asked: 2021-11-20 01:51:35 +0800 CST2021-11-20 01:51:35 +0800 CST 2021-11-20 01:51:35 +0800 CST

为什么 PSFTP 脚本在作为系统运行时会失败?[关闭]

  • 772
关闭。这个问题是题外话。它目前不接受答案。

此问题似乎与帮助中心定义的范围内的服务器、网络或相关基础架构管理无关。

9 个月前关闭。

改进这个问题

我有一个 Windows cmd 批处理文件,它应该使用 PuTTY PSFTP exe 通过 sFTP 检索 FTP 服务器上的文件列表,并将其用于进一步处理。命令是:

echo ls | psftp -l myusername -pw mycomplexpwd FTPServerHostname > C:/Users/myuser/Desktop/ls.txt

它应该在ls.txt我在其他脚本中使用的文件中输出列表。以普通用户身份运行时,我得到了列表。但是,当使用任务计划程序并将脚本安排为SYSTEM用户时,我在输出文件中只得到这个:

远程工作目录是 /
psftp>quit

我猜想管道使用有问题|或其他什么,所以我也尝试使用这种语法但也有相同的输出:

psftp -l myusername -pw mycomplexpwd FTPServerHostname < C:/Users/myuser/Desktop/lscmd.txt > C:/Users/myuser/Desktop/ls.txt

将作业安排为 SYSTEM 而不是我的用户时可能导致问题的原因是什么?以及如何获得 SYSTEM 列表?请注意,当以管理员身份运行脚本时(右键单击 - 以管理员身份运行),我得到的列表很好,问题仅在使用任务计划程序并将任务安排为 SYSTEM 时。

操作系统是 Windows Server 2012 R2。

task-scheduler putty windows-server-2012-r2 psftp
  • 1 1 个回答
  • 228 Views

1 个回答

  • Voted
  1. Best Answer
    amyassin
    2021-11-21T11:04:45+08:002021-11-21T11:04:45+08:00

    因此,经过一番挖掘,结果证明 PSFTP 无法识别 ftp 服务器的密钥。我打开 cmd 为SYSTEM(这可能有点棘手!)并通过 PSFTP 连接,接受信任主机(sFTP 服务器),然后脚本按预期工作!它没有给其他用户带来问题,因为他们在测试中使用并且更早地得到了提示!

    仅供参考,该密钥也存储在注册表中HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys,因此如果您不想手动登录,可以为其他用户添加它(我在我的脚本中添加了检查以添加它,如果缺少运行脚本的任何用户)..

    编辑:我相信我最大的问题是获取 cmdSYSTEM以便我可以调试正在发生的事情,一旦我可以(请参阅上面的链接了解我是如何做到的),我就清楚了。为了参考和更清晰,下面是添加密钥之前的命令输出,只是屏蔽了敏感部分:

    C:\Users\myuser>echo ls | psftp -l myftpuser -pw mycomplexpswd sftp_server
    The server's host key is not cached. You have no guarantee
    that the server is the computer you think it is.
    The server's rsa2 key fingerprint is:
    ssh-rsa 2048 SHA256: thecomplexfancyhostkey
    If you trust this host, enter "y" to add the key to
    PuTTY's cache and carry on connecting.
    If you want to carry on connecting just once, without
    adding the key to the cache, enter "n".
    If you do not trust this host, press Return to abandon the
    connection.
    Store key in cache? (y/n, Return cancels connection, i for more info) 
    Using username "myftpuser".
    Pre-authentication banner message from server:
    | Company FTP Login - Please enter valid credentials to continue
    End of banner message from server
    Keyboard-interactive authentication prompts from server:
    End of keyboard-interactive prompts from server
    Remote working directory is /
    psftp> quit
    
    • 0

相关问题

  • 任务计划程序只杀死 cmd.exe 而不是它的子进程

  • Windows 2008 任务计划程序 PowerShell 脚本输出

  • Vista Windows Scheduler 任务开始失败,然后再也无法运行

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve