Résolu Script WinSCP

Plus d'informations
il y a 10 mois 2 semaines - il y a 10 mois 2 semaines #33887 par Dead
Script WinSCP a été créé par Dead
Bonjour, 

J'ai ce script pour envoyer des fichiers en sftp avec WinSCP:
# Chemin local du répertoire
$repertoireLocal = "D:\RepSource\1\"
# Chemin du répertoire d'archives
$repertoireArchives = "D:\RepSource\Archives"

& "C:\Program Files (x86)\WinSCP\WinSCP.com" `
  /log="C:\Program Files (x86)\WinSCP\WinSCP.log" /ini=nul `
  /command `
    "open sftp://serveursftp@sftpcom:22/ -hostkey=`"`"hostkey`"`"" `
    "cd /" `
    "put $repertoireLocal* /" ` # Utiliser le chemin complet du répertoire local
    "exit"                       # Ajout de la commande exit

$winscpResult = $LastExitCode
if ($winscpResult -eq 0)
{
  Write-Host "Success"

  # Déplacer les fichiers vers le répertoire d'archives après le transfert réussi
  Move-Item -Path "$repertoireLocal*.xml" -Destination $repertoireArchives -Force
}
else
{
  Write-Host "Error"
}

exit $winscpResult


Sauf que lorsque je lance ce script, les fichiers sont bien transférés et ... ça s'arrête là, le script reste bloqué après le transfert. Il n'y a pas d'exit, ni de déplacement ensuite des fichiers dans Archives. 

Auriez vous une idée de ce qui cloche? 

Je vous remercie
Dernière édition: il y a 10 mois 2 semaines par Arnaud Petitjean. Raison: Mise en forme du code

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

Plus d'informations
il y a 10 mois 2 semaines #33894 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Script WinSCP
Hello Dead,

A mon avis, ton problème doit venir de ta ligne de commande WinSCP. On dirait qu'il ne fait pas d'exit.

Parce que la suite de ton code est correcte. 
Peut-être que l'exit code n'est pas 0... ?

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.

Plus d'informations
il y a 10 mois 2 semaines #33899 par Dead
Réponse de Dead sur le sujet Script WinSCP
Bonjour Arnaud,

Effectivement il ne fait pas d'exit, je ne comprends pas pourquoi.
L'exit Code est 1

Merci pour votre aide

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

Plus d'informations
il y a 10 mois 1 semaine #33900 par Dead
Réponse de Dead sur le sujet Script WinSCP
Bon, J'ai tenté différentes approches sur mon script, mais le souci persiste, le script bloque juste après l'envoi des fichiers. L'exit ne se fait, et la suite du script ne se fait donc pas. 

Auriez-vous une idée? 
Voici les logs WINSCP en pièce jointe.


Je vous remercie!!!!
Pièces jointes :

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

Plus d'informations
il y a 10 mois 1 semaine #33906 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Script WinSCP
Salut Dead,

Je t'avoue ne pas comprendre pourquoi ton script ne te rend pas la main...
Tu confirmes que le script ne continue pas après la copie de tes fichiers ?

Si c'est le cas, je vois plusieurs solutions de contournement.
1) J'essaierais d'exécuter ta ligne de commande avec la commande Start-Process avec le paramètre -PassThru pour récupérer l'ID du process crée. J'ajouterai également (ou pas, à tester...) le paramètre -Wait pour attendre la fin de l'exécution de ta commande.
2) Méthode bourrin : on lance le process dans un job en arrière plan (avec Start-Job), on monitore le fichier de log jusqu'à ce qu'on trouve la chaine "Copying finished". Puis si le process n'a pas rendu la main, on le tue (Stop-Process).

Mais j'ai bon espoir que ma 1ere proposition fonctionne et que tu n'aies pas besoin de faire la 2nde (moins élégante).

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.

Plus d'informations
il y a 10 mois 1 semaine #33917 par Dead
Réponse de Dead sur le sujet Script WinSCP
Bonjour Arnaud,

Oui, le script ne continue pas après la copie des fichiers.
Lorsque je lance la commande Start-Process, une fenêtre PowerShell s'ouvre et ne récupère par mon hôte distant...puis termine en erreur.

Par rapport à mon script plus haut, vous le feriez comment vous?

Je vous remercie pour votre aide!

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

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