A l’aide de ce script que vous lancerez depuis une tâche planifiée, vous pourrez monitorer un service.
Il suffit de renseigner(rajouter) les dernières ligne en dessous du script avec chacun de vos services à monitorer et après vous recevrez un email contenant tous les services arrêtés (ou vous ne recevrez pas d’email si tout est ok).
function VerifServices{
Param ([Parameter(Mandatory=$true)][String] $Service)
$Statut = (Get-Service $Service).Status
if ($Statut -match « Stopped »){
$global:Message = $global:Message + « <li><b> » + $Service + « </b></li> »
}
}
function Send-EmailServices {
if ( $global:Message -ne « ») {
#envoi d’un email si des services sont arrêtés
# attention à bien les envoyés sur un mail externe à l’infra si vous devez surveiller Exchange par exemple 😉
$enc = New-Object System.Text.utf8encoding
$BodyMessage = « <h2>Des problèmes sont rencontrés sur le serveur </h2><br><br>Services arrêtés :<UL> » + $global:Message + « </UL> »
Send-MailMessage -From « moi@gmail.com » -To « moi@gmail.com » -Subject « Problème : Service(s) arrêté(s) » -Body $BodyMessage -SmtpServer « smtp.free.fr » -Priority High -BodyAsHtml -Encoding $enc
}
}
#Appel des fonctions ici, ajoutez une ligne par service à monitorer.
VerifServices -Service « WinRM »
VerifServices -Service « defragsvc »
Send-EmailServices
Dan
28 avril 2020 at 20h11
bonjour,
J’ai essayé le script mais je ne comprend pas pourquoi il envoit toujours un mail quand il n’y aucun service de stoppé. J’ai beau chercher je ne comprends pas.
Pouvez vous me dire si il manque quelque chose ?
merci
Thomas Delahaye
30 avril 2020 at 11h18
Bonjour Dan,
Avez-vous bien remplacé les guillements « par des double-quote » ?
(c’est une erreur de rendu de page web et il ne faut pas d’espace entre les double-quote)
if ( $global:Message -ne "") {
...
}