Guide complet du planificateur de tâches par lots schtasks sous Windows pour automatiser vos scripts batch

novembre 3, 2025

comment Aucun commentaire

by Kévin Remy

Guide complet du planificateur de tâches par lots schtasks sous Windows pour automatiser vos scripts batch

novembre 3, 2025

comment Aucun commentaire

by Kévin Remy

Schtasks est l’outil en ligne de commande Windows qui permet de créer, modifier et gérer des tâches planifiées automatiquement. Cette commande interact directement avec le service Planificateur de tâches Windows et offre un contrôle précis sur l’automatisation de vos scripts batch, programmes et maintenance système.

🔧 Syntaxe de base et premiers pas

La structure générale de schtasks suit ce format :

schtasks /[commande] /tn "[nom_tâche]" [paramètres_spécifiques]

Les commandes principales sont :

Commande Description Usage typique
/create Créer une nouvelle tâche Automatisation initiale
/query Afficher les tâches existantes Vérification et audit
/run Exécuter immédiatement Test et dépannage
/delete Supprimer une tâche Nettoyage système
/change Modifier les paramètres Mise à jour configuration

💡 Créer votre première tâche planifiée

Voici un exemple concret pour exécuter un script de sauvegarde chaque jour à 2h du matin :

schtasks /create /tn "Sauvegarde_Quotidienne" /tr "C:Scriptsbackup.bat" /sc daily /st 02:00

Décomposition des paramètres :

  • /tn : nom de la tâche (entre guillemets si espaces)
  • /tr : chemin complet vers le fichier à exécuter
  • /sc : type de planification (daily, weekly, monthly, once, etc.)
  • /st : heure de démarrage au format HH:MM

⚙️ Types de planification avancés

Planification par événement système

💻 Conseil pratique : Les déclencheurs système sont parfaits pour les tâches de maintenance automatique.

  • Au démarrage : /sc onstart
  • À la connexion : /sc onlogon
  • En cas d’inactivité : /sc onidle

Exemple pour nettoyer les fichiers temporaires à chaque connexion :

schtasks /create /tn "Nettoyage_Connexion" /tr "C:Scriptscleanup.bat" /sc onlogon /delay 0000:30

Modificateurs de fréquence (/mo)

Pour un contrôle plus fin, utilisez le paramètre /mo :

  • Tous les 2 jours : /sc daily /mo 2
  • Toutes les 2 semaines le lundi : /sc weekly /d MON /mo 2
  • Le 1er de chaque mois : /sc monthly /mo FIRST

🔐 Gestion des comptes utilisateur et sécurité

Par défaut, les tâches s’exécutent sous le compte de l’utilisateur connecté. Pour modifier cela :

Exécution avec le compte SYSTEM

schtasks /create /tn "Maintenance_Système" /tr "C:Scriptsmaintenance.bat" /sc daily /st 01:00 /ru SYSTEM

Exécution avec un compte spécifique

schtasks /create /tn "Tâche_Utilisateur" /tr "script.bat" /sc daily /st 10:00 /ru "DOMAINEutilisateur" /rp motdepasse

⚠️ Important : Évitez de stocker des mots de passe en dur dans vos scripts. Utilisez plutôt des comptes de service dédiés ou l’authentification Windows intégrée.

🛠️ Administration et maintenance

Consultation des tâches existantes

Pour afficher toutes les tâches :

schtasks /query /fo table /v

Filtrer par nom de tâche :

schtasks /query /tn "Sauvegarde*" /fo list

Modification des propriétés

Changer l’heure d’exécution d’une tâche existante :

schtasks /change /tn "Sauvegarde_Quotidienne" /st 03:00

🌐 Administration à distance

Schtasks permet de gérer les tâches sur des machines distantes :

schtasks /create /s SERVEUR01 /u DOMAINEadmin /p motdepasse /tn "Maintenance_Distante" /tr "script.bat" /sc weekly

Paramètres de connexion distante :

  • /s : nom ou IP du serveur distant
  • /u : nom d’utilisateur pour la connexion
  • /p : mot de passe (ou * pour saisie interactive)

📋 Cas d’usage pratiques

1. Sauvegarde automatique des bases de données

schtasks /create /tn "Backup_DB_Nightly" /tr "C:Scriptsdb_backup.bat" /sc daily /st 23:30 /ru SYSTEM

2. Nettoyage des logs système

schtasks /create /tn "Log_Cleanup" /tr "forfiles /p C:Logs /m *.log /d -7 /c "cmd /c del @path"" /sc weekly /d SUN /st 02:00

3. Redémarrage automatique de services critiques

schtasks /create /tn "Restart_WebService" /tr "net stop w3svc & net start w3svc" /sc daily /st 04:00 /ru SYSTEM

🔧 Intégration dans vos scripts batch

Voici un exemple de script batch qui crée une tâche conditionnelle :

@echo off
:: Vérifier si la tâche existe déjà
schtasks /query /tn "MonScript" >nul 2>&1
if %errorlevel% == 0 (
    echo Tâche existante trouvée, suppression...
    schtasks /delete /tn "MonScript" /f
)

:: Créer la nouvelle tâche
echo Création de la tâche planifiée...
schtasks /create /tn "MonScript" /tr "%~dp0myscript.bat" /sc daily /st 08:00
if %errorlevel% == 0 (
    echo Tâche créée avec succès
) else (
    echo Erreur lors de la création
    exit /b 1
)

🚨 Dépannage et erreurs courantes

Messages d’erreur fréquents

Erreur Cause probable Solution
ERROR: Access is denied Droits insuffisants Exécuter en tant qu’administrateur
ERROR: The filename, directory name, or volume label syntax is incorrect Chemin invalide Vérifier le chemin et les guillemets
ERROR: The specified task name already exists Tâche existante Utiliser /f pour forcer ou changer le nom

Diagnostic des tâches qui ne s’exécutent pas

  1. Vérifier le statut : schtasks /query /tn "NomTâche" /fo list /v
  2. Consulter l’historique : Ouvrir l’Observateur d’événements Windows
  3. Tester manuellement : schtasks /run /tn "NomTâche"
  4. Vérifier les permissions sur le fichier cible et le répertoire de travail

🛡️ Bonnes pratiques de sécurité

✅ Recommandations de sécurité

  • Utiliser des comptes de service dédiés avec privilèges minimaux
  • Éviter l’exécution sous SYSTEM sauf nécessité absolue
  • Auditer régulièrement les tâches planifiées
  • Stocker les scripts dans des répertoires protégés
  • Implémenter une journalisation détaillée

🔄 Import/Export et migration

Exporter une tâche au format XML :

schtasks /query /tn "MaTâche" /xml > tache_exportee.xml

Importer une tâche depuis un fichier XML :

schtasks /create /tn "NouvelleTâche" /xml tache_exportee.xml

❓ FAQ – Questions fréquentes

Comment créer une tâche qui s’exécute toutes les 5 minutes ?

Utilisez : schtasks /create /tn "Tâche_Fréquente" /tr "script.bat" /sc minute /mo 5

Peut-on créer des tâches sans droits administrateur ?

Non, la création de tâches planifiées nécessite obligatoirement des privilèges administrateur. Cependant, l’exécution peut se faire sous un compte utilisateur standard.

Comment programmer une tâche pour qu’elle ne s’exécute que si l’ordinateur est inactif ?

Ajoutez le paramètre /i [minutes] pour spécifier la durée d’inactivité requise avant l’exécution.

Comment éviter qu’une tâche s’exécute si l’ordinateur fonctionne sur batterie ?

Cette fonctionnalité n’est pas disponible directement via schtasks. Utilisez l’interface graphique du Planificateur de tâches ou PowerShell avec le module ScheduledTasks.

Comment créer une tâche qui s’auto-détruit après exécution ?

Ajoutez cette commande à la fin de votre script : schtasks /delete /tn "%~n0" /f

🔗 Ressources complémentaires

Schtasks reste un outil fondamental pour l’automatisation sous Windows. Sa maîtrise permet de créer des environnements système robustes et autonomes, essentiels pour l’administration moderne en 2025. L’évolution vers PowerShell et les solutions cloud n’enlève rien à sa pertinence pour les infrastructures hybrides actuelles.

Laisser un commentaire