Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell FTP-Upload schlägt fehl

Mitglied: Johnny-CGN

Johnny-CGN (Level 1) - Jetzt verbinden

22.06.2016 um 13:10 Uhr, 2160 Aufrufe, 2 Kommentare

Liebe Administratoren,
zu dem folgenden Skript bekomme ich leider eine Fehlermeldung:

01.
$File = "D:\Dev\somefilename.zip"
02.
$ftp = "ftp://username:password@example.com/pub/incoming/somefilename.zip"
03.
$webclient = New-Object System.Net.WebClient
04.
$uri = New-Object System.Uri($ftp)
05.
$webclient.UploadFile($uri, $File)
Ausnahme beim Aufrufen von "UploadFile" mit 2 Argument(en): "Ausnahmefehler während einer
WebClient-Anforderung."
In Zeile:12 Zeichen:1

$webclient.UploadFile($uri, $File)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : WebException


Nur warum?
Habe das Skript mehrfach in dieser Form auf x Seiten gefunden und scheinbar funktioniert es bei anderen.
Mitglied: colinardo
LÖSUNG 22.06.2016, aktualisiert um 13:53 Uhr
Hallo JohnnyCGN,
der Grund sind aktuelle IE Versionen, die das URI-Schema ftp://username:password@domain.de aus Sicherheitsgründen nicht mehr erlauben. Im Hintergrund eines WebClient-Objekts arbeitet nämlich die IE-Engine, deswegen schlägt diese Methode fehl. Das Schema kann man zwar in der Registry wieder freischalten ist aber aus erstens Sicherheitsgründen nicht empfehlenswert und zweitens ist das Skript dann nicht portabel auf allen Clients lauffähig.

Deswegen benutze diese funktionsfähige FTP-Funktionen die ich hier schon mal gespostet habe und welche nicht vom IE abhängig sind:
FTP UP und Download
Powershell: FTP Directorylisting

Hier nochmal alle meine FTP-Funktionen zusammengefasst:
01.
function Upload-File([string]$path,[string]$url,$username,$password){
02.
    try{
03.
        $request = [System.Net.FtpWebRequest]::Create($url)
04.
        $request.Method = [System.Net.WebRequestMethods+FTP]::UploadFile
05.
        $request.Credentials = New-Object System.Net.NetworkCredential($username,$password)
06.
        [bytes[]] $bytes = [System.IO.File]::ReadAllBytes($path)
07.
        [System.IO.Stream]$stream = $request.GetRequestStream();
08.
        $stream.Write($bytes,0,$bytes.Length)
09.
        $stream.Close(); $stream.Dispose()
10.
        $response = [System.Net.FtpWebResponse]$request.GetResponse()
11.
        $result = $response.StatusDescription
12.
        $response.Close()
13.
        return $result
14.
    }catch{
15.
        throw $_.Exception.Message
16.
        return $false
17.
    }
18.
}
19.
function Download-File([string]$url,[string]$path,$username,$password){
20.
    try{
21.
        $request = [System.Net.FtpWebRequest]::Create($url)
22.
        $request.Method = [System.Net.WebRequestMethods+FTP]::DownloadFile
23.
        $request.Credentials = New-Object System.Net.NetworkCredential($username,$password)
24.
        $response = [System.Net.FtpWebResponse]$request.GetResponse()
25.
        [System.IO.Stream]$stream = $response.GetResponseStream()
26.
        [System.IO.FileStream]$outstream = New-Object System.IO.FileStream ($path,[System.IO.FileMode]::Create)
27.
        $stream.CopyTo($outstream)
28.
        $outstream.Close();$stream.Close();$response.Close()
29.
        $stream.Dispose();$outstream.Dispose();$response.Dispose()
30.
        return $true
31.
    }catch{
32.
        throw $_.Exception.Message
33.
    }
34.
}
35.

36.
function List-FTPFiles([string]$url,$username,$password){
37.
        $request = [System.Net.FtpWebRequest]::Create($url)
38.
        $request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
39.
        $request.Credentials = New-Object System.Net.NetworkCredential($username,$password)
40.
        $response = [System.Net.FtpWebResponse]$request.GetResponse()
41.
        [System.IO.Stream]$stream = $response.GetResponseStream()
42.
        $reader = new-object System.IO.StreamReader($stream)
43.
        $list = $reader.ReadToEnd() -split "`n"
44.
        $stream.Close();$response.Close();$reader.Close()
45.
        $stream.Dispose();$response.Dispose();$reader.Dispose()
46.
        return $list
47.
}
48.

49.
function List-AllFTPFiles([string]$server,$username,$password){
50.
    function Get-FilesInDir([string]$path){
51.
        $filelist = @()
52.
        $request = [System.Net.FtpWebRequest]::Create("$server/$path")
53.
        $request.UseBinary = $false
54.
        $request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectoryDetails
55.
        $request.Credentials = New-Object System.Net.NetworkCredential($username,$password)
56.
        $response = [System.Net.FtpWebResponse]$request.GetResponse()
57.
        [System.IO.Stream]$stream = $response.GetResponseStream()
58.
        $reader = new-object System.IO.StreamReader($stream)
59.
        $folderlist = $reader.ReadToEnd() -split [Environment]::NewLine | select -skip 2 | ?{$_ -ne ''}
60.
        $stream.Close();$response.Close();$reader.Close()
61.
        
62.
        # Items durchlaufen
63.
        $folderlist | %{
64.
            $tokens = $_ -split '\s+'
65.
            $item = $tokens[8..($tokens.length-1)]
66.
            if ($_ -match '^d'){
67.
                Get-FilesInDir "$path/$item"
68.
            }else{
69.
                $filelist += "$path/$item"
70.
            }
71.
        }
72.
        $stream.Dispose();$response.Dispose();$reader.Dispose()
73.
        return $filelist
74.
    }
75.
    return Get-FilesInDir
76.
}
77.

78.
function Delete-FtpFile([string]$url,$username,$password){
79.
    try{
80.
        $request = [System.Net.FtpWebRequest]::Create($url)
81.
        $request.Method = [System.Net.WebRequestMethods+FTP]::DeleteFile
82.
        $request.Credentials = New-Object System.Net.NetworkCredential($username,$password)
83.
        $response = [System.Net.FtpWebResponse]$request.GetResponse()
84.
        $result = $response.StatusDescription
85.
        $response.Close()
86.
        return $result
87.
    }catch{
88.
        throw $_.Exception.Message
89.
        return $false
90.
    }
91.
}
92.

93.
$username = 'FTPUSER'
94.
$password =  'PASSWORD'
95.
$remotefile = 'ftp://ftp.domain.de/file.csv'
96.
$localfile = 'C:\Ordner\file.csv'
97.

98.
# Beispiele:
99.
# -----------
100.
# Download-File -url $remotefile -path $localfile -username $username -password $password
101.
# Upload-File -path $localfile -url $remotefile -username $username -password $password
102.
# List-FTPFiles -url 'ftp://ftp.domain.de/ordner/*.log' -username $username -password $password
103.
# List-AllFTPFiles -server 'ftp://ftp.domain.de' -username $username -password $password
104.
# Delete-FtpFile -url $remotefile -username $username -password $password
Grüße Uwe
Bitte warten ..
Mitglied: colinardo
28.06.2016 um 15:00 Uhr
Kommt hier noch Rückmeldung ?

Ansonsten...
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell anonymous FTP Upload
gelöst Frage von MarabuntaBatch & Shell5 Kommentare

Hallo, ich will eine Datei hochladen, anonymous Zugriff ist auf der QNAP Nas aktiviert. Dann noch ein Skript gefunden ...

Entwicklung
Automatisierter FTP Upload
Frage von Sahin-FraEntwicklung9 Kommentare

Hallo, ich suche ein kostenfreies Tool womit ich automatisierte FTP Übertragungen durchführen kann. Vielen Dank!

Netzwerkgrundlagen

Ftp upload Geschwindigkeit sehr langsam??

gelöst Frage von SteffenBNetzwerkgrundlagen14 Kommentare

Hallo liebe User, ich hoffe das ist das richtige Thema für meine Fragen!? Ich bin ein ganz normaler Endnutzer ...

Batch & Shell

Powershell: FTP Directorylisting

gelöst Frage von pablovicBatch & Shell3 Kommentare

Hi Ich habe Probleme ein PS Script zu erstellen, dass mir eine Datei von einem FTP Server herunter lädt. ...

Neue Wissensbeiträge
Off Topic
Noch mehr was ich nicht brauche
Information von brammer vor 2 TagenOff Topic6 Kommentare

Hallo, WOFÜR? WARUM? brammer

Windows Server

Windows Server 2016 Suche nicht funktioniert ist ausgegraut Windows Server 2016 Search not work

Erfahrungsbericht von Wano347 vor 3 TagenWindows Server

Hallo Leute, wir haben vor kurzem ein Problem gehabt: Windows Server 2016 frisch installiert. Nach Checkliste konfiguriert (sieht vor ...

Microsoft Office

Microsoft geht nun rechtlich gegen Lizengo vor - Billig Software

Information von takvorian vor 3 TagenMicrosoft Office9 Kommentare

Hallo zusammen, eben auf CRN gefunden, weis nicht ob das schon wer gepostet hat Microsoft verklagt Lizengo Gruß Tak

Firewall
Übernahme von SOPHOS durch Thoma Bravo
Information von Dilbert-MD vor 4 TagenFirewall3 Kommentare

Kam die Tage per Newsletter: Zitat: " Das Sophos Board of Directors hat gestern bekanntgegeben, dass die Private-Equity-Investment-Firma Thoma ...

Heiß diskutierte Inhalte
Router & Routing
Macht es schon Sinn IPv6 Adressen einzusetzen ?
Frage von mario89Router & Routing11 Kommentare

Hallo Leute, bitte entschuldigt die vielleicht blöde frage, aber ich wollte gerne mal hören, ob im Professionellen Umfeld IPv6 ...

Batch & Shell
Batch - Datei über das Kontextmenü (Senden an) des Windows Explorer umbenennen
gelöst Frage von AlfornoBatch & Shell10 Kommentare

Hallo, ich möchte eine beliebige Word Datei mittels Batch umbenennen. Als Ergebnis soll der neue Dateiname das Änderungsdatum sowie ...

Switche und Hubs
Zwei VLANs über Trunks über zwei Layer3-Switche per Glasfaser verbinden
Frage von FreundlicherSwitche und Hubs9 Kommentare

Hi, leider habe ich weder in der Berufsschule aufgepasst, noch in der Ausbildung das Thema praktisch behandelt (kleiner Betrieb). ...

Batch & Shell
Batch variable in nächste batch mitnehmen
Frage von BytexxBatch & Shell8 Kommentare

Hallo ich möchte ein kleines .bat programm schreiben und habe eine frage. wie kann ich ein installations pfad herrausfinden ...