locked
Astuce : Surveillance services Windows avec alerte par e-mail RRS feed

  • Discussion générale

  • Je vous propose un script PS qui permet de surveiller un/plusieurs services Windows ou autres services spécifiques et de les relancer en cas d'un arrêt subit

    Note : ce script est valide sous les OS Clients & Serveurs de Microsoft (il suffit d'avoir Powershell Vx)

     

    Exemple : 

    -------------

     

    Nous prenons l'exemple de LogMeIn (logiciel de prise de contrôle à distance)

    Nous allons supposer que ce logiciel se désactive souvent suite à un arrêt inopiné du service LogMeIn

    Ce script PowerShell va surveiller le service LogMeIn et le redémarrera automatiquement en cas d'arrêt, sans aucune intervention J

    De plus, il nous avertira par e-mail de l'heure/minute/seconde de l'arrêt

     

    Script PowerShell:

    ----------------------

     

    1.Lancez PowerShell

    2.Saisissez le code suivant : (Faites copier/coller c'est plus simple :) | ! : Il suffit de faire clique droit de la souris dans la console PS et le code sera collé automatiquement)

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    $serviceName = 'LogMeIn'

    $query = "Select * From __InstanceOperationEvent

              within 3 

              Where TargetInstance ISA 'Win32_service'

              AND TargetInstance.Name='$serviceName'" 

    $action = 

    {

        if ( (Get-Service $serviceName).Status -ne 'running' )

        {

            Write-Warning "Démarrage du service $serviceName"

            Start-Service $serviceName

            $expediteur = "alertes@hichamsoft.fr"

            $destinataire = "hicham.kadiri@hichamsoft.fr"

     $serveur = "auth.smtp.1and1.fr"

     $objet = "Alerte - Service $serviceName arrêté" + [System.DateTime]::Now

    $texte = "Le service $serviceName a été arrêté redémarré suite à un arrêt critique"

     

    $message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte

    $SMTPclient = new-object System.Net.Mail.SmtpClient $serveur

    $SMTPclient.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

     

    $SMTPclient.Send($message)

        }

    Register-WMIEvent -query $query -sourceIdentifier "ArrêtService" –action $action

     

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    PS : avant de copier le code, vous devez changer le contenu des variables suivantes (en fonction du nom service que vous voulez surveiller et aux informations du serveur SMTP, ID et MDP)

     

    Variables à changer :

     

    $servicename : nom du service que vous voulez surveiller

    $expediteur : adresse e-mail d'envoi d'alerte

    $destinataire : adresse de réception d'alerte

    $serveur : serveur SMTP pour l'envoi des alertes 

     

    Une fois le script lancé, vous devez voir apparaître le message suivant :

    Le message nous montre qu'un travail (numéro 1 "ID 1") a été crée, on peut à tout moment obtenir la liste des travaux en cours sur Powershell en saisissant la commande suivante :

    Get-job

     

    3. Aller sur Démarrer -> et saisissez services.msc -> Validez par Entrée

    La liste des services Windows s'affiche.

    Maintenant qu'on a lancé le script, on va arrêter manuellement le service LogMeIn pour voir le résultat

    IMPORTANT : il faut laisser la fenêtre de la console PS ouverte, c'est un script qui s'exécute en arrière plan ...

    Dès que vous arrêtez le service (en cliquant sur le bouton Arrêter), le message d'avertissement suivant s'affiche sur la console Powershell (message jaune):

     

    AVERTISSEMENT : Démarrage du service LogMeIn (je n'ai pas pu inséré la capture d'écran "seulement deux images par billet sont autorisées!"

    Votre service redémarre automatiquement et tout est rétabli en quelques secondes :)

     

    Vos votes sont les bienvenus 

     

    Source code PS : http://powershell-scripting.com/

    "J'ai pris les deux scripts PS (script d'envoi d-email via PS + script surveillance services Windows) développés par Arnaud (modérateur powershell-scripting.com) et je les ai amélioré en composant un seul script qui permet la surveillance et le redémarrage automatique des services Windows, de plus l'objet de l'e-mail ainsi que le contenu ne sont pas génériques dans cet exemple, en effet avec cet exemple vous recevez un e-mail avec le nom du service redémarré par le script dans l'objet de l'e-mail.

     --

    Hicham KADIRI | Just Another IT Guy






    samedi 10 décembre 2011 02:15

Toutes les réponses

  • Bonjour Hicham,

    Vérifie quel est le message que tu désires conserver car tu as posté en double.
    Merci !


    Cordialement
    Aski - MVP Windows Expert-Consumer
    Forum_Aski
    samedi 10 décembre 2011 11:36
  • Bonjour Aski,

     

    Je publié mon article en double comme mentionné dans la communication de Florin 

    "Attention! Pour une meilleure visibilité de vos articles, nous vous prions de publier les articles en deux discussions dans le forum."

     

    Devrais-je garder d'un seul article ?

     

    Merci

     

    Hicham.

    samedi 10 décembre 2011 13:18
  • Bonjour,

    Attendons que Florin passe et nous explique.
    Merci en tous cas pour ton article !

    Cordialement.


    Cordialement
    Aski - MVP Windows Expert-Consumer
    Forum_Aski
    samedi 10 décembre 2011 14:29
  • reBonjour Aski,

     

    je t'en prie :)

     

    A bientôt 

     

    Hicham KADIRI | Just Another IT Guy

    samedi 10 décembre 2011 14:39
  • Bonjour,

    « Nous vous prions de publier les articles en deux discussions dans le forum car une des discussions nous allons coller dans le thread principal et l’autre restera dans le forum pour comparer le numéro des votes utiles et le numéro de vues. Ainsi, nous pourrons avoir une meilleure visibilité et la possibilité de voir les threads populaires : selon le nombre de vues et selon le nombre de votes utiles.

    Aussi, pour pouvoir compter les votes utiles d’une seule direction, nous allons verrouiller le thread principal et dans ce thread nous allons faire un résume pour les articles publiés dans la période donné. »

    @ Hikam

    Concernant les images, s’il vous plait réinsérez les images dans votre thread car maintenant nous ne les voyons pas. Vous pouvez suivre cette procédure : Insérer des images dans les forums!

    Concernant votre article j’ai vu que vous avez utilisé le script de powershell-scripting.com. Vous pouvez ajouter un disclaimer avec un texte comme : « j’ai utilisé le script de x et j’ai ajouté la fonctionnalité y ».

    Merci pour votre compréhension et collaboration,

    Cordialement,

    Florin


    Florin CIUCA, MSFT       Join TechNetFr on Viadeo   Votez! Appel à la contribution
    Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    lundi 12 décembre 2011 16:14
  • Bonjour Florin,

     

    Votre message est clair et bien reçu

     

    Merci à vous

     

    Cdlt,

     

    Hicham

    lundi 12 décembre 2011 19:40