Give this a try if all you want to do is a scripted ftp connection test. It will create a log file called FTPCheck.log in the Agent's Working directory that you can log parse or do a scripted check on for failures.
Just make sure not to use credentials with too much control as this procedure puts the username and password into a text file that somebody could open up and read. It does delete this FTP script file once it is done.
<?xml version="1.0" encoding="utf-8"?>
<ScriptExport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.kaseya.com/vsa/2008/12/Scripting">
<Procedure name="FTP Test" treePres="3" id="766355600" folderId="51162471274112775229742171">
<Body description="Description: FTP Test Script example
Type: Example Procedure
Created by: HardKnoX (18/12/2012)
">
<Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
<Parameter xsi:type="StringParameter" name="SourceContent" value="[insert your ftp server address here example(ftp.acme.com)]" />
<Parameter xsi:type="StringParameter" name="VariableName" value="FTPServer" />
</Statement>
<Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
<Parameter xsi:type="StringParameter" name="SourceContent" value="[insert your username here]" />
<Parameter xsi:type="StringParameter" name="VariableName" value="USERNAME" />
</Statement>
<Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
<Parameter xsi:type="StringParameter" name="SourceContent" value="[insert your password here]" />
<Parameter xsi:type="StringParameter" name="VariableName" value="PASSWORD" />
</Statement>
<Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
<Parameter xsi:type="StringParameter" name="SourceContent" value="FTPCheck.log" />
<Parameter xsi:type="StringParameter" name="VariableName" value="LOG" />
</Statement>
<If description="">
<Condition name="TestFile">
<Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.AgentTempDir#\FTPTest.ftp" />
<Parameter xsi:type="EnumParameter" name="Condition" value="Exists" />
<Parameter xsi:type="StringParameter" name="Value" value="" />
</Condition>
<Then>
<Statement description="Delete the specified file - full path to the filename required." name="DeleteFile" continueOnFail="false">
<Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.AgentTempDir#\FTPTest.ftp" />
</Statement>
</Then>
</If>
<If description="">
<Condition name="True" />
<Then>
<Statement description="Use the user logon credentials set for the machine ID to execute a file or shell command - Windows 2000 and above only." name="UseCredential" continueOnFail="false" />
<Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
<Parameter xsi:type="StringParameter" name="SourceContent" value="#vAgentConfiguration.AgentTempDir#\LastCheck.Log" />
<Parameter xsi:type="StringParameter" name="VariableName" value="TestFile" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO %DATE:~-4%/%DATE:~-7,-5%/%DATE:~-10,-8%>>"#TestFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO %time:~0,2%:%time:~3,2%:%time:~6,2%>>>>"#TestFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO ::FTP -s:#DataFile# #FTPServer#>>"#TestFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="EnumParameter" name="VariableType" value="ConstantValue" />
<Parameter xsi:type="StringParameter" name="SourceContent" value="#vAgentConfiguration.AgentTempDir#\FTPTest.ftp" />
<Parameter xsi:type="StringParameter" name="VariableName" value="DataFile" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO. >>>>"#DataFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO user #USERNAME#>>>>"#DataFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO #PASSWORD#>>>>"#DataFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO. >>>>"#DataFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO prompt>>>>"#DataFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO cd public>>>>"#DataFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO ascii>>>>"#DataFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO mput #TestFile# /y>>>>"#DataFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
<Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Path" value="%COMSPEC%" />
<Parameter xsi:type="StringParameter" name="Arguments" value="/C ECHO quit>>>>"#DataFile#"" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
</Statement>
</Then>
</If>
<If description="">
<Condition name="TestFile">
<Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.AgentTempDir#\FTPTest.ftp" />
<Parameter xsi:type="EnumParameter" name="Condition" value="Exists" />
<Parameter xsi:type="StringParameter" name="Value" value="" />
</Condition>
<Then>
<If description="">
<Condition name="Windows 32 or 64 Bit Check">
<Parameter xsi:type="EnumParameter" name="Condition" value="NotExists" />
<Parameter xsi:type="StringParameter" name="Value" value="" />
</Condition>
<Then>
<Statement description="Execute the given command as if it were typed in at a command prompt." name="ExecuteShellCommand" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Command" value="CD #vAgentConfiguration.AgentTempDir# && FTP -s:FTPTest.ftp #FTPServer# >>#vAgentConfiguration.AgentTempDir#\#LOG#" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="Is64Bit" value="False" />
</Statement>
</Then>
</If>
<If description="">
<Condition name="Windows 32 or 64 Bit Check">
<Parameter xsi:type="EnumParameter" name="Condition" value="Exists" />
<Parameter xsi:type="StringParameter" name="Value" value="" />
</Condition>
<Then>
<Statement description="Execute the given command as if it were typed in at a command prompt." name="ExecuteShellCommand" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
<Parameter xsi:type="StringParameter" name="Command" value="CD #vAgentConfiguration.AgentTempDir# && FTP -s:FTPTest.ftp #FTPServer# >>#vAgentConfiguration.AgentTempDir#\#LOG#" />
<Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="User" />
<Parameter xsi:type="BooleanParameter" name="Is64Bit" value="True" />
</Statement>
</Then>
</If>
<Statement description="Pause this procedure for N seconds to give a previous action time to complete." name="PauseScript" continueOnFail="false">
<Parameter xsi:type="IntegerParameter" name="Seconds" value="20" />
</Statement>
<Statement description="Delete the specified file - full path to the filename required." name="DeleteFile" continueOnFail="false">
<Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.AgentTempDir#\FTPTest.ftp" />
</Statement>
</Then>
<Else>
<Statement description="Write an Entry into the Procedure Log" name="WriteScriptLogEntry" continueOnFail="false">
<Parameter xsi:type="StringParameter" name="Comment" value="ERROR LOG: Failed to generate FTP script file, Agent Procedure Failed!" />
</Statement>
<Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false">
<Parameter xsi:type="EnumParameter" name="VariableType" value="FileContent" />
<Parameter xsi:type="StringParameter" name="SourceContent" value="ERROR" />
<Parameter xsi:type="StringParameter" name="VariableName" value="ERROR" />
</Statement>
</Else>
</If>
</Body>
</Procedure>
</ScriptExport>