-
Notifications
You must be signed in to change notification settings - Fork 2
Module WINSCP (EN FR)
Sébastien Maltais edited this page Sep 1, 2020
·
4 revisions
EN
This module use the Winscp assembly. You dont have to install WinSCP on the script server. This module give all the winscp functionnality.
FR
Ce module utilise l'assemblage Winscp. Vous n'avez pas besoin d'installer WINSCP pour l'éxécuter sur le serveur de script. Ce module donne toutes les fonctionnalités winscp.
Prerequisites: Powershell 5.1
Module installation / Installation du module:
install-module -name winscpCreate SFTP connexion / Creation d'une connexion SFTP
# Formated date for log filename / Format de la en string pour nommer le fichier log
$date_log = (get-date).tostring("ddMMyyyy")
# Log Folder to create before running de script / Dossier ou le log sera créer. il doit être créer avant l'éxécution
$log_folder = "c:\power\"
# Log path with filename / Chemin complet du fichier log
$log = $log_folder + "log_" + $date_log + ".txt"
# SFTP server address or hostname / Nom de l'hôte distant
$srv = "192.168.174.134"
# Port TCP/IP
$port = "22"
# SFTP username and password | Nom d'utilisateur et mot de passe
$username = "test"
$password = ConvertTo-SecureString "password" -AsPlainText -Force
$credential = New-Object -typename System.Management.Automation.PSCredential -argumentlist $username, $password
# FTP mode (passive,active)
$ftpmode = "passive"
# SSHHOSTKEYFINGERPRINT Extracted from a previous connexion with Winscp GUI / Fingerprint du serveur distant pour l'encyrption. Doit être copié à partir du gui du logiciel WINSCP de windows.
$sshkeyfingerprint = "ssh-ed25519 256 dXJkkP6V2VVmyfy1TxYQlbQsrhXbbayq/cws8jwMz2Q="
# Protocole (FTP,SFTP)
$protocole = "SFTP"
# Winscp Session options / Création des options de la session WinSCP
$session_options = New-WinSCPSessionOption -HostName $srv -Credential $credential -FtpMode $ftpmode -PortNumber $port -Protocol $protocole -SshHostKeyFingerprint $sshkeyfingerprint
# Active Connexion to SFTP Server / Activation de la connexion au serveur SFTP dans une variable.
$connexion = New-WinSCPSession -SessionOption $session_options -SessionLogPath $logUpload files to the server / Téléverser des fichiers sur le serveur distant
# upload folder
$upload = "C:\power\upload\"
$files_list = (Get-ChildItem -path $upload -Recurse).fullname
foreach($file in $files_list){
Send-WinSCPItem -LocalPath $file -WinSCPSession $connexion
}Download files from the server / Téléchargement de fichiers à partir du serveur
# Download folder
$download = "C:\power\download\"
$download_list = (Get-WinSCPChildItem -WinSCPSession $connexion).FullName
foreach($file in $download_list){
Receive-WinSCPItem -RemotePath $file -WinSCPSession $connexion -LocalPath $download
}Close the Winscp SFTP connexion / Fermeture de la session WINSCP
Remove-WinSCPSession -WinSCPSession $connexion