So I am connecting to a z/OS ftp server. I am using the code below to try and download a file using Powershell 2.0. This code works on Windows 7, but on either Windows Server 2003 or Windows Server 2008 R2, I get an error:
System.Net.WebException: The remote server returned an error: (501) Syntax error in parameters or arguments.
No parameters were changed, no firewall or other factors seem to be at play (that I can tell) other than the difference in the OS.
The code I am using is as follows:
function Get-FTPFile ($Source,$Target,$UserName,$Password)
{
$ftprequest = [System.Net.FtpWebRequest]::create($Source)
$ftprequest.Credentials = New-Object System.Net.NetworkCredential($username,$password)
$ftprequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile
$ftprequest.UseBinary = $false
$ftprequest.KeepAlive = $false
$ftpresponse = $ftprequest.GetResponse()
$responsestream = $ftpresponse.GetResponseStream()
$targetfile = New-Object IO.FileStream ($Target,[IO.FileMode]::Create)
[byte[]]$readbuffer = New-Object byte[] 1024
do{
$readlength = $responsestream.Read($readbuffer,0,1024)
$targetfile.Write($readbuffer,0,$readlength)
}
while ($readlength -ne 0)
$targetfile.close()
}
Yes the UseBinary must be false. I am downloading a text file and it comes out all garbled if useBinary is set to true.
Has anyone seen this before?