XX. Gérer les programmes de Windows : Tskill et Taskkill▲
Ce chapitre est une traduction de la page http://commandwindows.com/taskkill.htm dont l'auteur original est Victor Laurie.
Windows XP est fourni avec plusieurs outils pour terminer les programmes ou les processus à partir de l'invite de commande. Ce chapitre décrit les fonctionnalités et les utilisations de Taskkill et Tskill.
Il est parfois souhaitable de terminer un programme ou un processus à partir de la ligne de commande. Le processus peut être planté ou ne pas répondre ou vous souhaitez peut-être avoir un script pour le terminer. Les deux versions de Windows XP (Familiale et Professionnelle) sont fournies avec l'outil Tskill. XP Professionnel dispose en plus d'un outil plus puissant : Taskkill. Bien que l'interface graphique du Gestionnaire de Tâches puisse être utilisée pour terminer les programmes qui sont plantés, la ligne de commande peut être plus rapide et plus facile à utiliser. De même, dans certaines situations, il peut être pratique d'avoir un fichier batch qui se lance comme un script. De plus, Taskkill est capable d'utiliser des filtres sophistiqués.
XX-A. 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).
XX-B. 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.
XX-C. 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 |
XX-D. 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"