/
/

Exécuter un fichier BAT en arrière-plan avec le Planificateur de tâches sous Windows 11

par Team Ninja
Run BAT file in the Background Using Task Scheduler in Windows 11 blog banner image

Si vous avez déjà remarqué un bref clignotement à l’écran lorsqu’un fichier BAT planifié s’exécute, c’est l’invite de commande qui s’ouvre pour le lancer, ce qui est à la fois gênant et frustrant. Dans ce guide, nous vous expliquons comment exécuter votre fichier BAT discrètement en arrière-plan avec le Planificateur de tâches, afin que vos tâches automatisées se déroulent sans interruption.

Nous vous conseillons de consulter la section ⚠️ Points de vigilance avant de commencer.

📌Accédez directement aux stratégies de déploiement recommandées :

Cliquez pour choisir une méthode💻
Idéal pour les utilisateurs individuels
💻💻💻
Idéal pour les entreprises
Configurer le Planificateur de tâches pour exécuter un fichier BAT en arrière-plan✓✓
Autres méthodes pour exécuter un fichier BAT en arrière-plan en toute discrétion
Utiliser VBScript pour masquer la fenêtre CMD✓✓
Utiliser PowerShell (.ps1) pour masquer l’exécution du fichier BAT✓
Procédures complémentaires pour éviter le vol de focus lors de l’exécution d’un fichier BAT
Modifier le registre Windows pour éviter le vol de focus✓✓
Ajuster la stratégie de groupe pour limiter les changements de focus liés aux invites✓

Configurer le Planificateur de tâches pour exécuter un fichier BAT en arrière-plan

Cette méthode s’appuie sur les paramètres natifs de Windows 11 pour exécuter votre fichier BAT comme un processus en arrière-plan, sans fenêtres intempestives.

📌Cas d’utilisation : parfait pour les tâches d’administration récurrentes, comme le nettoyage des journaux et les sauvegardes, où le fonctionnement silencieux est essentiel.

📌Prérequis : vérifiez que vous utilisez le système d’exploitation Windows 11, que vous disposez des droits d’administration et de votre fichier batch existant, et que vous connaissez les bases de l’outil.

  1. Ouvrez le Planificateur de tâches :
    • Ouvrez la boîte de dialogue Exécuter (Win + R), tapez taskschd.msc, puis appuyez sur Entrée.
      • Vous pouvez également rechercher Planificateur de tâches dans la barre des tâches.

Ouvrir le Planificateur de tâches

  1. Créez une tâche :
    • Faites un clic droit sur Bibliothèque du Planificateur de tâches, puis sélectionnez Créer une tâche (et non Créer une tâche de base). Vous pouvez aussi la sélectionner dans le volet Actions.

Créer une tâche

  1. Renseignez les éléments suivants dans l’onglet Général (paramètres essentiels) :
    • Nom : par exemple Silent BAT Runner”
    • Sélectionnez Exécuter même si l’utilisateur n’est pas connecté (la tâche s’exécutera alors en arrière-plan du système).
    • Sélectionnez Exécuter avec les autorisations maximales (si un accès administrateur est requis).
    • Cochez Masqué.
    • Dans la liste déroulante Configurer pour, sélectionnez Windows 11.

Fenêtre de l'onglet Général (paramètres essentiels)

  1. Renseignez les éléments suivants dans l’onglet Déclencheurs :
    • Sélectionnez Nouveau, puis définissez la planification (par exemple tous les jours à 2 h).

Onglet Déclencheurs

  1. Renseignez les éléments suivants dans l’onglet Actions :
    • Sélectionnez Nouveau, puis définissez Action sur Démarrer un programme.
    • Dans Programme/script : collez le chemin complet vers votre fichier BAT.

Onglet Actions

  1. Enregistrez et autorisez :
    • Cliquez sur OK, puis saisissez votre mot de passe lorsque vous y êtes invité.

💡Remarque : un bref clignotement de l’invite de commande peut malgré tout se produire. Pour un fonctionnement totalement silencieux, appliquez les procédures complémentaires ci-dessous.

Autres méthodes pour exécuter un fichier BAT en arrière-plan en toute discrétion

Si vous souhaitez supprimer complètement ce clignotement fugace de l’invite de commande lorsqu’un fichier BAT s’exécute en arrière-plan, voici deux procédures qui permettent de le faire disparaître totalement.

Option 1 : utiliser VBScript pour masquer la fenêtre CMD

VBScript sert d’enveloppe silencieuse et exécute votre fichier BAT sans aucune trace visuelle.

📌Cas d’utilisation : cette solution est idéale pour exécuter un fichier BAT sur des bornes interactives, des systèmes de présentation ou des postes de travail utilisateurs, où l’absence totale d’interruption visuelle est primordiale.

  1. Créez un fichier .vbs :
    • Ouvrez le Bloc-notes (recherchez-le dans la barre des tâches), puis saisissez ce script :

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run Chr(34) & "C:\Path\To\Your\BatchFile.bat" & Chr(34), 0
Set WshShell = Nothing

    • Remplacez le chemin dans le script (C:\Path\To\Your\BatchFile.bat) par l’emplacement de votre fichier BAT.
    • Enregistrez le fichier sous Runner.vbs (vérifiez que l’extension est bien .vbs, et non .txt).
  1. Planifiez le VBScript :
    • Dans le Planificateur de tâches, créez une autre tâche en renseignant les mêmes informations dans les onglets Général et Déclencheurs que pour la procédure principale ci-dessus.
    • Dans l’onglet Actions, renseignez les éléments suivants :
      • Action : Démarrer un programme
      • Programme : wscript.exe
      • Arguments : chemin vers votre fichier VBScript

Planifier le VBScript

Cette procédure permet d’exécuter votre fichier BAT en toute discrétion, car l’indicateur 0 du script masque complètement la fenêtre clignotante. Le VBScript réalise cette exécution de façon invisible grâce à Windows Script Host.

Option 2 : utiliser PowerShell (.ps1) pour masquer l’exécution du fichier BAT

PowerShell offre un contrôle moderne et souple de la visibilité des processus, avec une seule commande.

📌Cas d’utilisation : cette procédure convient parfaitement aux environnements où PowerShell est déjà l’outil de référence, ou aux scripts nécessitant une logique supplémentaire avant l’exécution du fichier BAT.

  1. Créez un fichier .ps1 :
    • Ouvrez le Bloc-notes (recherchez-le dans la barre des tâches), puis saisissez ce script :

Start-Process "C:\Path\To\Your\BatchFile.bat" -WindowStyle Hidden

    • Mettez à jour le chemin avec l’emplacement de votre fichier BAT.
    • Enregistrez-le sous StealthRunner.ps1.
  1. Planifiez le script PowerShell dans le Planificateur de tâches :
    • Dans le Planificateur de tâches, créez une autre tâche en renseignant les mêmes informations dans les onglets Général et Déclencheurs que pour la procédure principale ci-dessus.
    • Dans l’onglet Actions, renseignez les éléments suivants :
      • Action : Démarrer un programme
      • Programme : powershell.exe
      • Arguments : saisissez ce script :

-ExecutionPolicy Bypass -File "C:\Path\To\StealthRunner.ps1"

L’approche PowerShell repose sur le paramètre -WindowStyle Hidden, qui supprime la console au niveau du noyau.

Procédures complémentaires pour éviter le vol de focus lors de l’exécution d’un fichier BAT

Des ajustements complémentaires permettent de réduire encore les interruptions lors de l’exécution de fichiers BAT et d’autres tâches en arrière-plan sous Windows 11.

Option 1 : modifier le registre Windows pour éviter le vol de focus

Cette approche retarde les changements de focus entre applications, ce qui limite l’impact des éventuels clignotements de fenêtres résiduels.

📌Cas d’utilisation : cette procédure est idéale lorsqu’un utilisateur ou une entreprise souhaite éviter toute interruption du focus déclenchée par une tâche.

⚠️ Avertissement : une modification incorrecte du registre peut entraîner une grave instabilité du système. Sauvegardez toujours votre registre ou créez un point de restauration du système avant de commencer. Consultez la section ⚠️ Points de vigilance pour en savoir plus.

  1. Ouvrez l’Éditeur du registre :
    • Ouvrez la boîte de dialogue Exécuter (Win + R), puis tapez et validez regedit.

Ouvrir l'Éditeur du registre

  1. Accédez à la clé :
    • Naviguez jusqu’à ce chemin ou collez-le : HKEY_CURRENT_USER\Control Panel\Desktop

Accéder à la clé

  1. Créez ou modifiez la valeur DWORD :
    • Double-cliquez sur la valeur DWORD Foregroundlocktimeout.
      • Si elle n’existe pas, faites un clic droit dans le volet de droite, puis sélectionnez Nouveau > Valeur DWORD (32 bits).
      • Nommez la valeur DWORD Foregroundlocktimeout.

Créer ou modifier la valeur DWORD

  1. Définissez les données de la valeur :
    • Définissez la valeur du DWORD sur 200000 en décimal.

Définir les données de la valeur

  1. Appliquez les modifications :
    • Redémarrez l’appareil ou exécutez ceci dans l’invite de commande :

taskkill /f /im explorer.exe && start explorer.exe

Contrairement aux approches de la section précédente, cela n’empêchera pas la fenêtre CMD d’apparaître, mais cela supprimera le vol de focus si une fenêtre parvient à clignoter.

Option 2 : ajuster la stratégie de groupe pour limiter les changements de focus liés aux invites

Cette politique supprime les avertissements de sécurité susceptibles d’interrompre le travail lors de l’exécution de scripts.

📌Cas d’utilisation : environnements d’entreprise où des scripts téléchargés déclenchent des fenêtres Avertissement de sécurité Ouvrir un fichier pendant l’exécution des tâches.

💡Remarque : cette approche n’est possible que sur les éditions Windows 11 Pro, Entreprise et Éducation. Pour les utilisateurs de l’édition Famille, nous recommandons la méthode via l’Éditeur du registre.

  1. Ouvrez l’Éditeur de stratégie de groupe :
    • Ouvrez la boîte de dialogue Exécuter (Win + R), puis tapez et validez gpedit.msc.
  2. Accédez à la politique :
    • Suivez ce chemin : Configuration utilisateur > Modèles d’administration > Composants Windows > Gestionnaire des pièces jointes
  3. Activez la politique concernée :
    • Double-cliquez sur Ne pas conserver les informations de zone dans les pièces jointes.
    • Sélectionnez Activé, puis cliquez sur OK.
  4. Appliquez les modifications :
    • Redémarrez votre appareil ou exécutez gpupdate /force dans l’invite de commande.

Comment vérifier que le fichier BAT s’exécute bien en arrière-plan

Après la configuration, ces vérifications rapides vous permettent de confirmer que votre fichier batch s’exécute en toute discrétion et sans erreur.

  1. Déclenchez la tâche manuellement :
    • Dans le Planificateur de tâches, faites un clic droit sur la tâche que vous avez créée, puis sélectionnez Exécuter.
    • Observez votre écran pour voir si l’invite de commande clignote ou vole le focus.
  2. Consultez l’historique du Planificateur de tâches :
    • Dans la Bibliothèque du Planificateur de tâches, faites un clic droit sur votre tâche.
    • Sélectionnez Propriétés, puis allez dans l’onglet Historique et vérifiez l’ID d’événement :
      • 100 : la tâche a été terminée.
      • 101 : la tâche n’a pas pu démarrer.
      • 201 : l’action n’a pas pu s’exécuter.
  3. Validez les journaux et les résultats :
    • Vérifiez l’emplacement du journal ou de la sortie de votre fichier BAT (par exemple C:\Logs\output.txt).
    • Si aucun journal n’existe, ajoutez temporairement ceci à votre fichier BAT :

echo %date% %time%: Task ran >> C:\Verify\log.txt

⚠️ Points de vigilance

Cette section met en lumière les difficultés potentielles à garder en tête en suivant ce guide.

RisquesConséquences possiblesSolutions de retour en arrière
1. Paramètre « Exécuter même si l’utilisateur n’est pas connecté » incorrect ou déclencheurs mal configurésLa tâche échoue sans signal ou le fichier BAT ne s’exécute pasRouvrez la tâche, puis vérifiez les paramètres.

Ou testez avec un journal echo dans le fichier BAT

2. L’antivirus bloque wscript.exe ou erreurs de syntaxe dans le fichier VBSLe script s’interrompt sans signal ou aucun journal d’erreurs n’est généréAjoutez wscript.exe à la liste blanche de l’antivirus

Ou déboguez le VBS via cscript Runner .vbs

3. Les politiques d’exécution bloquent le script ou chemins comportant des espaces non entourés de guillemetsPowerShell s’arrête avec une erreur de politiqueExécutez Set-ExecutionPolicy RemoteSigned

Ou entourez les chemins de guillemets : "C:\My Scripts\file.bat"

4. Erreurs dans le registre, comme des fautes de frappe ou la modification de la mauvaise cléInstabilité du système ; plantages de l’ExplorateurRestaurez la sauvegarde du registre ou supprimez le DWORD erroné, puis redémarrez.

Regardez Comment sauvegarder et restaurer le registre Windows pour en savoir plus.

5. Désactivation des invites de sécurité à l’échelle du systèmeDes scripts malveillants s’exécutent sans avertissementRepassez la stratégie de groupe sur Désactivé/Non configuré ou exécutez gpupdate /force.

Points essentiels pour exécuter des fichiers BAT en arrière-plan

Appliquez ces bonnes pratiques pour garantir une exécution silencieuse fiable et sécurisée.

Gestion des autorisations

Vérifiez que votre fichier BAT (ainsi que les fichiers de script VBS/PS1 associés) disposent des droits de lecture/exécution nécessaires pour exécuter la tâche avec le compte utilisateur et consigner l’exécution dans le système. Vos tâches s’exécuteront ainsi sans erreur.

💡Conseil : vous pouvez exécuter icacls "C:\Your\BatchFile.bat" dans l’invite de commande pour vérifier si le fichier dispose bien des privilèges.

Protocole de test par étapes

Testez d’abord la procédure dans un environnement contrôlé avant de la déployer sur l’appareil de l’utilisateur. Vous pourrez ainsi vérifier qu’elle s’exécute sans erreur, par exemple sans problème de compatibilité ni erreur de syntaxe dans l’environnement, et éviter d’éventuelles instabilités du système.

Paramètres de modification du système

Comme indiqué plus haut, avant toute modification du registre ou de la stratégie de groupe, créez un point de restauration, exportez les clés de registre et sauvegardez les configurations de tâches afin de protéger votre système.

Exécuter des fichiers BAT en toute discrétion sous Windows 11 pour rester concentré

Optimisez l’exécution de vos processus système en arrière-plan grâce au Planificateur de tâches de Windows 11 et supprimez les clignotements gênants de CMD. Utilisez les méthodes de ce guide pour des tâches qui s’exécutent sans interruption. Avec ce guide, transformez la façon dont vos sauvegardes, nettoyages ou scripts s’exécutent en arrière-plan : puissamment et de façon invisible.

Sujets connexes

Guide de démarrage rapide

NinjaOne permet d’exécuter des fichiers BAT en arrière-plan grâce à sa fonction d’automatisations planifiées. Voici les points essentiels :

  • Vous pouvez créer des automatisations planifiées qui exécutent des scripts ou des applications sur les appareils soumis à une politique.
  • Les automatisations planifiées peuvent être configurées pour s’exécuter :
    • à la demande
    • selon une planification (quotidienne, hebdomadaire, mensuelle)
    • au démarrage du système
    • à la connexion de l’utilisateur

Pour exécuter un fichier BAT en arrière-plan :

  1. Allez dans Administration > Politiques
  2. Sélectionnez Politique d’agent
  3. Cliquez sur Automatisations planifiées
  4. Cliquez sur « Ajouter une automatisation planifiée »
  5. Configurez :
    • le nom et la description de l’automatisation
    • la planification (quotidienne, hebdomadaire, etc.)
    • la sélection de votre fichier BAT dans la bibliothèque d’automatisations
    • l’exécution en tant que Système, utilisateur actuel ou avec des identifiants spécifiques

Remarques importantes :

  • Si le démarrage rapide est activé, il peut empêcher les tâches planifiées de s’exécuter au démarrage du système
  • Vous pouvez ajouter plusieurs scripts ou applications, qui s’exécuteront dans l’ordre
  • Vous pouvez configurer des notifications ou des tickets lors de l’exécution de l’automatisation

You might also like

Prêt à simplifier les aspects les plus complexes de l'informatique et de la sécurité ?