Utiliser PowerShell pour gérer les tâches planifiées sous Windows

Je vérifie régulièrement plusieurs emplacements sur les systèmes Windows que j'exécute, notamment le gestionnaire de tâches Windows pour répertorier les processus en cours d'exécution, les entrées à démarrage automatique et les tâches planifiées du système.

Je le fais pour plusieurs raisons, y compris la sécurité, pour m'assurer que rien ne se passe et ne s'exécute sur le système que je considère comme malveillant, comme un logiciel espion ou indésirable, mais aussi pour débloquer le système en désactivant, bloquant ou supprimant des programmes le système ou dans les délais.

Bien qu'il soit possible d'ouvrir le Planificateur de tâches à l'aide de la recherche, il ne vous fournit pas une interface propre pour parcourir rapidement la liste des tâches.

Un programme que j'aime utiliser pour cette tâche est l'excellent View Scheduler View de Nirsoft qui, comme d'habitude, est portable et très efficace.

PowerShell de Windows offre une autre option rapide sous Windows 8 et versions ultérieures. La commande Get-ScheduledTask renvoie toutes les tâches planifiées de l'ordinateur local ou en sélectionne.

  1. Ouvrez une fenêtre d'invite de commande. Vous pouvez le faire en appuyant sur la touche Windows, en tapant Powershell.exe, en cliquant avec le bouton droit de la souris sur le résultat, en sélectionnant "Exécuter en tant qu'administrateur" et en appuyant sur Entrée. Notez que la commande get-scheduletask ne nécessite pas d'élévation, contrairement à toutes les commandes de gestion.
  2. Tapez Get-ScheduledTask

La commande de base répertorie toutes les tâches de l'ordinateur local triées par chemin. Il ne comprend que le chemin d'accès, le nom et l'état de la tâche, qui peuvent parfois être suffisants.

Le nom facilite l'identification de la tâche, tandis que l'état indique s'il est activé ou désactivé.

Ce qui le rend plus puissant, ce sont toutefois les paramètres que vous pouvez ajouter à la commande pour afficher des détails supplémentaires ou filtrer des tâches.

Voici quelques exemples de commandes qui pourraient vous être utiles:

  • Get-ScheduledTask -TaskName Google * renvoie toutes les tâches commençant par Google.
  • Get-ScheduledTask -TaskPath \ renvoie toutes les tâches placées dans la racine TaskPath.

Bien qu'il soit utile d'afficher les tâches planifiées de cette manière, vous pouvez également gérer des tâches à l'aide de PowerShell. Veuillez noter que vous avez besoin de droits élevés pour pouvoir activer ou désactiver les tâches sur un système. Cela signifie que vous devez exécuter PowerShell à partir d'une invite de commande avec privilèges élevés.

Les commandes Disable-ScheduledTask et Enable-Scheduled-Task ont ​​été conçues pour cela. Comme le suggèrent les noms, la première désactive les tâches que vous sélectionnez, tandis que la seconde les active.

Si vous exécutez les commandes directement, vous devez spécifier explicitement les noms de tâches ou les chemins. Il existe cependant une solution de contournement que vous pouvez utiliser pour activer ou désactiver plusieurs tâches à la fois.

Les commandes que vous pouvez trouver utiles sont:

  • Disable-ScheduledTask -taskname "Programme de mise à jour Adobe Flash Player" désactive la tâche Programme de mise à jour Adobe Flash Player.
  • Enable-ScheduledTask -taskname "Programme de mise à jour Adobe Flash Player" active la tâche Programme de mise à jour Adobe Flash Player.
  • Get-ScheduledTask -taskname Google * | Disable-ScheduledTask désactive toutes les tâches renvoyées par la commande get (à partir de Google),

Les autres commandes d'intérêt liées aux tâches sont start-scheduletask, stop-schedtask et unregister-scheduletask.