La ligne de commande Windows et les fichiers batch


précédentsommairesuivant

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 :

 
Sélectionnez

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 :

 
Sélectionnez

tskill notepad

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

 
Sélectionnez

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

 
Sélectionnez

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 :

 
Sélectionnez

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

 
Sélectionnez

taskkill /im notepad.exe /f

Cet autre exemple montre comment fermer plusieurs programmes en une seule commande :

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

taskkill /f  /fi "memusage gt 40000"

Fermer tous les programmes utilisant plus de 40 Mo de mémoire mais pas l'explorateur Windows.

 
Sélectionnez

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

précédentsommairesuivant

Copyright traduction ©2009 Thomas Garcia. Aucune reproduction, même partielle, ne peut être faite de cette traduction et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 Euros de dommages et intérets.
Copyright site web original : Victor Laurie