Comment déclencher une alerte par courrier électronique lorsqu'un service Windows spécifique démarre ou s'arrête sur Windows Server 2016 – Mise en cluster pour de simples mortels – Bien choisir son serveur d impression
Author: Titanfall —
Short summary: introduction Dans mon dernier post. Étape par étape: Comment déclencher une alerte par courrier électronique à partir d'un événement Windows contenant les détails de l'événement à l'aide de Windows Server 2016, je vous ai montré comment envoyer une alerte par courrier électronique en fonction des identificateurs d'événement Windows spécifiques consignés dans un journal des événements […]
Quick overview
- Site
- Tutos GameServer
- Canonical URL
- https://tutos-gameserver.fr/2019/09/30/comment-declencher-une-alerte-par-courrier-electronique-lorsquun-service-windows-specifique-demarre-ou-sarrete-sur-windows-server-2016-mise-en-cluster-pour-de-simples-mortels-bien-choi/
- LLM HTML version
- https://tutos-gameserver.fr/2019/09/30/comment-declencher-une-alerte-par-courrier-electronique-lorsquun-service-windows-specifique-demarre-ou-sarrete-sur-windows-server-2016-mise-en-cluster-pour-de-simples-mortels-bien-choi/llm
- LLM JSON version
- https://tutos-gameserver.fr/2019/09/30/comment-declencher-une-alerte-par-courrier-electronique-lorsquun-service-windows-specifique-demarre-ou-sarrete-sur-windows-server-2016-mise-en-cluster-pour-de-simples-mortels-bien-choi/llm.json
- Manifest
- https://tutos-gameserver.fr/llm-endpoints-manifest.json
- Estimated reading time
- 6 minutes (358 seconds)
- Word count
- 1191
Key points
- introduction Dans mon dernier post.
- Étape par étape: Comment déclencher une alerte par courrier électronique à partir d'un événement Windows contenant les détails de l'événement à l'aide de Windows Server 2016, je vous ai montré comment envoyer une alerte par courrier électronique en fonction des identificateurs d'événement Windows spécifiques consignés dans un journal des événements Windows.
- Bien que cela fonctionne très bien pour la plupart des événements, il n'est pas idéal si vous souhaitez être averti du démarrage ou de l'arrêt d'un service Windows spécifique.
- Lorsqu'un service Windows démarre ou arrête un EventID 7036 de la source «Service Control Manager» est consigné dans le journal système Windows.
Primary visual
Structured content
introduction Dans mon dernier post. Étape par étape: Comment déclencher une alerte par courrier électronique à partir d'un événement Windows contenant les détails de l'événement à l'aide de Windows Server 2016, je vous ai montré comment envoyer une alerte par courrier électronique en fonction des identificateurs d'événement Windows spécifiques consignés dans un journal des événements Windows. Bien que cela fonctionne très bien pour la plupart des événements, il n'est pas idéal si vous souhaitez être averti du démarrage ou de l'arrêt d'un service Windows spécifique. Lorsqu'un service Windows démarre ou arrête un EventID 7036 de la source «Service Control Manager» est consigné dans le journal système Windows. Désormais, nous pourrions simplement configurer un déclencheur pour envoyer un courrier électronique chaque fois que cet ID d’événement est enregistré, comme décrit dans mon précédent message. Toutefois, vous ne voudrez peut-être pas recevoir un courrier électronique lorsque CHAQUE service Windows démarre ou s’arrête. Pour être un peu plus spécifique, nous devrons éditer les données XML associées au filtre d'événements Windows lorsque nous aurons configuré le déclencheur pour examiner un peu plus en profondeur les propriétés des événements et filtrer les données EventData qui ne sont affichées que lorsque vous affichez la vue XML. sous l'onglet Détails d'un événement Windows. Ce travail a été vérifié sur Windows Server 2016, mais je suppose qu'il devrait également fonctionner sur Windows Server 2012 R2 et Windows Server 2019. Si vous le faites fonctionner sur d'autres plates-formes, merci de commenter et de nous faire savoir si vous devez changer quoi que ce soit. Étape 1 – Écrire un script Powershell La première chose à faire est d’écrire un script Powershell qui, lorsqu’il est exécuté, peut envoyer un courrier électronique. En faisant des recherches sur ce sujet, j’ai découvert de nombreuses façons d’accomplir cette tâche. Ce que je vais vous montrer n’est qu’un moyen, mais n'hésitez pas à expérimenter et à utiliser ce qui convient à votre environnement. Dans mon laboratoire, je n'exécute pas mon propre serveur SMTP. J'ai donc dû écrire un script permettant de tirer parti de mon compte Gmail. Vous verrez dans mon script Powershell que le mot de passe du compte de messagerie authentifié sur le serveur SMTP est en texte brut. Si vous craignez que quelqu'un ait accès à votre script et découvre votre mot de passe, vous voudrez alors chiffrer vos informations d'identification. Gmail requiert une connexion SSL. Votre mot de passe doit donc être en sécurité sur le réseau, comme tout autre client de messagerie. Voici un exemple de script Powershell qui, lorsqu'il est utilisé avec le planificateur de tâches, envoie automatiquement une alerte par courrier électronique lorsqu'un événement spécifié est enregistré dans le journal des événements Windows. Dans mon environnement, j'ai enregistré ce script dans C: Alerts ServiceAlert.ps1. $ filter = "*[System[EventID=7036] et EventData[Data='SIOS DataKeeper']]" Filtre $ A = Get-WinEvent -LogName System -MaxEvents 1 -FilterXPath $ $ Message = $ A.Message $ EventID = $ A.Id $ MachineName = $ A.MachineName $ Source = $ A.ProviderName
$ EmailFrom = "sios@medfordband.com" $ EmailTo = "sios@medfordband.com" $ Subject = "Alert From $ MachineName" $ Body = "EventID: $ EventID`nSource: $ Source`nMachineName: $ MachineName` n $ Message " $ SMTPServer = "smtp.gmail.com" $ SMTPClient = New-Object Net.Mail.SmtpClient ($ SmtpServer, 587) $ SMTPClient.EnableSsl = $ true $ SMTPClient.Credentials = New-Object System.Net.NetworkCredential ("sios@medfordband.com", "MySMTPP @ 55w0rd"); $ SMTPClient.Send ($ EmailFrom, $ EmailTo, $ Subject, $ Body) Voici un exemple d’e-mail généré à partir de ce script Powershell.
Vous avez probablement remarqué que ce script Powershell utilise l'applet de commande Get-WinEvent pour saisir l'entrée de journal des événements la plus récente basée sur le nom de fichier LogName, EventID et. EventData spécifié. Il analyse ensuite cet événement et affecte les variables EventID, Source, MachineName et Message aux variables qui seront utilisées pour composer le courrier électronique. Vous constaterez que les éléments LogName, EventID et EventData spécifiés sont identiques à ceux que vous spécifierez lors de la configuration de la tâche planifiée à l'étape 2. Bien que EventID, LogName vous soient probablement familiers, EventData peut ne pas l'être aussi. Pour voir les données EventData associées à un événement particulier, vous devez ouvrir l'événement dans l'observateur d'événements, consultez l'onglet Détails, puis sélectionnez la vue XML. Dans la vue XML, vous pouvez voir toutes les données incluses dans un événement. Au bas du XML, vous verrez un tableau de données appelé . Vous y trouverez des données d’événement supplémentaires stockées en tant que paramètres. Comme indiqué ci-dessous, dans «param1», nous allons trouver le nom du service qui est arrêté ou démarré.
Étape 2 – Configurer une tâche planifiée Dans le Planificateur de tâches, créez une tâche comme indiqué dans les captures d'écran suivantes.
Créer une tâcheAssurez-vous que la tâche est définie sur Exécuter, que l'utilisateur soit connecté ou non. Dans l'onglet Déclencheurs, choisissez Nouveau pour créer un déclencheur qui lancera la tâche «Sur un événement». Dans mon exemple, je vais créer un événement qui déclenche chaque fois que DataKeeper (extmirr) enregistre un événement important dans le journal système.Créez un événement personnalisé et un nouveau filtre d'événements, comme indiqué ci-dessous…
Pour mon déclencheur, vous pouvez commencer à configurer un déclencheur qui surveille 7036 comme je le décris dans mon article précédent. Cependant, l'interface graphique de filtre ne nous permet pas de spécifier le nom de service stocké dans Param1 de EventData, comme je l'ai décrit précédemment. Afin de surveiller uniquement le service spécifique qui nous intéresse, nous aurons besoin de modifier le code XML directement, comme indiqué ci-dessous. Si vous préférez simplement passer directement à la chasse, n'hésitez pas à copier mon code XML ci-dessous et à remplacer "SIOS DataKeeper" par les données d'événement stockées dans le paramètre 1 de l'événement que vous souhaitez surveiller.
*[System[(Level=4 or Level=0) and (EventID=7036)]]et *[EventData[Data[1]= 'SIOS DataKeeper']]
Une fois le déclencheur d'événements configuré, vous devez configurer l'action qui se produit lors de l'exécution de l'événement. Dans notre cas, nous allons exécuter le script Powershell que nous avons créé à l'étape 1.
Les paramètres de condition par défaut devraient être suffisants. Enfin, dans l'onglet Paramètres, veillez à autoriser l'exécution de la tâche à la demande et à «Mettre en file d'attente une nouvelle instance» si une tâche est déjà en cours d'exécution.
Topics and keywords
Themes: Serveur d'impression
License & attribution
License: CC BY-ND 4.0.
Attribution required: yes.
Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json
LLM Endpoints plugin version 1.1.2.