Aller au contenuAller à l'arborescence
DossierRisque : Ne pas toucher

Tasks C:\Windows\System32\Tasks

C:\Windows\System32\Tasks : définitions XML des tâches du Planificateur de tâches, sans extension, une par tâche. À modifier uniquement via le Planificateur.

Mis à jour le Par AltF4 Formation

À quoi ça sert

Tasks stocke les définitions des tâches du Planificateur de tâches (Task Scheduler 2.0) sous forme de fichiers XML sans extension. L’arborescence reproduit les dossiers de la Bibliothèque du Planificateur, par exemple Microsoft\Windows\.... C’est un emplacement interne : la voie supportée passe par l’API du Planificateur (ITaskFolder) ou par les cmdlets ScheduledTasks. L’ancien dossier C:\Windows\Tasks garde les tâches au format .job de l’ancien moteur.

Ce qu’il contient

  • Un fichier XML par tâche : déclencheurs, actions, compte d’exécution, conditions.
  • Des sous-dossiers par éditeur et par composant (Microsoft, Windows, fournisseurs tiers).
  • Les tâches créées par les applications, l’antivirus, les outils de mise à jour et les stratégies de groupe.

Risques et bonnes pratiques

  • Le Planificateur garde aussi les informations de ses tâches dans le Registre, sous HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache. Un fichier créé, modifié ou supprimé à la main désynchronise les deux et peut rendre la tâche inutilisable. Passez par le Planificateur de tâches, schtasks ou les cmdlets.
  • Les tâches sont un point de persistance classique des logiciels malveillants : auditez les tâches inconnues, y compris celles qui ont un nom proche d’une tâche Microsoft.
  • Exportez une tâche avec Export-ScheduledTask avant de la modifier.

Commandes utiles

Fenêtre de terminal
# Lister les tâches non désactivées
Get-ScheduledTask | Where-Object State -ne 'Disabled' | Select-Object TaskPath, TaskName, State
# Exporter la définition XML d'une tâche
Export-ScheduledTask -TaskName 'NomDeLaTâche' -TaskPath '\'
# Tâches dont le compte d'exécution n'est pas un compte système ou un utilisateur courant
Get-ScheduledTask | Select-Object TaskPath, TaskName, @{n='Compte';e={$_.Principal.UserId}} | Where-Object Compte -notin 'SYSTEM','LOCAL SERVICE','NETWORK SERVICE'

Signaler une erreur