我目前有一个PowerShell脚本,它调用Beyond Compare v3将文件从安全的SFTP站点复制到我的网络。每当我在PS GUI和PS控制台中运行PowerShell脚本时,它都可以正常工作。它能够连接到SFTP站点和我的网络,并将文件复制过来。
我在Control-M中创建了一个作业,调用PowerShell脚本并传递了两个参数。当我运行该作业时,它不会复制文件,Beyond Compare日志会显示:
连接到XXX.XX.XX.XXX
服务器密钥[ssh-rsa XXXX XX:XX .....]
连接失败:以静默方式运行时尝试打开“未知主机密钥”对话框
以静默方式运行时尝试打开“未知主机密钥”对话框
加载比较:“我的位置路径”< - >
致命脚本错误:无法加载基本文件夹
就像我说的,当我通过PowerShell本身运行时,它能够连接没有问题并复制所有文件,所以我的Beyond Compare脚本文件没有问题。我相信这是Control-M本身的一个错误。
答案 0 :(得分:2)
首次连接到Beyond Compare中的SFTP服务器时,它会提示您接受服务器的主机密钥和复选框"将主机密钥添加到可信任缓存"。
错误消息表明通过Control-M运行的脚本在其可信列表中没有SFTP主机密钥。因为它作为脚本运行,所以它无法显示GUI提示以接受密钥,并且脚本失败。
SFTP服务器的可信缓存基于每个用户存储在"%appdata%\ scooter软件\中,超出比较3 \"。如果Control-M作为其他用户帐户运行Beyond Compare,则无法访问您帐户的可信列表并生成错误。您可以使用同一用户通过Control-M运行Beyond Compare脚本,也可以将设置复制到Control-M作业的用户帐户。
如果您以交互方式使用相同的用户帐户运行Beyond Compare脚本,有时也会显示此错误,但非交互式运行无法访问您的用户个人资料。例如,在Windows Server 2012上运行Beyond Compare脚本作为计划任务,因为它具有bug that loads the default profile instead of the user profile。在以交互方式连接以接受密钥后,从便携式安装中运行任务是Windows Server 2012问题的解决方法。