If your transfer automation task running under Windows Scheduler, SSIS or similar service does not work, it may not be immediately obvious what is wrong. Particularly because output of WinSCP process is hidden.
First step in debugging, is to make sure the task works when executed independently. Execute the exact command that you have configured in Windows Scheduler/SSIS in Windows Command prompt.
For example, if in Windows Scheduler you have
"C:\Program Files (x86)\WinSCP\WinSCP.exe" in Program/script and
/script="c:\script\example.txt" in Add arguments, try to execute following full command in Command prompt:
"C:\Program Files (x86)\WinSCP\WinSCP.exe" /script="c:\script\example.txt"
If the task works correctly from Command prompt, see My script works fine when executed manually, but fails or hangs when run by Windows Scheduler, SSIS or other automation service. What am I doing wrong?
If the task fails even when run from Command prompt, inspect a console output of the task for any error. If you see an error, check list of common error messages or search this website for the error. To check for an error in console output, it is recommended to use
If the problem is not obvious from the output, enable logging to a file as described below.
Next step is to enable logging to file (you should have logging enabled anyway) and inspect the log. Use
/log command-line parameter.
For example in Windows Scheduler the Add arguments may look like:
Full command to be executed from Command prompt is:
"C:\Program Files (x86)\WinSCP\WinSCP.exe" /script="c:\script\example.txt" /log="c:\script\example.log"
If a session log file is not even created, when executed from Windows Scheduler/SSIS, although the same WinSCP command and logging is working, when executed manually on command-line, there can be some problem in the Windows Scheduler/SSIS environment that prevents WinSCP from starting or writing to the log.
To debug such problems, wrap WinSCP command to a batch file and redirect WinSCP console output to a file. Make sure you use a console interface tool
winscp.com, instead of
winscp.exe. It also useful to log something to the output file before running WinSCP, to verify that output logging is working.
The batch file can look like:
@echo off echo Starting WinSCP > C:\script\example.out "C:\Program Files (x86)\WinSCP\WinSCP.com" /script="c:\script\example.txt" /log="c:\script\example.log" >> C:\script\example.out echo WinSCP done >> C:\script\example.out
Make sure you use a path for the
example.out, where Windows Scheduler/SSIS have a write access to. Check an output logged to
example.out for any problems. If the
example.out is not even created, the problem is not with WinSCP.