PowerShell Upload Download FTP over TLS
PowerShell Upload Download FTP over TLS
1./ PowerShel Upload FTP over TLS
[Net.ServicePointManager]::ServerCertificateValidationCallback={$true}
$Dir = "D:\test-ftp.txt"
foreach($item in (dir $dir))
{
write-output "————————————–"
$fileName = $item.FullName
write-output $fileName
$ftp = [System.Net.FtpWebRequest]::Create("ftp://172.16.0.40//YourRemoteSubPath/"+$item.Name)
$ftp = [System.Net.FtpWebRequest]$ftp
$ftp.UsePassive = $true
$ftp.UseBinary = $true
$ftp.EnableSsl = $true
$ftp.Credentials = new-object System.Net.NetworkCredential("Username","PASSWORD")
$ftp.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile
$rs = $ftp.GetRequestStream()
$reader = New-Object System.IO.FileStream ($fileName, [IO.FileMode]::Open, [IO.FileAccess]::Read, [IO.FileShare]::Read)
[byte[]]$buffer = new-object byte[] 4096
[int]$count = 0
do
{
$count = $reader.Read($buffer, 0, $buffer.Length)
$rs.Write($buffer,0,$count)
} while ($count -gt 0)
$reader.Close()
$rs.Close()
write-output "+transfer completed"
# $item.Delete()
# write-output "+file deleted"
}
#https://mariuszgorzoch.wordpress.com/2014/01/07/upload-of-files-to-ftps-from-powershell/?unapproved=1863&moderation-hash=47b2634bf5645bd53452f459669098f5#comment-1863
2./ PowerShel Download FTP over TLS
[Net.ServicePointManager]::ServerCertificateValidationCallback={$true}
$username='Username'
$password='PASSWORD'
$ftp='ftp://172.16.0.40/'
$remote_file='/YourRemoteSubPath/test-ftp.txt'
$local_file = 'D:\test-ftp.txt'
$ftpuri = $ftp + $remote_file
$uri=[system.URI] $ftpuri
$ftprequest=[system.net.ftpwebrequest]::Create($uri)
$ftprequest.Credentials=New-Object System.Net.NetworkCredential($username,$password)
$ftprequest.Method=[system.net.WebRequestMethods+ftp]::DownloadFile
$ftprequest.UseBinary = $true
$FTPRequest.EnableSsl = $true
$ftprequest.KeepAlive = $false
$response=$ftprequest.GetResponse()
$strm=$response.GetResponseStream()
try
{
$targetfile = New-Object IO.FileStream ($local_file,[IO.FileMode]::Create)
"File created: $local_file"
[byte[]]$readbuffer = New-Object byte[] 1024
do{
$readlength = $strm.Read($readbuffer,0,1024)
$targetfile.Write($readbuffer,0,$readlength)
}
while ($readlength -ne 0)
$targetfile.close()
}
catch
{
$_|fl * -Force
}
#https://www.thomasmaurer.ch/2010/11/powershell-ftp-upload-and-download/
#https://mariuszgorzoch.wordpress.com/2014/01/07/upload-of-files-to-ftps-from-powershell/?unapproved=1863&moderation-hash=47b2634bf5645bd53452f459669098f5#comment-1863