Catégories
Clients Microsoft Windows

Notifications mail via PowerChute Personal Edition

Cette bidouille permet de s’envoyer des mails lorsque qu’un onduleur, de la gamme APC / compatible avec PowerChute Personal Edition, déclenche un évènement. La bidouille se base ici sur un onduleur APC Back-UPS ES – BE550G-FR relié en USB2 à un Windows 10 24/7…


L’utilisation du journal d’évènements Windows est indispensable, la database utilisée par PCPE étant chiffrée/illisible sauf via http://www.seltron.net/apc/powerchute.php ou avec HWiNFO64 (source:https://forums.apc.com/spaces/4/back-ups-surge-protectors/forums/general/8964/eventviewer-exe).

Il faudra aussi disposer d’un relay SMTP local, ou d’un Gmail pour envoyer et recevoir les alertes.

Le script PowerShell en charge de formaliser l’évènement de l’onduleur dans un email:

$latest_ups_event = Get-WinEvent -MaxEvents 1 -FilterHashtable @{ Logname='Application'; ProviderName='APC UPS Service' }
$message = $latest_ups_event.Message
$event_id = $latest_ups_event.Id
$machine_name = $latest_ups_event.MachineName
$source = $latest_ups_event.ProviderName
$time_created = $latest_ups_event.TimeCreated
$timestamp = $time_created.ToString("yyyy-MM-ddTHH:mm:ss.ffffff")
$body = "ID: $event_id`nSource: $source`nMachineName: $machine_name`nTime: $timestamp`nMessage: $message"


Send-MailMessage -From "mail@gmail.com" -To "mail@gmail.com" -Body $Body -Encoding ASCII -Subject "Alert From Back-UPS ES 550G" -SmtpServer '192.168.0.1' -Port 25

Le premier pavé se charge de récupérer le tout dernier évènement déclenché par le fournisseur de logs APC UPS Service (celui qui monitor l’onduleur).

Une fois le message récupéré, il est envoyé par mail en SMTP via le second pavé de code. Il est possible de récupérer assez facilement le code pour en SMTPS avec mail.google.com comme relais sécurisé.

Il faut copier et personnaliser ce script en local. Dans mon exemple, le script a été déposé dans C:\_tools\apc_ups_mailer.ps1

Il va falloir ensuite définir le déclencheur. On va rester corporate et utiliser le Planificateur de Tâches.

Dans Planificateur de tâches , via un clic-droit sur Planificateur de tâches > Bibliothèque du Planificateur de tâches, créer une nouvelle tâche…:

Créer une nouvelle tâche planifiée

Dans l’onglet Général:
– Cocher Exécuter même si l’utilisateur n’est pas connecté
– Cocher Exécuter avec les autorisations maximales

Fenêtre Propriétés de la tâche planifiée – Onglet Général

Dans l’onglet Déclencheurs:
– Cliquer sur Nouveau…
– Une nouvelle fenêtre Nouveau déclencheur s’ouvre:

Fenêtre Nouveau déclencheur

Lancer la tâche: Sur un évènement
Paramètres > Personnalisée
Cliquer sur le bouton Nouveau filtre d’évènement…, une nouvelle fenêtre s’ouvre:

Fenêtre Nouveau filtre d’évènement

Onglet Filtrer de la fenêtre Nouveau filtre d’évènement:
– Connecté: A tout moment
– Niveau d’évènement: Tous! (Critique, Avertissement, Commentaires, Erreur et Information)
– Coche Par source
– Source d’évènements > cocher 2 sources: APC Data Service et APC UPS Service
– Le champ « ID » se dégrise. Y coller cette suite d’IDs:
145,172-177,203,204,61451-61456,61458-61465,61483,61501,61503,61514,61515
(source: https://forums.apc.com/spaces/7/ups-management-devices-powerchute-software/forums/general/11727/powerchute-personal-edition-3-0-2-windows-event-id-list)


On ne touche pas à Catégorie de la tâche, Mots clefs, Utilisateur ou Ordinateurs(s), sauf si l’on en a besoin. On valide donc le nouveau filtre.

Attention, les filtres personnalisés ne sont pas modifiables. Il faut systématiquement effacer l’ancien et en créer un nouveau…

On revient à la fenêtre Nouveau déclencheur!
– Paramètres avancés: ne cocher que Activée
Valider la création du déclencheur.

On arrive ensuite à l’onglet Actions de la tache planifiée:

Fenêtre Propriétés de la tâche planifiée – Onglet Actions

On en créé un Nouveau…:
– Action: démarrer un programme
Paramètres
– Programme/script: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
– Ajouter des arguments: C:\_tools\apc_ups_mailer.ps1 (le script à exécuter)

Valider l’Action.

Pour tous les autres onglets, RAS. On valide la tâche. Un compte et un mot de passe Admin seront nécessaires pour terminer sa création.

On peut ensuite exécuter manuellement la tâche pour vérifier son bon fonctionnement:

-------- Message transféré --------
Sujet : 	Alert From Back-UPS ES 550G
Date : 	Fri, 05 Jul 2019 13:00:54 -0700 (PDT)
De : 	my_email@gmail.com
Pour : 	my_email@gmail.com


EventID: 61455
Source: APC UPS Service
MachineName: MachineName
Time: 2019-07-01T14:03:04.335149
Message: Commutation de l'onduleur sur le secteur.

Théoriquement, à chaque évènement issu de la liste extraite des forums d’APC, cet évènement sera envoyé par email. Jusqu’à ce que la batterie soit vide… 😉

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.