Error: Unable to find type [WinSCP.EnumerationOptions].
Hi,
I'm getting an error "Error: Unable to find type [WinSCP.EnumerationOptions]. Make sure that the assembly that contains this type is loaded."
There are two files that have a date and four digits. I can determine the date but the four digits change. I need to use a mask to locate the file names at the source, download and rename the files.
My code is as follows:
I added
In the Get-Files function just to make sure that my $session object was accessible. It evaluated to "true". Any ideas?
I'm getting an error "Error: Unable to find type [WinSCP.EnumerationOptions]. Make sure that the assembly that contains this type is loaded."
There are two files that have a date and four digits. I can determine the date but the four digits change. I need to use a mask to locate the file names at the source, download and rename the files.
My code is as follows:
param ($CurrentDate, $Source, $Destination, $HostName, $UserName, $Password, $Protocol, $Port, $ModeValue, $Fingerprint, $FileName1, $FileName2, $FileName3) try { function Get-Files($wildCard, [switch]$rename, $newName) { $fileInfos = $session.EnumerateRemoteFiles($path, $wildcard, [WinSCP.EnumerationOptions]::None) foreach ($fileInfo in $fileInfos) { Write-Host "File $($fileInfo.FullName) matches mask, searching contents..." if($rename){ $fullDest = (Join-Path $destination $newName ) $fileSourcePath = [WinSCP.RemotePath]::EscapeFileMask($newName) }else{ $fullDest = (Join-Path $destination $fileInfo.FullName ) $fileSourcePath = [WinSCP.RemotePath]::EscapeFileMask($fileInfo.FullName) } $transferResult = $session.GetFiles($fileSourcePath, $fullDest) if (!$transferResult.IsSuccess) { # Print error (but continue with other files) Write-Host $transferResult.Failures[0].Message } } } $date = [datetime]::ParseExact($CurrentDate,"yyyyMMdd",$null).AddDays(-1) $date = $date.ToString("yyyyMMdd") $wildCard1 = "$($FileName1)$($date)*" $wildCard2 = "$($FileName2)$($date)*" $wildCard3 = "$($FileName3)$($date)*" Add-Type -Path "E:\Program Files\WinSCP 5.7.5\WinSCPnet.dll" $session = New-Object WinSCP.Session $sessionOptions = New-Object WinSCP.SessionOptions -Property @{ Protocol = [WinSCP.Protocol]::$Protocol HostName = "$($HostName)" UserName = "$($UserName)" PortNumber = $Port Password = "$($Password)" SshHostKeyFingerprint = $FingerPrint } $sessionOptions.AddRawSettings("ProxyMethod", 3) $sessionOptions.AddRawSettings("ProxyHost", "proxy") $session.SessionLogPath = "F:\WinscpLogs\log.txt" $session.Open($sessionOptions) Write-Host "Is the session open? " $session.Opened Get-Files $wildCard1 Get-Files $wildCard2 "filename1.txt" -rename Get-Files $wildCard3 "filename2.txt" -rename }catch{ Write-Host "Error: $($_.Exception.Message)" exit 1 }finally{ $session.Dispose() }
Write-Host "Is the session open? " $session.Opened