Comment télécharger des fichiers avec FTP dans PowerShell
-
Utilisez l’objet
System.Net.WebClient
pour télécharger des fichiers avec FTP dans PowerShell -
Utilisez l’objet
FtpWebRequest
pour télécharger des fichiers avec FTP dans PowerShell - Télécharger plusieurs fichiers avec FTP dans PowerShell

Le FTP (File Transfer Protocol) est un protocole réseau standard utilisé pour transférer des fichiers entre un client et un serveur sur un réseau informatique. Un serveur FTP est une solution courante pour faciliter les transferts de fichiers via Internet.
Nous pouvons télécharger des fichiers sur un serveur FTP et télécharger des fichiers depuis un serveur FTP. PowerShell est un outil de script qui peut automatiser les tâches de téléchargement et de téléversement FTP.
Ce tutoriel vous apprendra à télécharger des fichiers sur un serveur FTP à l’aide de PowerShell.
Utilisez l’objet System.Net.WebClient
pour télécharger des fichiers avec FTP dans PowerShell
Nous pouvons utiliser l’objet System.Net.WebClient
pour télécharger des fichiers sur un serveur FTP. Il envoie ou reçoit des données de toute ressource locale, intranet ou Internet identifiée par une URI.
Tout d’abord, nous devons créer une instance d’un objet System.Net.WebClient
et l’assigner à une variable $WebClient
. La cmdlet New-Object
crée une instance d’objet .NET Framework ou COM.
$WebClient = New-Object System.Net.WebClient
Maintenant, spécifiez un fichier et une URI FTP. Utilisez un nom d’utilisateur et un mot de passe valides pour le serveur. Remplacez donc la valeur dans $FTP
par vos détails FTP.
$File = "C:\New\car.png"
$FTP = "ftp://ftp_user:ftp_password@ftp_host/car.png"
Ensuite, créez un objet FtpWebRequest
et configurez-le comme indiqué ci-dessous. La propriété Credentials
est utilisée pour spécifier les identifiants pour se connecter à un serveur FTP.
La propriété UseBinary
définit une valeur booléenne pour spécifier le type de données pour les transferts de fichiers. True
indique que les données à transférer sont binaires
, et false
indique que les données à transférer sont texte
.
Cette méthode utilise un mode de transfert binaire pour transférer des fichiers sans modification ni conversion. En conséquence, le même fichier sur l’ordinateur source sera téléchargé sur le serveur.
$FTPRequest = [System.Net.FtpWebRequest]::Create("$remote_file")
$FTPRequest = [System.Net.FtpWebRequest]$FTPRequest
$FTPRequest.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile
$FTPRequest.Credentials = New-Object System.Net.NetworkCredential($username, $password)
$FTPRequest.UseBinary = $true
$FTPRequest.UsePassive = $true
# Read the file for upload
$FileContent = gc -en byte $local_file
$FTPRequest.ContentLength = $FileContent.Length
# Get stream request by bytes
$run = $FTPRequest.GetRequestStream()
$run.Write($FileContent, 0, $FileContent.Length)
# Cleanup
$run.Close()
$run.Dispose()
Lors de l’utilisation d’un objet FtpWebRequest
pour télécharger un fichier vers un serveur, nous devons écrire le contenu du fichier dans le flux de requête obtenu en appelant la méthode GetRequestStream
.
Nous devons écrire dans le flux et le fermer avant d’envoyer la requête.
Télécharger plusieurs fichiers avec FTP dans PowerShell
Parfois, nous pouvons avoir besoin de télécharger plusieurs fichiers sur un serveur FTP. Télécharger des fichiers un par un prendra beaucoup de temps.
Ainsi, nous avons créé ce script PowerShell pour télécharger plusieurs fichiers sur un serveur FTP en une seule fois.
Tout d’abord, créez un objet System.Net.WebClient
et assignez-le à une variable $WebClient
.
$WebClient = New-Object System.Net.WebClient
Spécifiez le répertoire où tous les fichiers que vous souhaitez télécharger sont présents.
$Dir = "C:\New"
Ensuite, spécifiez l’URI de votre serveur FTP.
$FTP = "ftp://ftp_user:ftp_password@ftp_host/docs/"