Notification par mail des sauvegardes Windows Server

4604.Server-2012-logo_7A80D087
Depuis Windows Server 2008, vous pouvez mettre en place des sauvegardes de votre serveur. C’est une très bonne chose, le point négatif c’est qu’on ne peut pas configurer le système pour recevoir une notification lorsqu’une sauvegarde échoue ou réussie.

Heureusement, il existe une façon de « contourner » ce problème, grâce aux tâches planifiées.
Dans la théorie, on peut dire à Windows de déclencher une tâche planifiée en fonction d’un événement (réussite ou échec de la sauvegarde Windows dans notre cas).
Sauf que l’action « envoyer un courrier électronique » étant déconseillée, on ne peut pas l’utiliser.

tacheplanifOn va donc utiliser l’action « démarrer un programme » pour lancer un script powershell contenant :

send-mailmessage -from "expediteur@votresociete.fr" -to "destinataire@votresociete.fr" -subject "Sauvegarde du controleur de domaine reussie" -body "La sauvegarde du controleur de domaine s'est correctement deroulee" -smtpServer smtp.votresociete.fr

Pour la tâche planifiée qui vous notifie lorsque la sauvegarde s’est correctement déroulée :

Créez une tâche planifiée qui démarre si un événement spécifique est enregistré.
Ensuite on choisit le journal Microsoft-Windows-Backup/Operantional, la source Backup et l’ID 4.
On lui dit de démarrer un programme qui est Powershell.exe et on lui ajout les arguments suivants :
-noprofile -executionpolicy Unrestricted -file C:\chemin_de_votre_script\sauvegarde_ok.ps1
Pensez à sélectionner Exécuter même si l’utilisateur n’est pas connecté.

Créez une 2eme tâche planifiée sur le modèle de la 1ere pour la notification en cas d’échec. Remplacer l’ID 4 par ceux-ci (dans les propriétés de la tache, vous pouvez  ajouter plusieurs déclencheurs) : 5, 8, 9, 17, 20, 22, 49, 50, 52, 100, 517, 518, 521, 527, 528, 544, 545, 546, 561, 564, 612.
Bien sur il faudra aussi adapter le script powershell tel que :

send-mailmessage -from "expediteur@votresociete.fr" -to "destinataire@votresociete.fr" -subject "Sauvegarde du controleur de domaine echoue" -body "La sauvegarde du controleur de domaine a echoue. Voir les logs sur le serveur" -smtpServer smtp.votresociete.fr

N’hésitez pas à lancer manuellement vos tâches pour effectuer un test et vous assurer que vous recevez bien le mail.

Autre script possible avec authentification SMTP :

$From = « expediteur@votresociete.fr »
$To = « destinataire@votresociete.fr »
$SMTPServer = « adresse du votre smtp »
$SMTPPort = « 25 »
$Username = « toto »
$Password = « password »
$subject = « Sauvegarde du serveur reussie »
$body = « La sauvegarde du serveur s’est correctement deroulee »

$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);

$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.Send($From, $To, $subject, $body);

5 commentaires

  1. Bonjour,

    J’ai un problème. j’essaye de reproduire votre script mais mon mail ne part pas car ‘il faut que je m’identifie au smtp mais je ne sais pas comment faire…

    je vous remercie de votre aide
    Bien Cordialement
    Romain LAFFONT

  2. Bonjour,
    Pour les ID d’évènements en cas d’échec , rajouter l’ID 20 ( qui correspond à une sauvegarde non démarrée car la précédente n’est pas terminée).
    Sinon merci, cela fonctionne parfaitement.
    ROMAIN

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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