2017-12-07 5 views
0

SSIS에서 파일을 SFTP 서버에 업로드하기 위해 프로세스 실행 태스크를 생성했습니다. 나는 서버 폴더에 대한 전체 액세스 권한을 가지고 있으며, 파일zilla를 사용하여 파일을 끌어다 놓을 수있었습니다. 내가 업로드를 할 퍼티 SFTP 클라이언트 psftp.exe를 사용하고 있습니다. 이제 psftp.exe를 사용자와 패스 및 배치 인수를 사용하면 Windows cmd에서 완벽하게 작동합니다.PSFTP.exe를 사용하여 sftp 서버에 파일을 업로드하는 동안 프로세스 태스크를 실행하는 중 오류가 발생했습니다.

psftp.exe [email protected] -b UploadUsersToSftp.bat 

후 암호를 요구하고 비밀번호를 입력 한 후, 파일 업로드가 완료 :

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 

내 창 cmd를 인수입니다 : 내가 SSIS에서 동일한을 실행할 때, 나는 다음과 같은 오류가 성공적으로 SSIS를 통해 동일한 작업을 수행하는 데 문제가 있습니다. 다음은 SSIS 프로세스 작업 인수 스크린 샷은 다음과 같습니다

enter image description here

내가 온라인 검색 및 here에서 몇 가지 비슷한 질문을 찾았지만 PSFTP에 아무것도 특정. 또한 stackoverflow에 동일한 질문이 발견 here하지만 언급 된 솔루션은 내가 이미 확인 권한입니다.

도움을 주시면 감사하겠습니다.

+1

* "windows cmd arguments"*는 SSI 스크린 샷의 인수와 일치하지 않습니다. –

답변

1

SSIS는 "Windows cmd"에서 사용하는 것과 다른 로컬 계정으로 실행됩니다.

SFTP 액세스에는 호스트 키 확인이 필요합니다. 과거에 로컬 계정의 호스트 키를 확인한 것이므로 Windows 레지스트리에 캐시됩니다.

그러나 SSIS를 실행하는 계정에는 캐시 된 호스트 키가 없습니다. 그래서 실패해야합니다.

예상 호스트 키의 지문과 함께 psftp.exe 명령 줄에 -hostkey 스위치를 추가해야합니다. 이 방법으로 문제가 해결되지 않으면


, 배치 파일에 psftp.exe을 포장하고 그 출력을 파일로 리디렉션합니다.

psftp.exe [email protected] -b UploadUsersToSftp.bat > c:\temp\psftp.out 2>&1 

psftp.exe 대신 SSIS에서 배치 파일을 직접 실행하십시오.

그런 다음 파일의 오류를 확인하십시오.

관련 문제