SFTP-Uploads und -Downloads mit WinSCP automatisieren
Datum der Veröffentlichung:
Aktualisiert:
Fachartikel > SFTP-Uploads und -Downloads mit WinSCP automatisieren
Status 2026 und sichere Verwendung
Schlussfolgerung: Verwenden Sie WinSCP.com mit einer Skriptdatei, fixieren Sie den SSH-Hostschlüssel-Fingerabdruck des Servers, halten Sie Geheimnisse aus Quell- und Prozessargumenten fern, aktivieren Sie die Protokollierung und lassen Sie den Job fehlschlagen, wenn WinSCP einen Exit-Code ungleich Null zurückgibt.
Was Sie lernen werden
- Wie skriptbasierte
open-,get- undput-Vorgänge in einen Batch-Workflow passen. - Wie die Überprüfung des Hostschlüssels verhindert, dass ein unbeaufsichtigter Job dem falschen Server vertraut.
- So machen Sie Übertragungen mit Protokollen, expliziten Pfaden und Fehlerbehandlung wiederholbar.
Für wen ist dies gedacht: Windows-Administratoren, die die Dateiübertragung an einen bekannten SFTP-Endpunkt automatisieren.
Stand 2026: Das folgende Originalskript enthält veranschaulichende Klartext-Anmeldeinformationen und akzeptiert einen Host interaktiv. Bewahren Sie es nur als historisches Lernmaterial auf; Stellen Sie diese Geheimnisse nicht bereit und umgehen Sie keine Hostschlüsselprüfungen. Bevorzugen Sie SSH-Schlüssel oder einen genehmigten geheimen Speicher und testen Sie das Wiederherstellungsverhalten.
Sicherheitshinweis: Die Befehle und Konfigurationsbeispiele im Originalartikel wurden nicht in einer aktuellen Produktionsumgebung erneut ausgeführt. Überprüfen Sie unterstützte Versionen, Backups, Zugriffskontrollen und Rollback-Schritte in einer separaten Testumgebung, bevor Sie sie anwenden.
Offizielle Primärquellen
Überblick
Erstellen Sie ein Tool zum automatischen Herunter- und Hochladen von Dateien mit dem Befehl WinSCP. Führen Sie die von WinSCP bereitgestellten Befehle über die Eingabeaufforderung aus. Es überrascht nicht, dass WinSCP Befehle bereitstellt. Normalerweise verwenden Sie "WinSCP.exe", aber auch "WinSCP.com" ist verfügbar. Sie werden den Ordner "C:\Programme (x86)\WinSCP" fast nie im Verknüpfungsziel sehen, da Sie ihn normalerweise grundsätzlich über die Verknüpfung öffnen, aber wenn Sie sich das Verknüpfungsziel ansehen, sollte "WinSCP.com" auch dort gespeichert sein. An dieser Stelle wird das Werkzeug erstellt.
Inhaltsübersicht
- Was ist der Befehl WinSCP?
- 1-1. Was Sie tun können.
- 1-2. Was Sie nicht tun können.
- Automatisches Download-Tool
- 2-1. Erstellen
- 2-2. Umsetzungsvorbereitung
- 2-3. Umsetzung
- Werkzeug zum automatischen Hochladen
- 3-1. Erstellen
- 3-2. Umsetzungsvorbereitung
- 3-3. Umsetzung
- Andere Befehle, die häufig verwendet werden können
- Zusammenfassung
1. Was ist die WinSCP-Befehlszeile?
Über die WinSCP-Befehlszeile lassen sich häufige Dateiübertragungen aus der grafischen Oberfläche skripten. Sie eignet sich für wiederholbare Uploads, Downloads und Sitzungsabläufe.
1-1. Was Sie tun können.
Sie können Dateien herunterladen und hochladen, Ordner erstellen, Shell-Befehle aufrufen und vieles mehr.
Zu den Befehlen, die häufig verwendet werden, gehören.
open: Wird für die Verbindung verwendet.
get: Wird zum Herunterladen von Dateien verwendet.
put: Wird zum Hochladen von Dateien verwendet.
exit: Beendet WinSCP.
1-2. Was Sie nicht tun können.
Einfache Uploads und Downloads sind direkt möglich. Komplexere Filter erfordern gegebenenfalls Dateimasken, Skriptlogik oder einen entfernten Shell-Befehl.
Beim Filtern nach Änderungszeit ist die Dateimasken-Syntax der eingesetzten WinSCP-Version zu beachten.
Der Befehl call führt in unterstützten Sitzungen entfernte Shell-Befehle aus. Verfügbare Befehle, Maskierung und Rechte hängen von der Serverumgebung ab.
2. Automatisches Download-Tool
Wir würden gerne ein Tool erstellen, das die Protokolle auf dem Linux-Server automatisch herunterlädt.
2-1. Erstellen
Erstellen Sie ein Werkzeug mit den folgenden Bedingungen.
/ Windows 10 als Ausführungsumgebung.
/ Der zu erwerbende Server ist ein Linux-Server.
/ IP-Adresse 192.168.50.10.
Erstellen Sie zunächst eine Bat-Datei als Ausgangspunkt für die Aktivierung.
@setlocal enabledelayedexpansion
@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%
@mkdir %FOLDER%
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER%
Bis auf die letzte Zeile ist der Rest des Prozesses ein Windows-Befehl. Inhalt.
@setlocal enabledelayedexpansion
Einstellungen für verzögerte Umgebungsvariablen. Kurz gesagt, verhindert diese Beschreibung, dass einer Variablen ein Wert zugewiesen wird, der möglicherweise nicht reflektiert wird.
@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%
Der Vorgang, bei dem yyyymmddhmmss aus der aktuellen Zeit ermittelt und schließlich in die Variable FOLDER eingetragen wird.
@mkdir %FOLDER%
Erstellen Sie einen Ordner 'yyyymmddhmmss' direkt unter dem Ordner, in dem der Stapel ausgeführt wurde.
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER%
WinSCP.com (WinSCP-Befehl). Bei der Ausführung werden die in "ftp.txt" aufgelisteten Befehle in demselben Ordner ausgeführt, in dem die Batch-Datei gespeichert ist. Übergeben Sie den soeben erstellten Ordnerpfad als Argument.
Damit ist die Erstellung der Anruferdatei abgeschlossen. Der WinSCP-Befehl wird dann in "ftp.txt" beschrieben.
option batch on
option transfer binary
open test:testpassword@192.168.50.10
get /var/log/httpd/access_log %1%\
close
exit
Inhalt.
option batch on
Bei Prozessen, die eine Abfrage erfordern, geht das System automatisch davon aus, dass "Nein" ausgewählt wurde, und führt den Prozess automatisch aus. Wenn Sie diese Option wählen, werden alle doppelten Dateinamen automatisch überschrieben. (Sie können einen Ordner "yyyymmddhmmss" erstellen und die Dateien dort ablegen, damit es keine doppelten Dateinamen gibt.)
option transfer binary
Die Einstellung ist so, dass die Daten im Binärmodus übertragen werden.
open test:testpassword@192.168.50.10
Benutzername:Kennwort@IP-Adresse'. Verbinden Sie sich mit der IP-Adresse "192.168.50.10".
get /var/log/httpd/access_log %1%\
Speichern Sie "/var/log/httpd/access_log" in dem Ordner "yyyymmddhhmmss".('%1%' ist das in file_get.bat übergebene Argument)
Das „*“ ist hier ein von WinSCP unterstütztes Platzhaltermuster, kein regulärer Ausdruck. „/var/log/httpd/*“ entspricht beispielsweise den Dateien in diesem Verzeichnis.
close
exit
close schließt die aktuelle Sitzung; exit beendet WinSCP.
Damit ist die Erstellung des Tools abgeschlossen.
2-2. Hostschlüssel vor der ersten Verbindung prüfen
Vor der Automatisierung ist der Fingerabdruck des SSH-Hostschlüssels über einen vertrauenswürdigen Kanal zu prüfen.
WinSCP zeigt bei der ersten Verbindung den Hostschlüssel-Fingerabdruck an. Er darf nur akzeptiert werden, wenn er mit der vom Serveradministrator bereitgestellten Angabe übereinstimmt; ein bloßer Klick auf „Ja“ beweist keine sichere Verbindung. Automatisierte Skripte sollten den erwarteten Fingerabdruck explizit angeben und bei Abweichungen abbrechen.
"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Sie werden um eine Antwort gebeten, geben Sie "y" ein.
close
exit
exit
Konto, Passwort und Adresse im Beispiel sind Platzhalter. Produktionsskripte sollten Passwörter nicht in der Befehlszeile speichern, sondern eine geschützte Sitzungskonfiguration oder Schlüssel-Authentifizierung verwenden.
Nach Prüfung des Fingerabdrucks und sicherer Speicherung der Verbindung kann die Batchdatei ausgeführt werden.
2-3. Umsetzung
Schließlich ist es an der Zeit, sie umzusetzen. Doppelklicken Sie auf 'file_get.bat'.
Erfolgreich, wenn der Ordner "yyyymmddhhmmss" erstellt wurde und die Protokolle in diesem Ordner gespeichert sind.
3. Werkzeug zum automatischen Hochladen
Der nächste Schritt besteht darin, ein Tool zu entwickeln, mit dem Dateien auf einem Linux-Server abgelegt werden können. Der grundlegende Aufbau ist derselbe wie beim Download-Tool.
3-1. Erstellen
Erstellen Sie ein Werkzeug mit den folgenden Bedingungen.
/ Windows 10 als Ausführungsumgebung.
/ Der Zielserver ist Linux.
/ IP-Adresse 192.168.50.10.
Erstellen Sie zunächst eine Bat-Datei als Ausgangspunkt für die Aktivierung.
@setlocal enabledelayedexpansion
@set FOLDER_NAME="put_files\*"
@set FOLDER=%~dp0%FOLDER_NAME%
@set PUT_FOLDER="/tmp/"
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0put_ftp.txt /parameter %FOLDER% %PUT_FOLDER%
Da es im automatischen Download-Tool erklärt wurde, entfällt eine kleine Erklärung, aber das Verfahren besteht darin, die Dateien im Ordner "put_files" in demselben Ordner zu speichern, in dem die Batch-Datei in "/tmp/" ausgeführt wird. Der eigentliche Speichervorgang ist in "put_ftp.txt" beschrieben.
option batch on
option transfer binary
open test:testpassword@192.168.50.10
put %1% %2%
close
exit
Der Befehl "put %1%\ %2%" lädt Dateien entsprechend der als Argumente übergebenen "Quelldatei" und des "Zielordners" hoch, wobei eine kleine Erklärung weggelassen wird, da dies auch beim automatischen Download-Tool erklärt wird.
3-2. Umsetzungsvorbereitung
Wie bei dem automatischen Download-Tool werden die Fingerabdrücke vor der Ausführung überprüft.(Nicht erforderlich, wenn das automatische Download-Tool einmal ausgeführt wurde.)
Führen Sie den folgenden Befehl an der Eingabeaufforderung aus.
"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Sie werden um eine Antwort gebeten, geben Sie "y" ein.
close
exit
exit
test:testpassword@192.168.50.10" sollte durch "Benutzername:Passwort@IP-Adresse" ersetzt werden.
Damit sind die Vorbereitungen abgeschlossen.
3-3. Umsetzung
Schließlich ist es an der Zeit, sie umzusetzen. Doppelklicken Sie auf 'file_put.bat'.
Erfolgreich, wenn die in 'put_files' gespeicherten Dateien in den Ordner '/tmp/' übertragen werden.
4. Andere Befehle, die häufig verwendet werden können
Wir haben die Grundlagen des Herunterladens und Hochladens vorgestellt, möchten aber auch andere Befehle beschreiben, die häufig verwendet werden können.
4-1. Schlüssel-Authentifizierung
Zuvor haben Sie sich mit der Passwortauthentifizierung gemäß der folgenden Beschreibung angemeldet.
open test:testpassword@192.168.50.10
open benutzername:passwort@IP-Adresse'. Für die Schlüsselauthentifizierung gilt das Folgende.
open test@192.168.50.10 -privatekey=id_rsa.ppk
Die Angabe "-privatekey=id_rsa.ppk" ist der Pfad zum Schlüssel. Da es sich um einen relativen Pfad handelt, wird davon ausgegangen, dass sich der Schlüssel (id_rsa.ppk) auch in dem Ordner befindet, in dem die ausführbare Datei (bat-Datei) gespeichert ist. Wenn sich der Schlüssel beispielsweise direkt unter dem Laufwerk C befindet, schreiben Sie "-privatekey=C:\id_rsa.ppk".
4-2. Aufrufen der Shell
Um die Shell über den WinSCP-Befehl aufzurufen, schreiben Sie wie folgt.
option batch on
option transfer binary
open test:testpassword@192.168.50.10
call sh /tmp/test.sh
close
exit
test.sh" wird von "call sh /tmp/test.sh" ausgeführt. Es ist auch möglich, Argumente zu übergeben. Wenn Sie Argumente übergeben, schreiben Sie sie als "call sh /tmp/test.sh param1".
5. Zusammenfassung
Der Befehl WinSCP wurde bereits beschrieben.
Wenn Sie normalerweise die WinSCP-GUI verwenden, um täglich Dateien zu protokollieren und hochzuladen, können Sie dies mit den in diesem Artikel beschriebenen Tools automatisieren. Es mag eine kleine Aufgabe sein, aber sie kann viel Zeit in Anspruch nehmen, es sei denn, sie wird jeden Tag erledigt. Wir ermutigen Sie, Tools zur Verbesserung der Effizienz zu entwickeln.
