Question besoin d'aide pour un scrip de test connexion FTP

Plus d'informations
il y a 9 ans 9 mois #21899 par rousseau
Bonjour,


je débute dans les script powershell, et j’avoue que je sèche.

mon besoin est d'établir une connexion FTP et de connaitre le retour de cette connexion afin de transmettre le résultat à mon nagios via nrpe.

Se test de connexion ne peut être exécuté que par une seul machine windows car elle traverse un VPN et seul la machine sur lequel le script doit être lancé est autorisé à se connecter.

je ne dépose aucun fichier et je ne vérifie pas s'il existe des fichiers présent.

j'ai juste besoin d'ouvrir et fermer la connexion ftp.

je trouve plein d'exemple sur les dépôts/suppressions de fichiers mais aucun qui traite du code retour de la connexion.

j'ai écrit se bout de code à partir de ce que j'ai trouvé sur différents site internet parlant de powershell.

La multitude de Write_Output n'est la que pour le débogage et me permettre de comprendre pourquoi cela ne marche pas.


[code:1]# Config
Write-Debug \"debut\"

$Username = \"test\"
$Password = \"test\"
$RemoteFile = \"ftp://ip de tes/\"

write-output \" debut du test\"

# Create FTP Rquest Object
write-output \"creation connexion \"
#[System.Net.FtpWebRequest]$FTPRequest = [System.Net.FtpWebRequest]::Create(\"$RemoteFile\"«»)
Write-Output \"connexion en cour\"
$FTPRequest = [System.Net.FtpWebRequest]$FTPRequest
#$FTPRequest.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile
Write-Output \" passage des arguments de conenxion\"
$FTPRequest.Credentials = new-object System.Net.NetworkCredential($Username, $Password)

#Write-Output $FTPRequest

if ($Error.Count -eq 0) {Write-error \"reussite\"}

Write-Output $Error.Count

try
{

Write-output(\"Test ok\"«»)
$FTPRequest = $FTPRequest.GetResponse()
}
catch [System.Net.WebException]
{
#$FTPRequest = $_.Exception.Response
Write-output(\"test hs\"«»)
Write-output $FTPRequest
Write-output $_.Exception.ToString()
}

$int = [int]$FTPRequest.StatusCode
write-output $int
$status = $FTPRequest.StatusCode
write-output $status

return \"$int $status\"
[/code:1]


Par avance merci au grand gourou qui pourra me mettre sur la piste.


Cordialement.<br><br>Message édité par: christr87, à: 6/06/16 14:39

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

Plus d'informations
il y a 9 ans 9 mois #21900 par Philippe
salut christr87

Par avance merci au grand gourou qui pourra me mettre sur la piste.

sans être un gourou, je peut de conseillé de ne pas mettre de write-output dans ton code car il sont renvoyer avec les données de ton return
utilise plutôt write-host ou write-debug pour un affichage sur la console

ceci étant dis, comment appel tu ton script ?

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

Plus d'informations
il y a 9 ans 9 mois #21903 par rousseau
comme je suis en phase de développement, j'utilise POWERSHELL ISE pour exécuter mon script, a terme il sera lancé en automatique via nrpe et psexec.


pour le write-output, c’était la seul solution qu j'avais trouvé. je vais utiliser les autres commandes.

merci.

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

Plus d'informations
il y a 9 ans 9 mois #21907 par Philippe

pour le write-output, c’était la seul solution qu j'avais trouvé. je vais utiliser les autres commandes.

donc remplace tous les write-debug/error/output par write-host pour te simplifier la vie

comme je suis en phase de développement, j'utilise POWERSHELL ISE pour exécuter mon script, a terme il sera lancé en automatique via nrpe et psexec.

on verra ce problème après !!

si ce n'est pas le cas tu peut utilisé cette exemple pour créé ton script

pour la gestion d'erreur ici Riza qui a eu a résoudre la question

FtpWebRequest n'effectue la connexion au serveur FTP qu'après un getreponse ou un GetRequestStream ou un GetResponseStream donc ton test d'erreur ne fonctionne pas avant

dernière chose, dans ISE $Error.Count s'incrémente à chaque erreur il ne revient pas à zero à chaque instruction !!
tu a ici un tuto sur le sujet fait par Laurent Dardenne

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

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