File upload 使用PSFTP.exe将文件上载到sftp服务器时执行进程任务出错
我在SSIS中创建了一个执行进程任务,以将文件上载到sftp服务器。我可以完全访问服务器文件夹,并且可以使用filezilla拖放文件。我正在使用putty sftp客户端psftp.exe进行上传。现在,当我将psftp.exe与user、pass和batch参数一起使用时,它在windows cmd中工作得非常好。但是,当我在SSIS中执行相同操作时,会出现以下错误:File upload 使用PSFTP.exe将文件上载到sftp服务器时执行进程任务出错,file-upload,ssis,sftp,psftp,File Upload,Ssis,Sftp,Psftp,我在SSIS中创建了一个执行进程任务,以将文件上载到sftp服务器。我可以完全访问服务器文件夹,并且可以使用filezilla拖放文件。我正在使用putty sftp客户端psftp.exe进行上传。现在,当我将psftp.exe与user、pass和batch参数一起使用时,它在windows cmd中工作得非常好。但是,当我在SSIS中执行相同操作时,会出现以下错误: Error: 0xC0029151 at Execute Process Task, Execute Process Tas
Error: 0xC0029151 at Execute Process Task, Execute Process Task: In Executing "C:\temp\psftp.exe" "user -pw pass -be -batch -b Upload.bat" at "C:\temp", The process exit code was "1" while the expected was "0".
Task failed: Execute Process Task
我的windows cmd参数是:
psftp.exe devsftp@secftp2.alliedpilots.org -b UploadUsersToSftp.bat
然后请求密码,输入密码后,文件上传成功。但我在通过SSI执行相同的操作时遇到困难。以下是SSIS流程任务参数屏幕截图:
我在网上搜索了一下,发现了一些类似的问题,但并没有具体针对psftp的问题。在stackoverflow上也发现了同样的问题,但提到的解决方案是权限,我已经检查过了
任何帮助都将不胜感激 SSI很可能在与“Windows cmd”中使用的本地帐户不同的本地帐户下运行 SFTP访问需要确认主机密钥。您可能在过去验证过本地帐户中的主机密钥,因此它会缓存在Windows注册表中 但是运行SSIS的帐户没有缓存主机密钥。因此,它必须失败 您应该使用预期主机密钥的指纹将
-hostkey
切换到psftp.exe
命令行
如果没有帮助,请将
psftp.exe
包装到批处理文件,并将其输出重定向到文件
psftp.exe devsftp@secftp2.alliedpilots.org -b UploadUsersToSftp.bat > c:\temp\psftp.out 2>&1
并在SSIS中运行批处理文件,而不是直接运行psftp.exe
然后检查文件是否有错误。SSI很可能在与“Windows cmd”中使用的本地帐户不同的本地帐户下运行 SFTP访问需要确认主机密钥。您可能在过去验证过本地帐户中的主机密钥,因此它会缓存在Windows注册表中 但是运行SSIS的帐户没有缓存主机密钥。因此,它必须失败 您应该使用预期主机密钥的指纹将
-hostkey
切换到psftp.exe
命令行
如果没有帮助,请将
psftp.exe
包装到批处理文件,并将其输出重定向到文件
psftp.exe devsftp@secftp2.alliedpilots.org -b UploadUsersToSftp.bat > c:\temp\psftp.out 2>&1
并在SSIS中运行批处理文件,而不是直接运行psftp.exe
然后检查文件是否有错误。您的“windows cmd参数”与SSI屏幕截图中的参数不匹配。您的“windows cmd参数”与SSI屏幕截图中的参数不匹配。