Chapitre 14 : Gérer les programmes de Windows : Tskill et Taskkill

         1 – Tskill

    La syntaxe de cette commande est :

TSKILL IDprocessus | NomProcessus [/SERVER:NomServeur] [/ID:IDsession | /A] [/V]
La signification des différents paramètres est donnée dans le tableau I.

Tableau I. Paramètres de la commande Tskill

Paramètre Description

processid PID du processus à terminer. Utiliser uniquement si processname n’est pas utilisé
processname Nom du processus à terminer. Les jokers peuvent être utilisés ici. Ne pas utiliser si le PID est utilisé.
/SERVER:NomServeur Serveur contenant l’ID de processus (ID actuel par défaut). Généralement pas nécessaire sur les PCs domestiques.
/ID:IDsession Arrêt du processus exécuté au cours de la session spécifiée. Souvent inutilisé sur les PCs domestiques.
/A Arrêt du processus exécuté au cours de TOUTES les sessions (nécessite les privilèges d’administration).
/V Affiche les informations sur les actions exécutées.


Voici un exemple d’une commande simple pour terminer Notepad :

tskill notepad
Cet autre exemple termine tous les documents Microsoft qui vous avez ouvert :

tskill winword
Tous les documents Word ouverts seront fermés mais le contenu ne sera pas enregistré donc commencez par sauvegarder vos documents importants. Un administrateur peut terminer les processus qui s’exécutent dans des sessions démarrées par d’autres utilisateurs. La commande

tskill winword /a
va fermer les documents Word de tous les utilisateurs.

Il n’est pas toujours évident de savoir quel nom de processus utiliser pour un programme. En général, le nom du fichier exécutable (sans l’extension EXE) fonctionne. Une méthode utilisable est de se servir de Tasklist pour trouver le PID et utiliser celui-ci. Une autre méthode est d’utiliser le Gestionnaire des tâches pour trouver le processus associé à un programme. (Le Gestionnaire de tâches peut bien sur être utilisé pour terminer un programme).

         2 – Taskkill

    Taskkill est un outil qui dispose de plus d’options. La syntaxe de la commande est :

TASKKILL [/S système] [/U utilisateur [/P [mot_passe]]]] { [/FI filtre] [/PID ID_processus | /IM image] } [/F] [/T]
Les différents paramètres sont décrits dans le tableau II.

Tableau II. Paramètres de la commande Taskkill

Paramètre Description
/S système Spécifie le système distant auquel se connecter. N’est pas nécessaire pour l’ordinateur local
/U utilisateur Spécifie le contexte utilisateur sous lequel la commande doit s’exécuter. Souvent inutilisé sur les PCs domestiques.
/P mot_de_passe Mot de passe pour l’utilisateur
/FI filtre Affiche un ensemble de tâches qui correspond au critère spécifié par le filtre.
/PID ID_processus Spécifie le PID du processus à terminer. Non utilisé quand le nom de l’image est donné dans la commande
/IM image Spécifie le nom de l’image du processus à terminer. Le joker « * » peut être utilisé pour spécifier tous les noms d’image. Non utilisé si le PID est donné dans la commande
/F Force la fermeture de tous les processus
/T Met fin au processus spécifié et tous les processus enfant qu’il a démarrés.


Les paramètres comme le nom de l’image ou le PID peuvent ne pas être immédiatement évidents à trouver mais Tasklist peut être utilisé pour les obtenir. Taskkill a plus d’options que Tskill et est donc plus compliqué à utiliser. Par exemple la simple commande « Taskkill notepad » ne va pas fonctionner. D’abord, le nom de l’image est « notepad.exe » et non pas le nom du programme « notepad ». De plus, vous allez généralement devoir utiliser le commutateur de forçage /F. La commande pour fermer notepad sera alors

taskkill /im notepad.exe /f
Cet autre exemple montre comment fermer plusieurs programmes en une seule commande :

taskkill /f /im notepad.exe /im mspaint.exe
La documentation n’est pas précise sur le fait d’utiliser le commutateur /f avant ou après le nom de l’image, mais il semble que cela n’a pas d’importance.

         3 – Filtrer le résultat de Taskkill

    Taskkill devient particulièrement puissant quand on utilise les filtres avec le commutateur « /fi ». Diverses règles peuvent être formées à l’aide des opérateurs de comparaison indiqués dans le tableau III.

Tableau III. Opérateurs de comparaison pour les filtres

Opérateur Description

eq Egal (equals)
ne Est différent de (Not equals)
gt Plus grand que (Greater Than). Utilisé uniquement avec des valeurs numériques
lt Plus petit que (Less Than) Utilisé uniquement avec des valeurs numériques
ge Supérieur ou égale à (Greater or Equals) Utilisé uniquement avec des valeurs numériques
le Inférieur ou égale (Less or Equal) Utilisé uniquement avec des valeurs numériques


Le tableau IV indique les variables qui peuvent être utilisées dans un filtre.

Tableau IV. Opérateurs des filtres et valeurs autorisées

Paramètre Opérateurs valides Valeurs valides
ImageName eq, ne Chaîne de caractères valide
PID eq, ne, gt, lt, ge, le Entier positif valide
MemUsage eq, ne, gt, lt, ge, le Entier positif valide en kilo-octets
CPUTime eq, ne, gt, lt, ge, le Temps processeur au format hh:mm:ss.
Session eq, ne, gt, lt, ge, le Numéro de session
Status eq, ne Running, Not Responding
Username eq, ne Un nom d’utilisateur valide (peut être SYSTEM, SERVICE LOCAL, SERVICE RESEAU)
WindowTitle eq, ne Chaîne de caractères valide
Services eq, ne Nom de service
Modules eq, ne Nom de DLL

         4 – Exemple d’utilisation des filtres dans Taskkill

    Avec les filtres, vous pouvez imposer un ensemble de conditions qui doivent être respectées. Les filtres donnent à Taskkill une souplesse considérable et vous permettent de définir finement la cible. Quelques exemples sont donnés ci-dessous. Remarquez qu’il n’est pas nécessaire d’utiliser un nom d’image spécifique ou un PID quand vous utilisez les filtres.

Forcer la fermeture de tous les processus qui ne répondent pas. Peut être utilisé pour créer un petit fichier batch qui termine les programmes plantés ou figés.

taskkill /f /fi « status eq not responding »
Forcer la fermeture de tous les programmes utilisant un fichier DLL spécifique appelé « some.dll ». Cela doit être utilisé avec prudence mais une utilisation peut être de terminer les processus associés avec une DLL provenant d’un spyware ou d’un cheval de Troie. Utilisez Tasklist pour voir quels sont les programmes qui utilisent une DLL donnée.

taskkill /f /fi « modules eq some.dll »
Fermer tous les programmes qui utilisent une grande quantité de mémoire, par exemple > à 40 Mo. Utiliser avec précaution.

taskkill /f /fi « memusage gt 40000 »
Fermer tous les programmes utilisant plus de 40 Mo de mémoire mais pas l’explorateur Windows.

taskkill /f /fi « imagename ne explorer.exe » /fi « memusage gt 40000 »