FTP Powershell Error Messages

Tagged: 

This topic contains 3 replies, has 2 voices, and was last updated by Profile photo of Richard Siddaway Richard Siddaway 3 years, 10 months ago.

  • Author
    Posts
  • #7878
    Profile photo of DafosD
    DafosD
    Participant

    Hello,

    I am trying to automate some upoads of files with FTPS in Powershell. I am using a script got from Internet, and changed a bit to my needs. But I am getting some errors when trying to test. I will copy the script and the error messages directly here. Maybe someone knows this errors and can help me in solving this ?

    #FTP Multiple File Upload Script by Michael Reischl http://www.gamorz.de /-/ V.3

    #Based on FTP Upload Script from http://www.thomasmaurer.ch

    # FTP Config

    [Net.ServicePointManager]::ServerCertificateValidationCallback ={$true}

    $Username = "Name" #FTP User

    $Password = "Password" #FTP Password

    $Dir = "\\remotedir\" #Local Folder

    $RemotePath = "ftp://site/" #Ftp Server + Folder

    #Start Loop to Upload every file in Local Folder, files can be filtered.

    foreach($item in (dir $Dir))

    {

    # Create FTP Request Object

    $FTPRequest = [System.Net.FtpWebRequest]::Create("$RemotePath$item")

    $FTPRequest = [System.Net.FtpWebRequest]$FTPRequest

    $FTPRequest.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile

    $FTPRequest.Credentials = new-object System.Net.NetworkCredential($Username, $Password)

    $FTPRequest.UseBinary = $true

    $FTPRequest.UsePassive = $false

    $FTPRequest.Proxy = $NULL

    $FTPRequest.EnableSSL = $true

    # Read the File for Upload

    #$FileContent = gc -en byte $item.Fullname

    $FTPRequest.ContentLength = $FileContent.Length

    # Get Stream Request by bytes

    $Run = $FTPRequest.GetRequestStream()

    $Run.Write($FileContent, 0, $FileContent.Length)

    # Cleanup

    $Run.Close()

    $Run.Dispose()

    }

    ————————————————————————————————————-

    Exception calling "GetRequestStream" with "0" argument(s): "The remote server returned an error: (501) Syntax error i

    n parameters or arguments."

    At C:\DevelopedAddOns\FTPUpload3PL\Test\Untitled2.ps1:26 char:36

    + $Run = $FTPRequest.GetRequestStream <<<< () + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException   You cannot call a method on a null-valued expression. At C:\DevelopedAddOns\FTPUpload3PL\Test\Untitled2.ps1:27 char:11 + $Run.Write <<<< ($FileContent, 0, $FileContent.Length) + CategoryInfo          : InvalidOperation: (Write:String) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull   You cannot call a method on a null-valued expression. At C:\DevelopedAddOns\FTPUpload3PL\Test\Untitled2.ps1:29 char:11 + $Run.Close <<<< () + CategoryInfo          : InvalidOperation: (Close:String) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull   You cannot call a method on a null-valued expression. At C:\DevelopedAddOns\FTPUpload3PL\Test\Untitled2.ps1:30 char:13 + $Run.Dispose <<<< () + CategoryInfo          : InvalidOperation: (Dispose:String) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull   Exception calling "GetRequestStream" with "0" argument(s): "The remote server returned an error: (501) Syntax error i n parameters or arguments." At C:\DevelopedAddOns\FTPUpload3PL\Test\Untitled2.ps1:26 char:36 + $Run = $FTPRequest.GetRequestStream <<<< () + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException   You cannot call a method on a null-valued expression. At C:\DevelopedAddOns\FTPUpload3PL\Test\Untitled2.ps1:27 char:11 + $Run.Write <<<< ($FileContent, 0, $FileContent.Length) + CategoryInfo          : InvalidOperation: (Write:String) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull   You cannot call a method on a null-valued expression. At C:\DevelopedAddOns\FTPUpload3PL\Test\Untitled2.ps1:29 char:11 + $Run.Close <<<< () + CategoryInfo          : InvalidOperation: (Close:String) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull   You cannot call a method on a null-valued expression. At C:\DevelopedAddOns\FTPUpload3PL\Test\Untitled2.ps1:30 char:13 + $Run.Dispose <<<< () + CategoryInfo          : InvalidOperation: (Dispose:String) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull

  • #7900
    Profile photo of Richard Siddaway
    Richard Siddaway
    Moderator

    It looks like this line
    $Run = $FTPRequest.GetRequestStream()

    failed

    one thing I did notice

    Is this line correct
    $FTPRequest.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile

    is the + sign correct?

  • #7916
    Profile photo of DafosD
    DafosD
    Participant

    Yes, the line is correct. I just checked this method again. I gues it has something to do with the SSL that I want to enable, but I am not sure

    how to handle this.

  • #7933
    Profile photo of Richard Siddaway
    Richard Siddaway
    Moderator

    Try running the code interactively one line at a time and test the contents of each variable are correct. You should discover where its not working

You must be logged in to reply to this topic.