Could not create WinSCP.SessionOptions
Hi,
I have a vbscript that given the remote path, the local path, a start date and a end date, downloads all the file in the remote path updated between the two dates. Running it on a server with OS Windows Server 2008 R 2 Datacenter, it works perfectly, but when I run it on another server with OS Windows Server 2012 R2 Standard, I got the following error:
WScript.CreateObject: Could not create object named "WinSCP.SessionOptions"
Also a pop up windows opens that says:
The following feature couldn't be installed:
.NET Framework 3.5 (includes .NET 2.0 and 3.0)
However, on this server there is already .NET Framework 4.5, so why it seems that it needs version 3.5? Also, in the old server there is only version 4 and there are no problems there.
Do I have to use different commands with version 4.5 of .NET? Or is it mandatory to download the older version?
Below there's the code of the script.
Thanks
Silvia
I have a vbscript that given the remote path, the local path, a start date and a end date, downloads all the file in the remote path updated between the two dates. Running it on a server with OS Windows Server 2008 R 2 Datacenter, it works perfectly, but when I run it on another server with OS Windows Server 2012 R2 Standard, I got the following error:
WScript.CreateObject: Could not create object named "WinSCP.SessionOptions"
Also a pop up windows opens that says:
The following feature couldn't be installed:
.NET Framework 3.5 (includes .NET 2.0 and 3.0)
However, on this server there is already .NET Framework 4.5, so why it seems that it needs version 3.5? Also, in the old server there is only version 4 and there are no problems there.
Do I have to use different commands with version 4.5 of .NET? Or is it mandatory to download the older version?
Below there's the code of the script.
Thanks
Silvia
<job>
<reference object="WinSCP.Session"/>
<script language="VBScript">
Option Explicit
' Check and read input arguments
Dim numArgs
numArgs = WScript.Arguments.Count
If numArgs < 2 Then
WScript.Echo "Usage: /DINI:<Now> /DFIN:<Now> /R_PATH:<remote-path> /L_PATH:<local-path>"
WScript.Quit ( 1 )
End If
Dim valArgs
Set valArgs = WScript.Arguments.Named
If Not ( valArgs.Exists( "R_PATH" ) ) And Not ( valArgs.Exists( "L_PATH" ) ) Then
WScript.Echo "Usage: /DINI:<Now> /DFIN:<Now> /R_PATH:<remote-path> /L_PATH:<local-path>"
WScript.Quit ( 2 )
End If
Dim vRemotePath, vLocalePath,vHost,vUser,vPsw
vRemotePath = valArgs.Item( "R_PATH" )
vLocalePath = valArgs.Item( "L_PATH" )
vHost=valArgs.Item( "Host" )
vUser=valArgs.Item( "User" )
vPsw=valArgs.Item( "Psw" )
Dim oFSO
Set oFSO = CreateObject( "Scripting.FileSystemObject" )
If Not oFSO.FolderExists( vLocalePath ) Then
set oFSO = Nothing
WScript.Echo "L_PATH does not exists!!!"
WScript.Quit ( 3 )
End If
set oFSO = Nothing
Dim vDINI, vDFIN
If valArgs.Exists( "DINI" ) Then
vDINI = cDate(valArgs.Item( "DINI" ))
If Not isDate(vDINI) Then
WScript.Echo "DINI non è una data!!!"
WScript.Quit ( 4 )
End If
End If
If valArgs.Exists( "DFIN" ) Then
vDFIN =cDate(valArgs.Item( "DFIN" ))
If Not isDate(vDFIN) Then
WScript.Echo "DFIN non è una data!!!"
WScript.Quit ( 5 )
End If
End If
If Not valArgs.Exists("Host") Then
WScript.Echo "Manca l'host"
WScript.Quit ( 6 )
End If
If Not valArgs.Exists("User") Then
WScript.Echo "Manca l'user"
WScript.Quit ( 7 )
End If
If Not valArgs.Exists("Psw") Then
WScript.Echo "Manca la password"
WScript.Quit ( 8 )
End If
Set valArgs = Nothing
' Setup session options
Dim sessionOpts
Set sessionOpts = WScript.CreateObject( "WinSCP.SessionOptions" )
With sessionOpts
.Protocol = Protocol_Ftp
.HostName = vHost
.UserName = vUser
.Password = vPsw
End With
Dim session
Set session = WScript.CreateObject( "WinSCP.Session" )
' Connect
session.Open sessionOpts
Set sessionOpts = Nothing
Dim dirInfo
Set dirInfo = session.ListDirectory( vRemotePath )
Dim remoteFile, localeFile, fileInfo
For Each fileInfo In dirInfo.Files
If fileInfo.LastWriteTime >= vDINI and fileInfo.LastWriteTime <= vDFIN Then
remoteFile = vRemotePath + fileInfo.Name
localeFile = vLocalePath + fileInfo.Name
session.GetFiles( remoteFile, localeFile ).Check( )
WScript.Echo remoteFile
End If
Next
Set dirInfo = Nothing
'Disconnect and clean up
session.Dispose
Set session = Nothing
WScript.Quit( 0 )
</script>
</job>