Guide · Windows
Surveiller les tâches planifiées Windows (Planificateur de tâches)
Le Planificateur de tâches garde une colonne « Résultat de la dernière exécution » et un onglet Historique, mais personne ne les regarde tant que rien n'est allé consulter. Ajoutez une action de check-in à la tâche et Mortemain vous alerte dès qu'une exécution manque, se bloque, ou se termine en erreur, sans agent à installer sur la machine.
1. Créez un check
Créez un check dans Mortemain correspondant au planning de la tâche et à une marge appropriée, puis copiez son URL de ping :
https://ping.mortemain.com/votre-uuid-de-check
2. Ajoutez une action de check-in à la tâche
Dans le Planificateur de tâches, ouvrez les propriétés de la tâche et allez dans l'onglet Actions. Le Planificateur exécute chaque action dans l'ordre, qu'elle réussisse ou non, donc ajouter simplement une deuxième action prouve seulement que la tâche s'est déclenchée, pas que le travail réel s'est terminé proprement. Pour obtenir une vraie sémantique succès/échec, remplacez l'action unique de la tâche par une action qui enchaîne le job et le ping, de sorte que l'URL de ping appelée dépende du code de sortie du job lui-même. Le plus simple est une seule action Démarrer un programme lançant cmd.exe :
Programme/script : cmd.exe
Ajouter des arguments : /c "C:\jobs\sauvegarde.bat && curl.exe -fsS --max-time 10 https://ping.mortemain.com/votre-uuid-de-check -o NUL || curl.exe -fsS --max-time 10 https://ping.mortemain.com/votre-uuid-de-check/fail -o NUL"
curl.exe est livré avec Windows 10, Windows 11 et Windows Server 2019 et versions ultérieures : rien à installer. && ne lance le ping de succès que si sauvegarde.bat se termine avec un code 0 ; || lance le ping d'échec sinon.
3. Ou créez la tâche en ligne de commande
La même commande enchaînée fonctionne avec schtasks, pratique pour provisionner une tâche dans un script de déploiement :
schtasks /create /tn "Sauvegarde nocturne" /sc daily /st 02:00 /ru SYSTEM /tr "cmd.exe /c \"C:\jobs\sauvegarde.bat && curl.exe -fsS --max-time 10 https://ping.mortemain.com/votre-uuid-de-check -o NUL || curl.exe -fsS --max-time 10 https://ping.mortemain.com/votre-uuid-de-check/fail -o NUL\""
Si le job est déjà un script PowerShell plutôt qu'un fichier batch, consultez le guide PowerShell pour un modèle try/catch qui fait le check-in en succès ou vers /fail directement depuis le script ; pointez alors l'action unique de la tâche vers ce script plutôt que d'enchaîner des commandes ici.
4. Optionnel : suivre la durée d'exécution
Pinguez l'endpoint /start avant que le job ne démarre, pour que Mortemain puisse rapporter la durée de chaque exécution et signaler une dérive :
Programme/script : cmd.exe
Ajouter des arguments : /c "curl.exe -fsS --max-time 10 https://ping.mortemain.com/votre-uuid-de-check/start -o NUL & C:\jobs\sauvegarde.bat && curl.exe -fsS --max-time 10 https://ping.mortemain.com/votre-uuid-de-check -o NUL || curl.exe -fsS --max-time 10 https://ping.mortemain.com/votre-uuid-de-check/fail -o NUL"
Pendant que vous êtes dans l'onglet Paramètres de la tâche, cochez Ne pas démarrer une nouvelle instance sous « Si la tâche est déjà en cours d'exécution » (le libellé varie selon la version de Windows). Sans ça, une exécution qui chevauche la précédente peut déclencher un second /start ou un ping de succès parasite en plein milieu du job.
Testez
Faites un clic droit sur la tâche et choisissez Exécuter (ou schtasks /run /tn "Sauvegarde nocturne"). Le check doit passer actif en quelques secondes ; l'onglet Historique de la tâche (activez « Activer l'historique pour toutes les tâches » depuis le volet de la bibliothèque du Planificateur s'il est grisé) confirme que le job et le ping se sont bien exécutés. Cassez ensuite le fichier batch exprès, par exemple avec un exit 1, et relancez la tâche : l'alerte de panne doit arriver immédiatement via le ping /fail au lieu d'attendre l'expiration de la marge du planning.