2017-12-07 5 views
0

Ich habe eine Ausführungsprozessaufgabe in SSIS erstellt, um eine Datei auf einen SFTP-Server hochzuladen. Ich habe vollen Zugriff auf den Serverordner und konnte Dateien mit filezilla ziehen und ablegen. Ich verwende den Putty Sftp-Client psftp.exe, um den Upload durchzuführen. Jetzt, wenn ich die psftp.exe mit Benutzer und übergeben und Batch-Argumente verwende, funktioniert es einwandfrei in Windows cmd. Aber wenn ich das gleiche in SSIS ausführen, bekomme ich folgende Fehlermeldung:Fehler beim Ausführen der Prozessaufgabe beim Hochladen einer Datei auf den SFTP-Server mithilfe von PSFTP.exe

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 

Meine Fenster cmd Argumente sind:

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

und dann fragt er nach Passwort und das Passwort nach der Eingabe, Datei-Upload erfolgt erfolgreich. Aber ich habe Probleme, sie mit SSIS auszuführen. Im Folgenden finden Sie die SSIS-Prozess Aufgabe Argument Screenshot:

enter image description here

Ich suchte online und einige ähnliche Fragen an here aber nichts Konkretes zu psftp gefunden. Habe auch die selbe Frage zu stackoverflow here gefunden aber die erwähnte Lösung sind Berechtigungen, die ich bereits überprüft habe.

Jede Hilfe wäre willkommen.

+1

Ihre * "Windows cmd Argumente" * stimmen nicht mit den Argumenten in SSI Screenshot überein. –

Antwort

1

Das SSIS läuft höchstwahrscheinlich unter einem anderen lokalen Konto als das, das Sie in "Windows cmd" verwenden.

Ein SFTP-Zugriff erfordert die Bestätigung eines Hostschlüssels. Sie haben wahrscheinlich den Hostschlüssel in Ihrem lokalen Konto in der Vergangenheit verifiziert, sodass er in der Windows-Registrierung zwischengespeichert wird.

Aber das Konto, das SSIS ausführt, hat den Host-Schlüssel nicht zwischengespeichert. Also muss es scheitern.

Sie sollten -hostkey wechseln zu psftp.exe Befehlszeile mit dem Fingerabdruck des erwarteten Host-Schlüssels.


Wenn das nicht hilft, wickeln Sie das psftp.exe zu einer Batch-Datei und in eine Datei umleiten seinen Ausgang.

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

Und die Batch-Datei in SSIS ausführen, statt psftp.exe direkt.

Dann überprüfen Sie die Datei auf Fehler.

Verwandte Themen