Question Aide réalisation script test connectivité serveurs

Plus d'informations
il y a 9 ans 5 mois #22323 par Dechaseaux
Bonjour à tous,

je suis novice en powershell, je m'y suis mis il y a de ça 1 jour.
J'aimerais réaliser un script me permettant de pinger les serveurs de notre infra et qui permettrait d'envoyer un mail d'alerte en cas de non joignabilité après une certaine période.

Mon code pour le moment :

[code:1]
$test= Test-Connection 10.28.13.225 -Quiet -Verbose

Do {
Test-Connection 10.28.13.225 -Quiet -Verbose
} while ($test -contains $true)

# Envoi d'un mail d'alerte

#Encodage UTF8
$encodingMail = [System.Text.Encoding]::UTF8

#Destinataire de l'email
$To = \"jdechaseaux@roval.fr\"
#L’émetteur de l'email
$From =\"$$$$$$$$$$$$$\"

#Le Sujet de l'email
$Subject = \"Alerte Perte Connectivité nomduserveur\"

#Le serveur SMTP (ex : votre serveur Exchange)
$SmtpServer = \"$$$$$$$$$$$$$\"

#Le corps de votre message
$body = \"<center>Attention, impossible de joindre le serveur $$$$$$$$$$$ le $date</center>\"

#Commande d'envoi
Send-MailMessage -to $To -From $From -Subject $Subject -SmtpServer $SmtpServer -BodyAsHtml $body -Encoding $encodingMail

Start-Sleep -Seconds 600[/code:1]


Cela fonctionne plutôt bien. Mais j'ai quelques problèmes :

1) J'aimerais qu'une fois l'attente des 600 secondes terminée : le script recommence, pour à nouveau surveiller la connectivité du serveur.

2) Il faudrait idéalement aussi que l'envoi du mail d'alerte ne se fasse pas dès la perte de connectivité, car des pertes de paquets occasionnelles c'est possible ; il faudrait par exemple envoyer le mail d'alerte si l'interruption est de plus de x secondes.

3] Et enfin en cas de reboot volontaire du serveur surveillé : un mail d'alerte serait tout de même envoyé, et là j'ai vraiment aucune idée de comment contourner ça.

Donc voilà, si vous pouvez m'aider à peaufiner mon script et mes lacunes ce serait sympas ;)

Par avance merci.

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

Plus d'informations
il y a 9 ans 5 mois #22327 par Laurent Dardenne
Salut,
qq idées rapido :

Pour le premier point voir le paramètre -AsJob du cmdlet Test-Connection.

Pour le 2 il faut calculer la durée en mémorisant l'état précédent du serveur ciblé.

Pour le 3, utiliser le forwarding event ? C'est le serveur qui t'informe et pas le script qui recherche l'info, le script surveille un event.

Alors 'rapido' parce que c'est rapide et facile à écrire :) , à coder déjà moins et ce n'est pas le plus simple pour débuter :whistle:

je te conseille de scinder ton traitement, un pour le test de connexion l'autre pour l'envoi de mail.

Tu peux aussi passer un peu de temps en recherchant sur le net, par exemple \"C# network monotoring\", tu peux trouver d'autres pistes.

Tutoriels PowerShell

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

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