Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload 使用PSFTP.exe将文件上载到sftp服务器时执行进程任务出错_File Upload_Ssis_Sftp_Psftp - Fatal编程技术网

File upload 使用PSFTP.exe将文件上载到sftp服务器时执行进程任务出错

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

我在SSIS中创建了一个执行进程任务,以将文件上载到sftp服务器。我可以完全访问服务器文件夹,并且可以使用filezilla拖放文件。我正在使用putty sftp客户端psftp.exe进行上传。现在,当我将psftp.exe与user、pass和batch参数一起使用时,它在windows cmd中工作得非常好。但是,当我在SSIS中执行相同操作时,会出现以下错误:

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屏幕截图中的参数不匹配。