SFTP-uploads en -downloads automatiseren met WinSCP
Datum van publicatie:
Bijgewerkt:
Artikelen > SFTP-uploads en -downloads automatiseren met WinSCP
2026 status en veilig gebruik
Conclusie: Gebruik WinSCP.com met een scriptbestand, pin de SSH host-key vingerafdruk van de server, houd geheimen buiten de bron en procesargumenten, activeer logging, en faal de taak wanneer WinSCP een nonzero exit code retourneert.
Wat je zult leren
- Hoe gescripteerd
open,getenputoperaties passen in een batch workflow. - Hoe host-key verificatie voorkomt dat een onbeheerde taak de verkeerde server vertrouwt.
- Hoe transfers herhaalbaar te maken met logs, expliciete paden en foutafhandeling.
Voor wie: Windows-beheerders automatiseren bestandsoverdracht naar een bekend SFTP eindpunt.
Actualisatie voor 2026: Het originele script hieronder bevat illustratieve plaintext referenties en accepteert een host interactief. Houd het als historisch leermateriaal alleen; zet die geheimen niet in of omzeil host-key controles. Liever SSH sleutels of een goedgekeurde geheime winkel en test recovery gedrag.
Veiligheidsopmerking: de opdrachten en configuratievoorbeelden uit het oorspronkelijke artikel zijn niet opnieuw in een moderne productieomgeving uitgevoerd. Controleer ondersteunde versies, back-ups, toegangsbeheer en terugrolstappen eerst in een afzonderlijke testomgeving.
Officiële primaire bronnen
Overzicht
Deze handleiding laat zien hoe je SFTP-downloads en -uploads automatiseert via de opdrachtregelinterface van WinSCP.
Voer de commando's van WinSCP uit met de opdrachtprompt. Het is geen verrassing dat WinSCP commando's levert. Normaal gesproken gebruikt u 'WinSCP.exe', maar 'WinSCP.com' is ook beschikbaar. U zult bijna nooit de map "C:Program Files (x86)\WinSCP" in de snelkoppelingsbestemming zien, omdat u die meestal in principe vanuit de snelkoppeling opent, maar als u naar de snelkoppelingsbestemming kijkt, zou "WinSCP.com" daar ook opgeslagen moeten zijn. Dit is waar het gereedschap wordt gemaakt.Inhoudsopgave
- Wat is het WinSCP commando?
- 1-1. Wat u kunt doen.
- 1-2. Wat je niet kunt doen.
- Automatisch download hulpmiddel
- 2-1. maken
- 2-2. uitvoeringsvoorbereiding
- 2-3. uitvoering
- Automatisch upload hulpmiddel
- 3-1. maken
- 3-2. uitvoeringsvoorbereiding
- 3-3. uitvoering
- Andere commando's die vaak gebruikt kunnen worden
- samenvatting
1. Wat is het WinSCP commando?
WinSCP.com stelt de belangrijkste functies van de grafische interface beschikbaar via de opdrachtregel. Een scriptbestand kan dezelfde transfers daardoor zonder handmatige bediening uitvoeren.
1-1. Wat u kunt doen.
U kunt bestanden downloaden en uploaden, mappen aanmaken, shellcommando's aanroepen en nog veel meer.
De meest gebruikte opdrachten zijn:
open: opent een sessie.
get: downloadt een extern bestand.
put: uploadt een lokaal bestand.
exit: sluit WinSCP af.
1-2. Wat je niet kunt doen.
Eenvoudige transfers worden rechtstreeks ondersteund. Combineer het WinSCP-script voor complexere selecties, zoals filteren op wijzigingsdatum, met expliciete logica op de Windows-client of de server.
De opdracht 'call' kan een externe opdracht starten als het protocol en de accountrechten dat toestaan.
2. Automatisch download hulpmiddel
Het voorbeeld downloadt automatisch logbestanden van een Linux-server naar een Windows-computer.
2-1. Aanmaken
Het voorbeeld gebruikt de volgende voorwaarden.
• Windows 10 als de uitvoeringsomgeving.
• De aan te schaffen server is Linux.
• IP adres 192.168.50.10.
Maak eerst een bat-bestand aan als startpunt voor de activering.
@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%
Behalve de laatste regel, is de rest van het proces een Windows commando. Inhoud.
@setlocal enabledelayedexpansion
Instellingen voor vertraagde omgevingsvariabelen. Kort gezegd voorkomt deze beschrijving dat een waarde wordt ingesteld op een variabele die niet mag worden weergegeven.
@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%
Het proces om yyyymmddhmmss te krijgen van de huidige tijd en het uiteindelijk in de FOLDER variabele te stoppen.
@mkdir %FOLDER%
Maak een map 'yyyymmddhmmss' direct onder de map waar de batch werd uitgevoerd.
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER%
WinSCP.com (WinSCP commando). De uitvoering voert de commando's uit die in "ftp.txt" staan in dezelfde map als waar het batchbestand is opgeslagen. Geef het zojuist aangemaakte mappad door als argument.
Hiermee is de creatie van het bestand van de oproeper voltooid. Het WinSCP commando wordt dan beschreven in "ftp.txt".
option batch on
option transfer binary
open test:testpassword@192.168.50.10
get /var/log/httpd/access_log %1%\
close
exit
Inhoud.
option batch on
Voor processen die een bevraging vereisen, gaat het systeem er automatisch van uit dat "Nee" is geselecteerd en voert het proces automatisch uit. Als u dit opneemt, worden eventuele dubbele bestandsnamen automatisch overschreven.
(U kunt een map "jjjjmmddhmmss" maken en de bestanden daarin plaatsen, zodat er geen dubbele bestandsnamen zijn, dat wel.)option transfer binary
De instelling is om de gegevens in binaire modus over te dragen.
open test:testpassword@192.168.50.10
gebruikersnaam:pass-word@IP-adres'. Maak verbinding met het IP adres "192.168.50.10".
get /var/log/httpd/access_log %1%\
Sla '/var/log/httpd/access_log' op in de map 'yyyymmddhhmmss'. (%1%' is het argument dat is doorgegeven in file_get.bat)
Reguliere expressies kunnen ook worden gebruikt, dus als je schrijft "/var/log/httpd/*", kan het hele log worden opgehaald.
close
exit
Dit is een ontkoppelingsproces.
Hiermee is de creatie van het gereedschap voltooid.
2-2. uitvoeringsvoorbereiding
Controleer en registreer vóór de automatisering de SSH-hostkeyfingerprint van de verwachte server.
Als de server nog nooit via WinSCP is verbonden, zal u worden gevraagd of het veilig is om verbinding te maken. Als u op "Ja" drukt, wordt een aantekening van het drukken op "Ja" achtergelaten op een plaats die het Windows-registergebied wordt genoemd. Dit zorgt ervoor dat het systeem niet een tweede keer wordt gecontroleerd. Het is nodig om dit van tevoren te doen en informatie over de server op te slaan in het registergebied om er zeker van te zijn dat het veilig is om verbinding mee te maken, dus voer de volgende commando's uit op de opdrachtprompt.
"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒U wordt om een antwoord gevraagd, voer 'y' in.
close
exit
exit
test:testpassword@192.168.50.10" moet worden vervangen door "gebruikersnaam:wachtwoord@IP-adres".
Hiermee zijn de voorbereidingen afgerond.
2-3. uitvoering
Eindelijk is het tijd om het uit te voeren. Dubbelklik op 'file_get.bat'.
Succes als de map "yyyymmddhhmmss" is aangemaakt en de logs in de map zijn opgeslagen.
3. Automatisch upload hulpmiddel
De volgende stap is het maken van een tool om bestanden op een Linux server te zetten. De basisconstructie zal dezelfde zijn als die van het downloadinstrument.
3-1. maken
Maak een gereedschap met de volgende voorwaarden.
• Windows 10 als de uitvoeringsomgeving.
• De bestemmingsserver is Linux.
• IP adres 192.168.50.10.
Maak eerst een bat-bestand aan als startpunt voor de activering.
@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%
Zoals uitgelegd in de automatische download tool, is een kleine uitleg achterwege gelaten, maar het proces is om de bestanden op te slaan in de 'put_files' map in dezelfde map als waar het batch bestand wordt uitgevoerd in '/tmp/'. Het eigenlijke opslagproces wordt beschreven in "put_ftp.txt".
option batch on
option transfer binary
open test:testpassword@192.168.50.10
put %1% %2%
close
exit
Het commando "put %1% %2%" uploadt bestanden volgens het "bronbestand" en de "doelmap" die als argumenten zijn doorgegeven, hoewel een beetje uitleg is weggelaten omdat dit ook wordt uitgelegd bij het automatische downloadprogramma.
3-2. uitvoeringsvoorbereiding
Net als bij het automatische downloadprogramma worden vingerafdrukken vooraf gecontroleerd voordat ze worden uitgevoerd. (Niet vereist als het automatische downloadprogramma al een keer is uitgevoerd.)
Voer de volgende opdracht uit op de opdrachtprompt.
"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒U wordt om een antwoord gevraagd, voer 'y' in.
close
exit
exit
test:testpassword@192.168.50.10" moet worden vervangen door "gebruikersnaam:wachtwoord@IP-adres".
Hiermee zijn de voorbereidingen afgerond.
3-3. uitvoering
Eindelijk is het tijd om het uit te voeren. Dubbelklik op 'file_put.bat'.
Succes als de bestanden opgeslagen in 'put_files' zijn overgebracht naar de map '/tmp/'.
4. Andere commando's die vaak gebruikt kunnen worden
We hebben de basis van downloaden en uploaden geïntroduceerd, maar willen ook andere commando's beschrijven die vaak gebruikt kunnen worden.
4-1. sleutelauthenticatie
Eerder logde u in met wachtwoordauthenticatie volgens de volgende beschrijving.
open test:testpassword@192.168.50.10
"open gebruikersnaam:wachtwoord@IP-adres". Voor sleutelauthenticatie geldt het volgende.
open test@192.168.50.10 -privatekey=id_rsa.ppk
De '-privatekey=id_rsa.ppk' is het pad naar de sleutel. Aangezien het een relatief pad is, wordt aangenomen dat de sleutel (id_rsa.ppk) zich ook in de map bevindt waar het uitvoerbare bestand (bat-bestand) zich bevindt. Bijvoorbeeld, als de sleutel zich direct onder de C schijf bevindt, schrijf dan "-privatekey=C:\id_rsa.ppk".
4-2. De commandoregel oproepen
Om de commandoregel aan te roepen door middel van het WinSCP commando, schrijft u als volgt.
option batch on
option transfer binary
open test:testpassword@192.168.50.10
call sh /tmp/test.sh
close
exit
'test.sh' wordt uitgevoerd door 'call sh /tmp/test.sh'. Het is ook mogelijk om argumenten door te geven. Wanneer je argumenten doorgeeft, schrijf ze dan als "call sh /tmp/test.sh param1".
5. samenvatting
Het WinSCP commando is beschreven.
Als je normaal de WinSCP GUI gebruikt om dagelijks bestanden te loggen en te uploaden, kan je dit automatiseren door de tools te maken die in dit artikel beschreven worden. Het is misschien een kleine taak, maar het kan veel tijd in beslag nemen, behalve als het elke dag wordt gedaan. Wij moedigen u aan hulpmiddelen te creëren om de efficiëntie te verbeteren.
