Question script récupération fichiers ftp avec filtre sur le nom du fichiers

Plus d'informations
il y a 7 mois 2 semaines - il y a 7 mois 2 semaines #33701 par stan65
Bonjour,

Je cherche à télécharger des fichiers sur un serveur SFTP avec une syntaxe particulière "variable du type XX.WW.BB.ZIP.  J'arrive bien à lister mes fichiers spécifiques mais après impossible de les télécharger.

Voici mon script: 
# Variables de connexion au serveur SFTP
$hostname = "toto"
$username = "aa"
$password = "bb"

$remotePath = "/telecharge/"
$sftpPassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$sftpCredential = [pscredential]::New($username,$sftpPassword) 

# Chemin local de destination des fichiers
$localPath = "D:\depose" 

# Créer le dossier de destination s'il n'existe pas
if (-not (Test-Path -Path $localPath)) {   
   New-Item -ItemType Directory -Path $localPath | Out-Null
} 

# Connexion au serveur SFTP
$session = New-SFTPSession -ComputerName $hostname -Credential $sftpCredential 

# Télécharger les fichiers
Get-SFTPFile -SessionId $session.SessionId -RemoteFile "$remotePath/ww.xx.*.*.zip" -LocalPath $localPath
Get-SFTPFile -SessionId $session.SessionId -RemoteFile "$remotePath/ww.zz.*.*.zip" -LocalPath $localPath 

# Fermer la session SFTP
Remove-SFTPSession -SessionId $session.SessionId

Merci
Dernière édition: il y a 7 mois 2 semaines par Arnaud Petitjean. Raison: Remise en forme du code avec la base [code]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 2 semaines #33713 par Arnaud Petitjean
Bonjour Stan,

Malheureusement je n'ai pas de serveur SFTP sous le coude pour pouvoir tester.

Quel module utilises-tu ? Car ces commandes ne sont pas natives à PowerShell. J'ai installé le module Posh-SSH qui est très connu pour ce genre de besoin mais l'équivalent de la commande Get-SFTPFile était Get-SFTPItem...

Au besoin essaie Posh-SSH. C'est un très bon module.

A mon avis il faut que tu fasses les choses en 2 temps : 
  1. Récupérer les fichiers dans une variable
  2. Faire une boucle (foreach) pour récupérer chacun des fichiers
En effet, il n'est pas sûr que le * soit interprété par la commande comme toi tu l'entends.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.099 secondes
Propulsé par Kunena