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

 

BÀI VIẾT CÙNG CHUYÊN MỤC