I tried to use one of your scripts for get some directories and files from a FTP server.
Overload not found for "SynchronizeDirectories" and the number of arguments "40".
# Load WinSCP .NET assembly
Add-Type -Path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"
# Session.FileTransferred event handler
function FileTransferred
{
param($e)
if ($e.Error -eq $Null)
{
Write-Host "Upload of $($e.FileName) succeeded"
}
else
{
Write-Host "Upload of $($e.FileName) failed: $($e.Error)"
}
if ($e.Chmod -ne $Null)
{
if ($e.Chmod.Error -eq $Null)
{
Write-Host "Permissions of $($e.Chmod.FileName) set to $($e.Chmod.FilePermissions)"
}
else
{
Write-Host "Setting permissions of $($e.Chmod.FileName) failed: $($e.Chmod.Error)"
}
}
else
{
Write-Host "Permissions of $($e.Destination) kept with their defaults"
}
if ($e.Touch -ne $Null)
{
if ($e.Touch.Error -eq $Null)
{
Write-Host "Timestamp of $($e.Touch.FileName) set to $($e.Touch.LastWriteTime)"
}
else
{
Write-Host "Setting timestamp of $($e.Touch.FileName) failed: $($e.Touch.Error)"
}
}
else
{
# This should never happen during "local to remote" synchronization
Write-Host "Timestamp of $($e.Destination) kept with its default (current time)"
}
}
# Main script
try
{
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::ftp
HostName = "pub-ftp.accor.com"
UserName = "ITMaintUSR"
Password = "dyhax45y`$"
#SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
}
$session = New-Object WinSCP.Session
try
{
# Will continuously report progress of synchronization
$session.add_FileTransferred( { FileTransferred($_) } )
# Connect
$session.Open($sessionOptions)
# Synchronize files
$synchronizationResult = $session.SynchronizeDirectories(
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/OUTILS", "E:\OUTILS",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/PRELOAD/POSTE_FIXE/LENOVO TINY M73", "E:\PRELOAD\LENOVO TINY M73",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/PRELOAD/POSTE_FIXE/LENOVO M72e", "E:\PRELOAD\LENOVO M72e",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/PRELOAD/POSTE_FIXE/HP6305", "E:\PRELOAD\HP6305",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/PRELOAD/POSTE_FIXE/HP6005", "E:\PRELOAD\HP6005",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/PRELOAD/POSTE_FIXE/HP705G2", "E:\PRELOAD\HP705G2",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/PRELOAD/POSTE_FIXE/HP705G1", "E:\PRELOAD\HP705G1",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/PRELOAD/POSTE_FIXE/HP_Z240", "E:\PRELOAD\HP_Z240",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/MASTER/Tools_Master_SCCM", "E:\Master\Tools_Master_SCCM",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/MASTER/Procédure_Master_SCCM", "E:\MASTER\Procédure_Master_SCCM",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/MASTER/FOLS/F10", "E:\MASTER\F10",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/MASTER/F7.4.X", "E:\MASTER\F7.4.X",
[WinSCP.SynchronizationMode]::Local, "/MaintenanceIT/MASTER/Application_Master_V1.4.docx", "E:\MASTER\Application_Master_V1.4.docx", $False)
# Throw on any error
$synchronizationResult.Check()
}
finally
{
# Disconnect, clean up
$session.Dispose()
}
exit 0
}
catch
{
Write-Host "Error: $($_.Exception.Message)"
exit 1
}