2

我正在尝试通过名为 WinSCP 的软件连接到 SFTP 服务器,该软件是一个安全 FTP 客户端,我可以通过发送密钥并在伪无人值守模式下执行它来编写脚本以使其工作,但服务器必须让用户登录才能发送密钥,我需要 WinSCP 登录和传输文件,就像控制台不启动的服务一样。

我尝试按照 WinSCP网站上的教程进行操作(用于自动/无人值守传输,但它给了我错误:Cannot created object,或cannot find library(来自我与 COM 关联的 dll 文件)

运行以下代码时出现的错误是:

line 13, Char: 2
Could not created object named "WinSCP.SessionOptions"
Code: 80040154
Source: Wscipt.CreateObject

我可能还应该提到,当我删除第 13 行的代码以查看它是否是唯一的问题时,我在第 21 行或第 22 行创建 Session 对象时遇到了类似的错误

<job>                                                               
<reference object="WinSCP.Session"/>

<script language="VBScript">




Option Explicit

' Setup session options
Dim sessionOptions
Set sessionOptions = WScript.CreateObject("WinSCP.SessionOptions")
With sessionOptions
    .Protocol = Protocol_Sftp
    .HostName = "host"
    .UserName = "username"
    .Password = "password"
End With

Dim session
Set session = WScript.CreateObject("WinSCP.Session")

' Connect and Get
session.Open sessionOptions

 session.GetFiles("/Fromn/*.*", "C:\testFilesFrom").Check()



' Disconnect, clean up
session.Dispose

</script>
</job>

有没有人在服务器未登录并且脚本可以运行 SFTP 会话的情况下编写此类作业的脚本?我做错了什么还是不可能的?

4

1 回答 1

1

WinSCP 是为交互式使用而设计的。将PSCP用于非交互式作业。我强烈建议使用公钥身份验证而不是密码身份验证。

于 2012-11-12T17:56:34.343 回答