Vue d’ensemble
Cet article décrit comment gérer le Planificateur de tâches Windows à l’aide de l’outil en ligne de commande schtasks.exe, fourni par défaut avec Windows Server et les éditions clientes de Windows.
Tous les exemples supposent une exécution depuis PowerShell, en utilisant systématiquement l’accent grave (`) comme caractère de continuation de ligne.
Convention de variables
| Nom de variable |
Exemple de valeur |
Description |
<<SERVER_NAME>> |
WSRV2025 |
Nom du serveur cible |
<<ADMIN_USER>> |
Administrator |
Compte utilisé pour exécuter la tâche |
<<TASK_NAME>> |
DailyTempCleanup |
Nom de la tâche |
<<SCRIPT_PATH>> |
C:\Maintenance\cleanup_temp.ps1 |
Script à exécuter |
<<LOG_PATH>> |
C:\Maintenance\Logs |
Dossier de journaux |
<<BACKUP_PATH>> |
C:\Maintenance\Backups |
Dossier de sauvegarde des journaux d’événements |
À propos de la continuation de ligne en PowerShell et CMD
Les commandes présentées dans cet article sont prévues pour être exécutées dans PowerShell.
- PowerShell : accent grave (`)
- CMD : caret (^)
Exemple (PowerShell) :
schtasks.exe /Create `
/TN "Example" `
/SC DAILY `
/ST 02:00 `
/TR "powershell.exe -File example.ps1"
Step 1 : Vue d’ensemble des sous-commandes schtasks.exe
| Sous-commande |
Utilisation |
/Create |
Créer une nouvelle tâche |
/Delete |
Supprimer une tâche |
/Query |
Lister les tâches, afficher les détails, sortie XML |
/Change |
Modifier la configuration d’une tâche |
/Run |
Exécuter une tâche immédiatement |
/End |
Arrêter une tâche en cours d’exécution |
/ShowSid |
Afficher le SID du compte d’exécution |
Step 2 : /Create – syntaxe de base et options principales
Step 2.1 Syntaxe générale
schtasks.exe /Create `
/TN "<<TASK_NAME>>" `
/TR "<<COMMANDE_A_EXÉCUTER>>" `
/SC PLANIFICATION `
[autres_options...]
Step 2.2 Options les plus utilisées
| Option |
Contenu |
/SC |
Type de planification (DAILY / WEEKLY / MONTHLY / ONLOGON / ONEVENT) |
/MO |
Modificateur |
/ST HH:mm |
Heure de début |
/D |
Jour d’exécution (1–31 ou MON/TUE…) |
/RU |
Compte utilisé pour exécuter la tâche |
/RP |
Mot de passe (* pour saisie interactive) |
/RL HIGHEST |
Exécution avec privilèges élevés |
/F |
Forcer l’écrasement d’une tâche existante |
À propos de /MO (modificateur)
Paramètre qui affine la fréquence ou la position de l’exécution dans la planification.
Exemples :
- Toutes les 3 heures →
/SC HOURLY /MO 3
- Toutes les 2 semaines →
/SC WEEKLY /MO 2
- Deuxième mercredi du mois →
/SC MONTHLY /MO SECOND /D WED
- Déclenchement sur événement →
/SC ONEVENT /MO [XPath]
Step 2.3 Liste des valeurs possibles pour /SC
/SC |
Description |
| DAILY |
Quotidien |
| WEEKLY |
Hebdomadaire |
| MONTHLY |
Mensuel |
| ONCE |
Une seule fois |
| ONSTART |
Au démarrage du système |
| ONLOGON |
À l’ouverture de session |
| ONIDLE |
Lorsque le système est inactif |
| ONEVENT |
Lorsqu’un événement est consigné dans le journal |
Step 2.4 Tâche quotidienne
schtasks.exe /Create `
/TN "DailyTempCleanup" `
/TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Maintenance\cleanup_temp.ps1 -DaysToKeep 7 -LogPath <<LOG_PATH>>" `
/SC DAILY `
/ST 02:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.5 Exécution à l’ouverture de session (ONLOGON)
schtasks.exe /Create `
/TN "OnLogonAudit" `
/SC ONLOGON `
/TR "powershell.exe -File C:\Scripts\logon_audit.ps1" `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.6 Exécution au démarrage (ONSTART)
schtasks.exe /Create `
/TN "OnStartInit" `
/SC ONSTART `
/TR "powershell.exe -File C:\Scripts\startup_init.ps1" `
/RU "SYSTEM" `
/RL HIGHEST `
/F
Step 2.7 Déclenchement basé sur le journal d’événements (ONEVENT)
schtasks.exe /Create `
/TN "Event101Handler" `
/SC ONEVENT `
/EC System `
/MO "*[System/EventID=101]" `
/TR "powershell.exe -File C:\Scripts\event_handler.ps1" `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.8 Exécution toutes les 3 heures
schtasks.exe /Create `
/TN "Every3Hours" `
/TR "powershell.exe -File script.ps1" `
/SC HOURLY `
/MO 3 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.9 Deuxième mercredi de chaque mois
schtasks.exe /Create `
/TN "SecondWednesdayTask" `
/TR "powershell.exe -File task.ps1" `
/SC MONTHLY `
/MO SECOND `
/D WED `
/ST 03:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.10 Dernier jour du mois (LASTDAY)
schtasks.exe /Create `
/TN "LastDayMonthly" `
/TR "powershell.exe -File script.ps1" `
/SC MONTHLY `
/MO LASTDAY `
/M * `
/ST 01:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 2.11 Toutes les 2 semaines
schtasks.exe /Create `
/TN "Every2Weeks" `
/TR "powershell.exe -File script.ps1" `
/SC WEEKLY `
/MO 2 `
/D MON `
/ST 05:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Step 3 : /Query – liste et détails
| Option |
Description |
/FO TABLE |
Sortie au format tableau |
/FO LIST |
Sortie sous forme de liste par champs |
/V |
Inclut des informations détaillées (déclencheurs, actions, etc.) |
/TN "<<TASK_NAME>>" |
Afficher uniquement la tâche spécifiée |
schtasks.exe /Query /FO TABLE
schtasks.exe /Query /FO LIST /V
schtasks.exe /Query /TN "<<TASK_NAME>>" /FO LIST /V
Step 4 : /Change – modification d’une tâche
| Option |
Description |
/TN |
Nom de la tâche |
/RU |
Changer le compte d’exécution |
/RP * |
Saisie interactive du nouveau mot de passe |
/TR |
Remplacer la commande de lancement |
/ENABLE /DISABLE |
Activer / désactiver la tâche |
Attention : avec /Change, il est impossible de modifier la définition du déclencheur (/SC, /MO, /D, /M).
Pour changer la planification, il est plus sûr de supprimer la tâche avec /Delete, puis de la recréer avec /Create.
Changer le compte d’exécution
schtasks.exe /Change `
/TN "<<TASK_NAME>>" `
/RU "<<ADMIN_USER>>" `
/RP *
Modifier la commande de lancement
schtasks.exe /Change `
/TN "<<TASK_NAME>>" `
/TR "powershell.exe -File <<SCRIPT_PATH>> -LogPath <<LOG_PATH>>"
Activer / désactiver la tâche
schtasks.exe /Change /TN "<<TASK_NAME>>" /ENABLE
schtasks.exe /Change /TN "<<TASK_NAME>>" /DISABLE
Step 5 : /Run (exécution immédiate) et /End (arrêt)
| Option |
Description |
/Run |
Exécuter immédiatement la tâche |
/I |
Ignorer les contraintes de planification (date de début/fin, etc.) |
/End |
Arrêter la tâche en cours d’exécution |
/TN |
Nom de la tâche cible |
schtasks.exe /Run /TN "<<TASK_NAME>>"
schtasks.exe /Run /TN "<<TASK_NAME>>" /I
schtasks.exe /End /TN "<<TASK_NAME>>"
Step 6 : Importer une tâche à partir de XML
Import XML
| Option |
Description |
/XML fichier |
Créer une tâche à partir d’une définition XML |
/RU |
Remplacer le compte d’exécution |
/RP * |
Saisie interactive du mot de passe |
schtasks.exe /Create `
/TN "<<TASK_NAME>>" `
/XML "C:\TaskTemplates\<<TASK_NAME>>.xml" `
/RU "<<ADMIN_USER>>" `
/RP *
Export XML (via Query)
| Option |
Description |
/XML ONE |
Exporter la définition de la tâche dans un seul XML |
> fichier |
Rediriger la sortie vers un fichier |
schtasks.exe /Query `
/TN "<<TASK_NAME>>" `
/XML ONE `
> C:\TaskTemplates\<<TASK_NAME>>.xml
Step 8 : /Delete – suppression d’une tâche
| Option |
Description |
/Delete |
Mode suppression |
/TN |
Nom de la tâche |
/F |
Supprimer sans demande de confirmation |
schtasks.exe /Delete /TN "<<TASK_NAME>>" /F
Step 9 : /ShowSid – afficher le SID du compte d’exécution
| Option |
Description |
/ShowSid |
Afficher le SID associé au compte d’exécution de la tâche |
/TN |
Nom de la tâche |
schtasks.exe /ShowSid /TN "<<TASK_NAME>>"
Step 10 : Gestion des tâches sur un serveur distant
| Option |
Description |
/S "<<SERVER_NAME>>" |
Nom du serveur distant |
/U |
Compte utilisateur pour la connexion distante |
/P * |
Mot de passe pour le compte distant (* pour saisie interactive) |
| Autres |
Définition de la tâche identique au cas local |
schtasks.exe /Create `
/S "<<SERVER_NAME>>" `
/U "<<ADMIN_USER>>" `
/P * `
/TN "<<TASK_NAME>>" `
/TR "powershell.exe -File <<SCRIPT_PATH>>" `
/SC DAILY `
/ST 02:00 `
/RU "<<ADMIN_USER>>" `
/RL HIGHEST `
/F
Conclusion
L’utilisation de schtasks.exe facilite l’intégration du Planificateur de tâches dans les scénarios de déploiement et d’automatisation opérationnelle.
- La combinaison de
/SC et /MO permet de définir des planifications flexibles (quotidiennes, hebdomadaires, mensuelles, « nième jour de la semaine », dernier jour du mois).
- Les déclencheurs ONLOGON, ONSTART et ONEVENT permettent une automatisation pilotée par les événements.
- Avec
/Query /XML et /Create /XML, il est possible d’exporter et de réimporter des définitions de tâches sous forme de modèles XML réutilisables.
- Les commandes
/Change, /Run, /End, /Delete et /ShowSid couvrent tout le cycle de vie d’administration des tâches.
- Grâce à
/S /U /P, les mêmes définitions peuvent être déployées facilement sur plusieurs serveurs distants.