Testen der Konnektivität zum FTP-Server mit PowerShell Test-Connection

Testen der Konnektivität zum FTP-Server mit PowerShell Test-Connection

Ich habe es mit diesem Skript versucht, aber es hat bei mir nicht funktioniert

$file = "test.txt"

$filePath = "C:\" + $file

$server = "ftp://server"

IF (Test-Connection -ComputerName $server -Quiet -Count 1 -ErrorAction SilentlyContinue)
{
$ftp = $server+$file

$webclient = New-Object System.Net.WebClient

$uri = New-Object System.Uri($ftp)

"Uploading $File..."

$webclient.UploadFile($uri, $filePath)
}
ELSE
{write-host "error"}

Wenn ich das Skript ausführe, erhalte ich die Meldung „Fehler“ im Host. Dies bedeutet, dass kein Kontakt zum Server besteht. Wenn ich jedoch einen Ping ansende, antwortet der Server.

Antwort1

Wie @flolilolilo bereits kommentierte,Test-Connectionakzeptiert einen Hostnamen, keine URL, Sie müssen es also servernur mit aufrufen, nicht mit ftp://server.

serverSobald Sie das behoben haben, werden Sie mit einem weiteren Problem konfrontiert: Ihre URI ist falsch, da zwischen und ein Schrägstrich fehlt test.txt. Die URI sollte lauten ftp://server/test.txt.


Und außerdem sehe ich keinen Sinn darin, anzurufen Test-Connection. Versuchen Sie einfach, die Datei sofort hochzuladen.

Antwort2

Ich verwende den Befehl, get-contentum eine Liste der IP-Adressen zu erhalten und sie anzupingen. Wenn die IP eine Live-FTP-Sitzung öffnet, wird die Datei an den Drucker gesendet.

$printers = get-content "C:\......\servers.txt"
$info="C:\CommunityName.zpl" 
$ftp = "ftp://$ip/dir/CommunityName.zpl" 
$user = "" 
$pass = ""

$webclient = New-Object System.Net.WebClient 
$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass)


 foreach ($ip in $printers){
 IF (Test-Connection -ComputerName $ip -Quiet -Count 1 -ErrorAction SilentlyContinue){

    try { $uri = New-Object System.Uri($ftp)
          $webclient.UploadFile($uri, $info)
          Write-Host "UploadFile it's done $ip"  -backGround Green
        } 

    catch { Write-Host "An Error occured while uploading file to: $Uri" Throw

        }
}
 ELSE{ Write-Host "no conacting $ip"  -backGround Red}
}

verwandte Informationen