none
FTP Webclient lässt sich nicht mehr erstellen RRS feed

  • Frage

  • Ich habe ein PS-Script erstellt, dass alle 15 Minuten per Scheduled Task ausgeführt wird. Dieses Soll ein paar Dateien zu einem FTP Server hochladen. Bis vor kurzem hat dies auch super funktioniert. Nun allerdings bricht es bei folgender Stelle ab:

    function Connect-FTP
    {
        Param( [parameter(Mandatory=$true)][string]$U,
               [parameter(Mandatory=$true)][string]$P 
        )
        try {
            $webclient = New-Object System.Net.WebClient;
            $webclient.Credentials = New-Object System.Net.NetworkCredential($U,$P);
        }
        catch {
            WriteOutput "Fehler      | Erstellen des Webclients Fehlgeschlagen";
            WriteOutput "Meldung     | Kopiervorgang Abgebrochen";
            $global:UploadError = $true;
        }
    }

    Ich weiß es wird hier noch keine Verbindung mit dem Server aufgebaut, zur Sicherheit habe ich trotzdem den FTP Zugriff mit den übergebenen Credentials überprüft.

    Woran könnte dies liegen?

    Meine Theorie ist, dass einfach zu viele von denen erstellt wurden und jetzt das Speichernirvana zumüllen. Gibt es eventuell einen Destructor für den System.Net.Webclient, den ich übersehen habe? 

    Dienstag, 5. Juni 2018 11:29

Antworten

  • Einen Destructor gibt es nicht. Das Objekt wird automatisch zerstört, wenn das Script verlassen wird.

    Du solltest mal die genaue Fehlermeldung protokollieren:

    https://www.vexasoft.com/blogs/powershell/7255220-powershell-tutorial-try-catch-finally-and-error-handling-in-powershell

    Catch
    {
        $ErrorMessage = $_.Exception.Message
        $FailedItem = $_.Exception.ItemName
        Send-MailMessage -From ExpensesBot@MyCompany.Com -To WinAdmin@MyCompany.Com -Subject "HR File Read Failed!" -SmtpServer EXCH01.AD.MyCompany.Com -Body "We failed to read file $FailedItem. The error message was $ErrorMessage"
        Break
    }

    • Als Antwort markiert Joejoearmany Dienstag, 5. Juni 2018 12:09
    Dienstag, 5. Juni 2018 11:43

Alle Antworten

  • Update: Das Problem scheint Serverbezogen zu sein. Bei anderen Servern funktioniert das Erstellen des Webhandlers. Die Datenübertragung danach geht natürlich nicht, da ich nicht sinnfrei Ports freischalten will
    Dienstag, 5. Juni 2018 11:40
  • Einen Destructor gibt es nicht. Das Objekt wird automatisch zerstört, wenn das Script verlassen wird.

    Du solltest mal die genaue Fehlermeldung protokollieren:

    https://www.vexasoft.com/blogs/powershell/7255220-powershell-tutorial-try-catch-finally-and-error-handling-in-powershell

    Catch
    {
        $ErrorMessage = $_.Exception.Message
        $FailedItem = $_.Exception.ItemName
        Send-MailMessage -From ExpensesBot@MyCompany.Com -To WinAdmin@MyCompany.Com -Subject "HR File Read Failed!" -SmtpServer EXCH01.AD.MyCompany.Com -Body "We failed to read file $FailedItem. The error message was $ErrorMessage"
        Break
    }

    • Als Antwort markiert Joejoearmany Dienstag, 5. Juni 2018 12:09
    Dienstag, 5. Juni 2018 11:43
  • We failed to read file . The error message was Der Typ [System.Net.WebClient] kann nicht gefunden werden. Stellen Sie sicher, dass die Assembly, die diesen Typ enth?lt, geladen wird.

    Anscheinend hat sich da irgendwie ein zusätzliches (in der ISE nicht sichtbares) Zeichen eingeschlichen. Als ich einfach die komplette Zeile gelöscht und neu geschrieben habe, lief das Skript wieder...

    Dies ist umso seltsamer, da niemand das Skript angefasst hat. Oo

    Dienstag, 5. Juni 2018 12:09