Difficult to help without seeing a log.
But this does not look correct definitelly:
winscp.StandardInput.WriteLine("open " + Dts.Variables("strSiteAddress").Value.ToString + "-hostkey = ""ssh-dss 1024 28:34:d7:cf:0e:82:a3:d0:d8:16:2a:b4:07:f3:b3:f1""")
Should be (space before -hostkey, no space before/after =):
winscp.StandardInput.WriteLine("open " + Dts.Variables("strSiteAddress").Value.ToString + " -hostkey=""ssh-dss 1024 28:34:d7:cf:0e:82:a3:d0:d8:16:2a:b4:07:f3:b3:f1""")
I am trying to retreive zip files from SFTP site. Manually it works fine nut in a code recently it stops working with an error: 2
[Execute Process Task] Error: In Executing "C:\Program Files (x86)\WinSCP\WinSCP.com" "" at "C:\Program Files (x86)\WinSCP\", The process exit code was "2" while the expected was "0".
--------------
Dim strReplace As String = Dts.Variables("strDestinationPath").Value.ToString
strReplace = Replace(strReplace, ".xml", ".zip")
' Run hidden WinSCP process
Dim winscp As Process = New Process()
winscp.StartInfo.FileName = "C:\Program Files (x86)\WinSCP\WinSCP.com "
'winscp.StartInfo.Arguments = "/log=" + logname
winscp.StartInfo.UseShellExecute = False
winscp.StartInfo.RedirectStandardInput = True
winscp.StartInfo.RedirectStandardOutput = True
winscp.StartInfo.CreateNoWindow = True
winscp.Start()
' Feed in the scripting commands
winscp.StandardInput.WriteLine("option batch on")
winscp.StandardInput.WriteLine("option confirm off")
winscp.StandardInput.WriteLine("PrivateKey=C:\ActiveJobs\SFTP Keys\Private Key.ppk")
winscp.StandardInput.WriteLine("open " + Dts.Variables("strSiteAddress").Value.ToString + "-hostkey = ""ssh-dss 1024 28:34:d7:cf:0e:82:a3:d0:d8:16:2a:b4:07:f3:b3:f1""")
winscp.StandardInput.WriteLine(" lcd " + Dts.Variables("strFileFolder").Value.ToString)
winscp.StandardInput.WriteLine(" get " + strReplace + " -nopermissions -nopreservetime ")
winscp.StandardInput.WriteLine(" rm *zip" + " -nopermissions -nopreservetime ")
winscp.StandardInput.WriteLine(" exit ")
winscp.StandardInput.Close()
' Collect all output (not used in this example)
Dim output As String = winscp.StandardOutput.ReadToEnd()
' Wait until WinSCP finishes
winscp.WaitForExit()
MsgBox(winscp.ExitCode)
Please, help me ....