Automatiser les transferts SFTP avec WinSCP

Images WinSCP.

Date de publication:

Mise à jour :


Articles > Automatiser les transferts SFTP avec WinSCP

Statut 2026 et utilisation sûre

Conclusion : utilisez WinSCP.com avec un fichier de script, épinglez l'empreinte digitale de la clé hôte SSH du serveur, gardez les secrets hors de la source et traitez les arguments, activez la journalisation et faites échouer la tâche lorsque WinSCP renvoie un code de sortie différent de zéro.

Ce que vous apprendrez

  • Comment les opérations scriptées open, get et put s'intègrent dans un flux de travail par lots.
  • Comment la vérification de la clé d'hôte empêche une tâche sans surveillance de faire confiance au mauvais serveur.
  • Comment rendre les transferts reproductibles avec des journaux, des chemins explicites et une gestion des erreurs.

À qui s'adresse : les administrateurs Windows automatisant le transfert de fichiers vers un point de terminaison SFTP connu.

Position 2026 : Le script original ci-dessous contient des informations d'identification en texte brut et accepte un hôte de manière interactive. Conservez-le uniquement comme matériel d’apprentissage historique ; ne déployez pas ces secrets et ne contournez pas les vérifications des clés d'hôte. Préférez les clés SSH ou un magasin secret approuvé et testez le comportement de récupération.

Note de sécurité : les commandes et exemples de configuration de l'article d'origine n'ont pas été rejoués dans un environnement de production actuel. Avant toute application, vérifiez les versions prises en charge, les sauvegardes, les contrôles d'accès et la procédure de retour arrière dans un environnement de test isolé.

Sources primaires officielles

Vue d’ensemble

Ce guide montre comment automatiser des téléchargements et des téléversements SFTP avec l’interface en ligne de commande de WinSCP.

Exécutez les commandes fournies par WinSCP en utilisant l'invite de commande. Sans surprise, WinSCP fournit des commandes. Vous utilisez normalement 'WinSCP.exe', mais 'WinSCP.com' est également disponible. Vous ne verrez presque jamais le dossier " C:\Program Files (x86)\WinSCP " dans la destination du raccourci, car vous l'ouvrez généralement à partir du raccourci, mais si vous regardez la destination du raccourci, " WinSCP.com " devrait également y être stocké. C'est ici que l'outil est créé.

Table des matières

  1. Qu'est-ce que la commande WinSCP ?
  2. Outil de téléchargement automatique
  3. Outil de téléchargement automatique
  4. Autres commandes qui peuvent être utilisées fréquemment
  5. résumé

1. Qu'est-ce que la commande WinSCP ?

WinSCP.com expose en ligne de commande les principales opérations disponibles dans l’interface graphique. Un fichier de script permet ainsi d’exécuter les mêmes transferts sans intervention manuelle.

1-1. Ce que vous pouvez faire.

Vous pouvez télécharger et envoyer des fichiers, créer des dossiers, appeler des commandes shell et bien d'autres choses encore.

Les commandes les plus courantes sont les suivantes.

open : ouvre une session.

get : télécharge un fichier distant.

put : envoie un fichier local.

exit : ferme WinSCP.

1-2. Ce que vous ne pouvez pas faire.

Les opérations de transfert simples sont prises en charge directement. Pour une sélection complexe — par exemple filtrer des fichiers selon leur date de modification — combinez le script WinSCP avec un traitement explicite côté Windows ou serveur.

La commande 'call' peut invoquer une commande distante, à condition que le protocole et les droits du compte l’autorisent.

2. Outil de téléchargement automatique

L’exemple télécharge automatiquement des journaux depuis un serveur Linux vers un poste Windows.

2-1. Création

L’exemple repose sur les conditions suivantes.

• Windows 10 comme environnement d'exécution.

• Le serveur à acquérir est Linux.

• Adresse IP 192.168.50.10.

Tout d'abord, créez un fichier bat comme point de départ pour l'activation.

file_get.bat


@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% 

À l'exception de la dernière ligne, le reste du processus est une commande Windows. Contenu.

@setlocal enabledelayedexpansion

Paramètres pour les variables d'environnement retardées. En bref, cette description empêche de donner une valeur à une variable qui pourrait ne pas être reflétée.

@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%

Le processus d'obtention de yyyymmddhmmss à partir de l'heure actuelle et enfin de le mettre dans la variable FOLDER.

@mkdir %FOLDER%

Créez un dossier 'yyyymmddhmmss' directement sous le dossier où le lot a été exécuté.

@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

WinSCP.com (commande WinSCP). L'exécution exécute les commandes énumérées dans "ftp.txt" dans le même dossier où est stocké le fichier batch. Passez le chemin du dossier que vous venez de créer comme argument.

Ceci termine la création du fichier de l'appelant. La commande WinSCP est ensuite décrite dans "ftp.txt".

ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
get /var/log/httpd/access_log %1%\
close
exit

Contenu.

option batch on

Pour les processus qui nécessitent une interrogation, le système suppose automatiquement que "Non" a été sélectionné et exécute automatiquement le processus. Si vous l'incluez, il écrasera automatiquement tous les noms de fichiers en double.

(Vous pouvez créer un dossier "yyyymmddhmmss" et y placer les fichiers, afin d'éviter les doublons de noms de fichiers.)

option transfer binary

Ce paramètre permet de transférer les données en mode binaire.

open test:testpassword@192.168.50.10

'nom d'utilisateur:mot de passe@adresse IP'. Connectez-vous à l'adresse IP "192.168.50.10".

get /var/log/httpd/access_log %1%\

Stockez '/var/log/httpd/access_log' dans le dossier 'yyyymmddhhmmss'. ('%1%' est l'argument passé dans file_get.bat)

Des expressions régulières peuvent également être utilisées. Ainsi, si vous écrivez "/var/log/httpd/*", l'ensemble du journal peut être récupéré.

close
exit

C'est un processus de déconnexion.

La création de l'outil est ainsi terminée.

2-2. préparation à la mise en œuvre

Avant l’automatisation, vérifiez et enregistrez l’empreinte de la clé d’hôte SSH du serveur attendu.

Si le serveur n'a jamais été connecté via WinSCP, il vous sera demandé si la connexion est sûre. Si vous appuyez sur "Oui", un enregistrement de cette action est laissé dans un endroit appelé zone de registre de Windows. Cela permet d'éviter que le système soit contrôlé une seconde fois. Lors de l'exécution de l'outil, il est nécessaire de le faire à l'avance et d'enregistrer les informations sur le serveur dans la zone de registre pour s'assurer qu'il est sûr de se connecter, donc exécutez les commandes suivantes à l'invite de commande.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Une réponse vous est demandée, entrez 'y'.
close
exit
exit

test:testpassword@192.168.50.10" doit être remplacé par "nom d'utilisateur:mot de passe@adresse IP".

Les préparatifs préliminaires sont ainsi terminés.

2-3. mise en œuvre

Enfin, il est temps de la mettre en œuvre. Double-cliquez sur 'file_get.bat'.

Succès si le dossier "yyyymmddhhmmss" est créé et que les journaux sont stockés dans le dossier.

3. Outil de téléchargement automatique

L'étape suivante consiste à créer un outil permettant de placer des fichiers sur un serveur Linux. La construction de base sera la même que celle de l'outil de téléchargement.

3-1. réalisation de

Créez un outil avec les conditions suivantes.

• Windows 10 comme environnement d'exécution.

• Le serveur de destination est Linux.

• Adresse IP 192.168.50.10.

Tout d'abord, créez un fichier bat comme point de départ pour l'activation.

file_put.bat


@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%

Comme cela a été expliqué dans l'outil de téléchargement automatique, une petite explication est omise, mais le processus consiste à stocker les fichiers dans le dossier 'put_files' dans le même dossier où le fichier batch est exécuté dans '/tmp/'. Le processus de stockage réel est décrit dans "put_ftp.txt".

put_ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
put %1% %2%
close
exit

La commande "put %1%\ %2%" télécharge les fichiers en fonction du "fichier source" et du "dossier de destination" passés en arguments, bien qu'une petite explication soit omise car cela est également expliqué à l'outil de téléchargement automatique.

3-2. préparation à la mise en œuvre

Comme pour l'outil de téléchargement automatique, les empreintes digitales sont vérifiées au préalable avant l'exécution. (Non requis si l'outil de téléchargement automatique a été exécuté une fois.)

Exécutez la commande suivante à l'invite de commande.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Une réponse vous est demandée, entrez 'y'.
close
exit
exit

test:testpassword@192.168.50.10" doit être remplacé par "nom d'utilisateur:mot de passe@adresse IP".

Les préparatifs préliminaires sont ainsi terminés.

3-3. mise en œuvre

Enfin, il est temps de la mettre en œuvre. Double-cliquez sur 'file_put.bat'.

Succès si les fichiers stockés dans 'put_files' sont transférés dans le dossier '/tmp/'.

4. Autres commandes qui peuvent être utilisées fréquemment

Nous avons présenté les fonctions de base de téléchargement et d'envoi, mais nous souhaitons également décrire d'autres commandes qui peuvent être utilisées fréquemment.

4-1. authentification par clé

Plus tôt, vous vous êtes connecté avec une authentification par mot de passe selon la description suivante.

open test:testpassword@192.168.50.10

'ouvrir nom d'utilisateur:mot de passe@adresse IP'. Pour l'authentification par clé, les règles suivantes s'appliquent.

open test@192.168.50.10 -privatekey=id_rsa.ppk

Le '-privatekey=id_rsa.ppk' est le chemin vers la clé. Comme il s'agit d'un chemin relatif, on suppose que la clé (id_rsa.ppk) se trouve également dans le dossier où se trouve le fichier exécutable (fichier bat). Par exemple, si la clé est située directement sous le lecteur C, écrivez "-privatekey=C:\id_rsa.ppk".

4-2. Appeler le shell

Pour invoquer le shell au moyen de la commande WinSCP, écrivez comme suit.

option batch on
option transfer binary
open test:testpassword@192.168.50.10
call sh /tmp/test.sh
close
exit

Le fichier 'test.sh' est exécuté par 'call sh /tmp/test.sh'. Il est également possible de passer des arguments. Lorsque vous passez des arguments, écrivez-les comme "call sh /tmp/test.sh param1".

5. résumé

La commande WinSCP a été décrite.

Si vous utilisez normalement l'interface graphique WinSCP pour enregistrer et télécharger des fichiers sur une base quotidienne, vous pouvez automatiser cette opération en créant les outils décrits dans cet article. Il peut s'agir d'une tâche mineure, mais elle peut prendre beaucoup de temps, sauf si elle est effectuée tous les jours. Nous vous encourageons à créer des outils pour améliorer l'efficacité.

■INFORMATION

Articles


■PROFILE

Profil


■Contact

Contact