IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Déposer un fichier sur un serveur FTP [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut Déposer un fichier sur un serveur FTP
    Bonjour a tous ,

    pour un besoin spécifique je doit déposer un fichier sur un serveur sftp j'ai cette erreur pendant l'appel a la procédure $webclient.UploadFile

    ci joint le code
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    $ftp = "Sftp://*****"
    $username = "*****"
    $password = ******"
    # $cred = Get-Credential
    $webclient = New-Object System.Net.WebClient 
    $webclient.Credentials = New-Object System.Net.NetworkCredential($username,$password)  
    $files = get-childitem $source -recurse -force
     
    $Monthcreate = (Get-Date).month
     
    $source='\\dwh\EDI\EDIExchange\Files\'
     
    $destination ='C:\FolderB'
     
    Add-Type -assembly 'System.IO.Compression'
     
    Add-Type -assembly 'System.IO.Compression.FileSystem'
     
    $contrats=get-childitem -Path $source     |  where {$_.name -like "*contrats*"          -and ($_.CreationTime).month -eq $Monthcreate}            |Compress-Archive -DestinationPath $source\Assurone_PTF.zip         -force   -verbose   #   | Move-Item  -Destination $destination   -Verbose  -Force
    $contratsftp=get-childitem -Path $source     -Filter *.zip
    $uri = New-Object System.Uri($ftp+$contratsftp.Name) 
     
    $webclient.UploadFile($uri, $contratsftp.FullName)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Exception lors de l'appel de «*UploadFile*» avec «*2*» argument(s)*: «*Une exception s'est produite lors d'une requête WebClient.*»
    Au caractère Ligne:17 : 5
    +     $webclient.UploadFile($uri, $item.FullName)
    +     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : WebException
    merci
    Images attachées Images attachées  

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mai 2020
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2020
    Messages : 288
    Points : 386
    Points
    386
    Par défaut
    Bonjour,

    J'ai analyser votre code te j'ai remarqué ceci, dans votre $contrats vous finissez par déplacer votre .zip dans $destination.

    Or dans votre $contratsftp vous lui spécifié $source avec un filter .zip ce qui signifie que normalement dans votre $source, il n'y a pas de fichiers .zip mais ils seront plutôt dans le $destination.
    La folie, c’est se comporter de la même manière et s’attendre à un résultat différent.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    j'utilise plus le variabe $destination

    je fait le zip dans $source du coup j'aurai le fichie zip dans le méme répertoire
    Images attachées Images attachées   

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mai 2020
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2020
    Messages : 288
    Points : 386
    Points
    386
    Par défaut
    Effectivement, je n'avait pas vu le # pour le commentaire à la fin.

    Que vous renvois la commande $contratsftp.Name et $contratsftp.FullName ?
    La folie, c’est se comporter de la même manière et s’attendre à un résultat différent.

  5. #5
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    $contratsftp.Name le name du fichier zip

    et $contratsftp.FullName ? le chemin complet de mon fichier
    Images attachées Images attachées  

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mai 2020
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2020
    Messages : 288
    Points : 386
    Points
    386
    Par défaut
    Très bien j'ai pu faire des tests et je suis tombé sur la même erreur que vous.

    Mon problème venait de la variable $uri qui m'affichait uniquement le chemin de mon FTP ftp//folder/ et ne prenait pas en compte le +$constratsftp.Name

    Quand est-il de vous ?
    La folie, c’est se comporter de la même manière et s’attendre à un résultat différent.

  7. #7
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    si je fait appel a la variable $uri j'ai bien l'adresse du serveur FTP concaténer avec le nom du fichier source
    Images attachées Images attachées  

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mai 2020
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2020
    Messages : 288
    Points : 386
    Points
    386
    Par défaut
    J'ai effectué mon test depuis un serveur FTP je me demande si un le fait que ce soit un SFTP pourrait avoir une incidence...

    J'ai pu remarqué que certains utilise un module Posh-SSH pour établir une connexion SFTP

    D'après mes tests sur un serveur FTP et avec des chemins dans le .UploadFile réel votre configuration est bonne sur un serveur FTP, pouvez-vous faire un test de votre code mais sur un serveur FTP pour confirmer ma théorie ? Si vous en avez un à disposition bien sûr.
    La folie, c’est se comporter de la même manière et s’attendre à un résultat différent.

  9. #9
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    avec ftp j'ai une autre erreur de connexion refusé
    Images attachées Images attachées  

  10. #10
    Membre averti
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mai 2020
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2020
    Messages : 288
    Points : 386
    Points
    386
    Par défaut
    Effectivement mais ce n'est pas dû au FTP puisque vous avez également cette erreur sur la capture de 14h51

    Accèdez-vous à ce serveur via FileZilla / WInSCP par exemple ?
    La folie, c’est se comporter de la même manière et s’attendre à un résultat différent.

  11. #11
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    De ce que je lit, la méthode UploadFile de la classe System.Net.WebClient ne support pas le protocole sftp

    Le protocole sftp fonctionne au-dessus de ssh :
    https://fr.wikipedia.org/wiki/SSH_Fi...nsfer_Protocol

    Utilise le module Posh-SSH :
    https://www.powershellmagazine.com/2...rshell-module/
    https://mangolassi.it/topic/21223/po...ing-posh-ssh/2

    Ou la librairie WinSCPnet.dll :
    https://winscp.net/eng/docs/library_powershell
    https://codingbee.net/powershell/pow...linux-machines

    NB : Il n'existe pas de RFC décrivant le protocole SFTP, mais seulement un brouillon :
    https://tools.ietf.org/html/draft-ie...sh-filexfer-13

  12. #12
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    mon problème a été résolu hier suite au changement de la méthode vers un appel de winscp

    en faite je crée mon script winscp et je le fait appel a travers Powershel et il a bien fonctionné

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    & "C:\Program Files (x86)\WinSCP\WinSCP.com"    /script="\\dwh\EDI\EDIExchange\Files\EQUITE_SANTE\WinscpScrip_Assurone_PTF.txt" /log="\\dwh\EDI\EDIExchange\Files\EQUITE_SANTE\log_winscp\log_contrat.txt"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/04/2016, 12h06
  2. Applet pour upload de fichiers sur un serveur via WebDav
    Par melvar dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 08/04/2008, 14h37
  3. Chemin pour enregistrer un fichier sur le serveur
    Par Scrountch dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 11/03/2008, 11h52
  4. un conseil pour exporter des fichier sur un serveur ftp
    Par pierrot67 dans le forum Delphi
    Réponses: 1
    Dernier message: 03/12/2006, 11h15
  5. Réponses: 6
    Dernier message: 08/04/2005, 03h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo