1

我目前有一个 PowerShell 脚本,它调用 Beyond Compare v3 将文件从安全的 SFTP 站点复制到我的网络。每当我在 PS GUI 和 PS 控制台中运行 PowerShell 脚本时,它都能正常工作。它能够连接到 SFTP 站点和我的网络,并将文件复制过来。

我在 Control-M 中创建了一个作业,它调用 PowerShell 脚本并传递了 2 个参数。当我运行该作业时,它不会复制文件,并且 Beyond Compare 日志显示:

连接到 XXX.XX.XX.XXX

服务器密钥 [ssh-rsa XXXX XX:XX.....]

连接失败:尝试在静默运行时打开“未知主机密钥”对话框

尝试在静默运行时打开“未知主机密钥”对话框

加载比较:“我的位置路径”<->

致命脚本错误:无法加载基本文件夹

就像我说的,当我通过 PowerShell 本身运行它时,它能够毫无问题地连接并复制所有文件,所以我的 Beyond Compare 脚本文件没有问题。我相信这是 Control-M 本身的错误。

4

1 回答 1

2

第一次连接到 Beyond Compare 中的 SFTP 服务器时,它会提示您使用复选框“将主机密钥添加到受信任的缓存”来接受服务器的主机密钥。

错误消息表明通过 Control-M 运行的脚本在其受信任列表中没有 SFTP 主机密钥。因为它作为脚本运行,所以它无法显示 GUI 提示来接受密钥并且脚本失败。

SFTP 服务器的受信任缓存基于每个用户存储在“%appdata%\scooter software\beyond compare 3\”中。如果 Control-M 作为其他用户帐户运行 Beyond Compare,它将无权访问您帐户的受信任列表并生成错误。您可以使用同一用户通过 Control-M 运行 Beyond Compare 脚本,或者将设置复制到 Control-M 作业的用户帐户。

如果您以交互方式使用的同一用户帐户运行 Beyond Compare 脚本,但非交互运行无权访问您的用户配置文件,有时也会显示此错误。这方面的一个例子是在 Windows Server 2012 上将 Beyond Compare 脚本作为计划任务运行,因为它有一个错误,即加载默认配置文件而不是用户配置文件。在以交互方式连接一次以接受密钥后从便携式安装运行任务是 Windows Server 2012 问题的解决方法。

于 2016-05-25T21:47:47.200 回答