WinSCP: Automatische Synchronisation FTP remote – lokal per Script

WinSCP: Automatische Synchronisation FTP remote – lokal per Script

letzte Aktualisierung: 12. Oktober 2026
#
Ungefähre Lesezeit: 5 min

Müssen regelmäßig Dateien von einem FTP- oder SFTP-Server auf einen lokalen Windows-PC übertragen werden, lässt sich dieser Vorgang mit WinSCP automatisieren.

WinSCP ist ein kostenloses Programm zur Dateiübertragung, das neben einer grafischen Oberfläche auch eine Skriptsteuerung unterstützt. Damit können Dateien beispielsweise täglich oder stündlich automatisch synchronisiert werden, ohne dass WinSCP manuell gestartet werden muss.

In dieser Anleitung zeige ich, wie eine Synchronisierung vom Server auf einen lokalen Ordner eingerichtet und anschließend über die Windows-Aufgabenplanung automatisiert ausgeführt wird.

1. Voraussetzungen

Für die Einrichtung werden benötigt:

  • Windows 11 oder ein unterstütztes Windows-Server-Betriebssystem
  • Installiertes WinSCP
  • Zugangsdaten zu einem FTP-, FTPS- oder SFTP-Server
  • Ein lokales Verzeichnis für die synchronisierten Dateien
  • Berechtigung zum Einrichten einer Aufgabe in der Windows-Aufgabenplanung

Hinweis zur Sicherheit:
Wenn möglich, sollte SFTP (SSH File Transfer Protocol) oder FTPS (FTP über TLS) verwendet werden. Bei unverschlüsseltem FTP werden Zugangsdaten und Dateien ohne ausreichenden Schutz übertragen.

2. Funktionsweise

Die Synchronisierung erfolgt über zwei Dateien:

ftp-sync-to-local.txt

  • Diese Textdatei enthält die WinSCP-Befehle. Sie stellt die Verbindung zum Server her und legt fest, welche Verzeichnisse synchronisiert werden.

ftp-sync-to-local.bat

  • Die Batch-Datei startet WinSCP, führt die Skriptdatei aus und erstellt ein Protokoll. Zusätzlich wird geprüft, ob die Synchronisierung erfolgreich war.
  • Die Batch-Datei kann anschließend über die Windows-Aufgabenplanung automatisch gestartet werden.

3. Verbindung in WinSCP einrichten

Zunächst wird WinSCP geöffnet und eine Verbindung zum gewünschten Server eingerichtet.

  1. WinSCP starten.
  2. Eine neue Sitzung anlegen.
  3. Als Übertragungsprotokoll vorzugsweise SFTP auswählen.
  4. Serveradresse, Benutzername und die erforderlichen Anmeldedaten eingeben.
  5. Die Verbindung herstellen und überprüfen.
  6. Die Sitzung unter einem eindeutigen Namen speichern, beispielsweise MeinSFTP-Server.

Gespeicherte Sitzungen sind benutzerabhängig. Wird die Aufgabe später unter einem anderen Windows-Benutzer ausgeführt, muss die Verbindung auch für diesen Benutzer verfügbar sein.

4. WinSCP-Skriptdatei erstellen

Im Beispiel werden die Dateien aus dem Serververzeichnis /daten in den lokalen Ordner C:\temp\ftpdaten synchronisiert.

Dazu wird eine Textdatei mit folgendem Inhalt erstellt:

Dateiname: ftp-sync-to-local.txt

option batch abort
option confirm off

open "MeinSFTP-Server"

synchronize local "C:\temp\ftpdaten" "/daten"

exit

Die Datei wird unter C:\Scripts\ftp-sync-to-local.txt gespeichert, vorzugsweise UTF-8-codiert.

Erklärung der Befehle

option batch abort

Beendet die Ausführung bei Fehlern, statt auf eine manuelle Eingabe zu warten.

option confirm off

Deaktiviert Bestätigungsabfragen. Beim automatisierten Skriptaufruf sind solche Abfragen ohnehin weitgehend deaktiviert.

open

Stellt die Verbindung zum Server her. Im Beispiel wird eine zuvor gespeicherte WinSCP-Sitzung verwendet.

synchronize local

Synchronisiert Dateien vom entfernten Server in das angegebene lokale Verzeichnis.

exit

Beendet die WinSCP-Sitzung und das Programm.

Alternative: Verbindungsdaten direkt im Skript

Anstelle einer gespeicherten Sitzung kann die Verbindung auch direkt im Skript definiert werden.

Beispiel für SFTP:

open sftp://benutzer@server.example.de/ -hostkey="SERVER-HOSTKEY-FINGERABDRUCK"

Der Platzhalter muss durch den tatsächlichen SSH-Hostkey-Fingerabdruck ersetzt werden. Auch die Authentifizierung muss für den unbeaufsichtigten Betrieb eingerichtet sein.

Die korrekte Verbindungszeile lässt sich in WinSCP über die Funktion Sitzungs-URL/-Code erzeugen generieren. Die genaue Bezeichnung kann je nach Programmversion und Spracheinstellung abweichen.

  • dazu in WinSCP die Verbindung zum FTP-Server herstellen
  • Tabs -> Sitzungs- URL/-Code erzeugen -> Script -> Scriptdatei
Sitzungs-Code generieren WinSCP

Dabei kann WinSCP auch die erforderlichen Parameter für das verwendete Übertragungsprotokoll ergänzen.

5. Synchronisationsverhalten festlegen

Der Befehl

synchronize local "C:\temp\ftpdaten" "/daten"

gleicht das lokale Verzeichnis mit dem Serververzeichnis ab.

Dabei werden standardmäßig neue und entsprechend geänderte Dateien vom Server übertragen.

Es gibt zusätzliche Parameter, mit denen sich das Verhalten beeinflussen lässt.

Vollständige Spiegelung

synchronize local -mirror -delete "C:\temp\ftpdaten" "/daten"

Mit -mirror werden auch ältere Dateien vom Server erneut übertragen, wenn sie sich von den lokalen Dateien unterscheiden.

Mit -delete werden zusätzlich Dateien im lokalen Zielverzeichnis gelöscht, die auf dem Server nicht mehr vorhanden sind.

Achtung: Diese Variante sollte nur verwendet werden, wenn das lokale Verzeichnis tatsächlich ein vollständiges Abbild des Serververzeichnisses sein soll. Lokal vorhandene Dateien können andernfalls verloren gehen.

Synchronisierung zunächst testen

synchronize local -preview "C:\temp\ftpdaten" "/daten"

Mit -preview zeigt WinSCP die vorgesehenen Änderungen an, ohne sie tatsächlich auszuführen.

Damit lässt sich vor der ersten produktiven Synchronisierung überprüfen, welche Dateien übertragen würden.

6. Batch-Datei für die automatische Ausführung

Damit die Skriptdatei ausgeführt werden kann, wird eine Batch-Datei erstellt.

Dateiname: ftp-sync-to-local.bat

@echo off

set "WINSCP=C:\Program Files (x86)\WinSCP\WinSCP.com"
set "SCRIPT=C:\Scripts\ftp-sync-to-local.txt"
set "LOG=C:\Scripts\ftp-sync.log"

"%WINSCP%" /script="%SCRIPT%" /log="%LOG%"

set "RESULT=%ERRORLEVEL%"

if not "%RESULT%"=="0" (
    echo Fehler bei der Synchronisierung.
    echo Fehlercode: %RESULT%
    exit /b %RESULT%
)

echo Synchronisierung erfolgreich.
exit /b 0

Die Batch-Datei wird ebenfalls unter C:\Scripts gespeichert.

Der Installationspfad von WinSCP muss gegebenenfalls angepasst werden.

Warum WinSCP.com statt WinSCP.exe?

Für die automatisierte Ausführung empfiehlt sich WinSCP.com.

Dabei handelt es sich um die Konsolenanwendung von WinSCP, die speziell für Skripte und die Verarbeitung von Befehlen geeignet ist.

Die Anwendung liefert einen Rückgabecode:

  • 0 – Die Ausführung wurde ohne gemeldeten Fehler abgeschlossen.
  • 1 – Bei der Ausführung ist ein Fehler aufgetreten.

Mit diesem Rückgabecode kann die Windows-Aufgabenplanung erkennen, ob das Skript erfolgreich abgeschlossen wurde.

Protokollierung

Durch den Parameter

/log="C:\Scripts\ftp-sync.log"

wird eine Protokolldatei erstellt.

Sie enthält Informationen über die Verbindung, die ausgeführten Befehle und mögliche Fehler.

Bei regelmäßig ausgeführten Aufgaben sollte die Größe der Protokolldateien überwacht beziehungsweise eine Protokollrotation eingerichtet werden.

7. Automatische Ausführung über die Windows-Aufgabenplanung

Damit die Synchronisierung regelmäßig und ohne manuelle Eingriffe erfolgt, kann die Batch-Datei über die Windows-Aufgabenplanung gestartet werden.

  1. Windows-Aufgabenplanung öffnen.
  2. Aufgabe erstellen auswählen.
  3. Einen Namen vergeben, beispielsweise WinSCP FTP Synchronisierung.
  4. Unter Trigger einen Zeitplan festlegen, beispielsweise täglich um 18:00 Uhr.
  5. Unter Aktionen die Aktion Programm starten auswählen.
  6. Als Programm die Datei C:\Scripts\ftp-sync-to-local.bat eintragen.
  7. Unter Bedingungen und Einstellungen gegebenenfalls weitere Vorgaben festlegen.
  8. Die Aufgabe speichern.

Für die Ausführung ohne aktive Benutzeranmeldung kann die entsprechende Option in den allgemeinen Aufgabeneinstellungen aktiviert werden.

Dabei ist darauf zu achten, dass die verwendete WinSCP-Sitzung und alle erforderlichen Anmeldeinformationen auch im Ausführungskontext der Aufgabe verfügbar sind.

Empfehlung: Die Aufgabe zunächst manuell über die Aufgabenplanung starten und anschließend das Ausführungsergebnis sowie die WinSCP-Protokolldatei kontrollieren.

8. Fehlerbehebung

Wenn die automatische Synchronisierung nicht funktioniert, sollten folgende Punkte überprüft werden.

WinSCP wird nicht gefunden

Der Installationspfad in der Batch-Datei ist möglicherweise falsch. Prüfen, ob WinSCP.com am angegebenen Speicherort vorhanden ist.

Verbindung funktioniert manuell, aber nicht über die Aufgabenplanung

Die Aufgabe wird möglicherweise unter einem anderen Windows-Benutzer ausgeführt. Gespeicherte Sitzungen, SSH-Schlüssel oder andere Einstellungen sind dann eventuell nicht verfügbar.

Hostkey-Fehler bei SFTP

Der SSH-Hostkey ist nicht hinterlegt oder stimmt nicht mit dem erwarteten Fingerabdruck überein. In diesem Fall muss die Serveridentität überprüft werden. Eine ungeprüfte Übernahme eines neuen Hostkeys sollte vermieden werden.

Dateien werden nicht aktualisiert

Das Synchronisationsverhalten und die Vergleichskriterien prüfen. Gegebenenfalls wird eine Datei aufgrund ihres Änderungsdatums nicht erneut übertragen.

Synchronisierung wird mit Fehlercode 1 beendet

Die Protokolldatei auswerten. Häufige Ursachen sind Verbindungsprobleme, fehlende Berechtigungen oder nicht vorhandene Verzeichnisse.

9. Sicherheit und Datensicherung

Bei automatisierten Dateiübertragungen sollten einige grundlegende Sicherheitsmaßnahmen berücksichtigt werden.

  • Nach Möglichkeit verschlüsselte Übertragungsprotokolle verwenden.
  • Zugangsdaten und private SSH-Schlüssel vor unbefugtem Zugriff schützen.
  • Für die Synchronisierung ein eigenes Benutzerkonto mit möglichst eingeschränkten Berechtigungen verwenden.
  • Skriptdateien und Protokolle nur für berechtigte Benutzer zugänglich machen.
  • Die erfolgreiche Ausführung regelmäßig kontrollieren.
  • Vor Verwendung des Parameters -delete eine separate Datensicherung vorhalten.

Eine Synchronisierung ist keine vollständige Datensicherung. Werden Dateien auf dem Server versehentlich verändert oder gelöscht, können diese Änderungen bei einer entsprechenden Synchronisationskonfiguration auch lokal übernommen werden.

10. Fazit

Mit WinSCP lassen sich regelmäßige Dateiübertragungen von einem FTP- oder SFTP-Server auf einen lokalen Windows-PC mit wenigen Schritten automatisieren.

Die Kombination aus einer WinSCP-Skriptdatei, einer Batch-Datei und der Windows-Aufgabenplanung ist insbesondere für einfache, wiederkehrende Übertragungen geeignet.

Durch die zusätzliche Protokollierung und Fehlerauswertung lassen sich Probleme leichter erkennen und beheben.

Für umfangreichere Automatisierungen mit komplexen Bedingungen oder weiterführender Fehlerbehandlung bietet WinSCP zusätzlich eine .NET-Schnittstelle, die beispielsweise über PowerShell verwendet werden kann.

11. Quellen

Tags:
Artikelaufrufe: 4260
Nach oben