使用Control-M运行PowerShell脚本以从超越比较复制文件

时间:2016-05-25 14:39:53

标签: powershell beyondcompare control-m beyondcompare3

我目前有一个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本身的一个错误。

1 个答案:

答案 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问题的解决方法。