XIX. Gérer les programmes de Windows à partir de l'invite de commande : Tasklist▲
Ce chapitre est une traduction de la page http://commandwindows.com/tasklist.htm dont l'auteur original est Victor Laurie.
Windows XP est fourni avec un outil puissant en ligne de commande appelé Tasklist qui fournit des détails sur les programmes et les processus en cours d'exécution.
Beaucoup d'utilisateurs connaissent le Gestionnaire de tâches graphique, que j'ai décrit sur un autre site, et qui fournit plusieurs sortes d'informations sur les applications et les processus qui s'exécutent sur le système. Il existe également plusieurs outils en ligne de commande qui fournissent les mêmes informations, mais de manière plus détaillée. Dans ce chapitre, je vais décrire les fonctionnalités de l'outil Tasklist (le fichier système est : tasklist.exe). Cet outil est inclus dans l'installation de la version professionnelle de XP mais n'est pas fourni dans la version familiale. Cependant, les utilisateurs de la version familiale de XP peuvent télécharger tasklist ici. Tasklist peut être utilisé pour savoir combien de mémoire et de temps CPU les processus utilisent, quelles DLL sont utilisées, et bien d'autres informations. De plus il peut être très utile pour résoudre les problèmes.
XIX-A. Commande Tasklist basique▲
Si vous voulez simplement savoir les tâches en cours d'exécution, entrez TASKLIST en ligne de commande. Vous pouvez rediriger le résultat de la commande dans un fichier si vous le souhaitez. Le format par défaut est un tableau comportant plusieurs colonnes d'information. La figure ci-dessous montre un exemple partiel de résultat obtenu. Il y a cinq colonnes d'information. La liste suivante donne la signification des différents en-têtes des colonnes.
Nom de l'image
Le nom du processus ou du fichier exécutable exécutant le processus.
PID
L'identifiant de processus Le système assigne un numéro à chaque processus pour pouvoir en garder la trace. Il est possible d'avoir plusieurs processus en cours d'exécution portant le même nom, mais le PID sera unique pour chacun. Notez que le PID ne sera pas le même à chaque fois que vous ouvrirez un programme en particulier. Vous pouvez avoir besoin du PID pour utiliser certains autres outils de diagnostic, et Tasklist vous fournit un moyen d'obtenir cette information.
Nom de la session
A moins que vous ne soyez sur un réseau, vous devriez lire "Console" indiquant que le processus a été démarré localement. Les utilisateurs d'ordinateurs personnels peuvent généralement ignorer cette colonne.
Numéro de session
Chaque session possède un numéro assigné. Les utilisateurs d'ordinateurs personnels peuvent ignorer également cette colonne.
Utilisation mémoire
Cette colonne donne des informations utiles pour savoir combien de mémoire (en Ko) un processus utilisait au moment où Tasklist a été exécuté.
Des colonnes supplémentaires peuvent être affichées en mode "verbose" qui est obtenu en utilisant le commutateur "/v". Les colonnes sont les suivantes :
Status
Donne l'état du processus : "Running", "Not Responding", ou "Unknown". Utile pour trouver les processus plantés. Le statut "Unknown" (inconnu) peut faire référence à un processus normal, mais "Not Responding" (pas de réponse) indique un processus qui devrait être arrêté.
Nom d'utilisateur
Indique le nom du compte qui a lancé le processus, Windows lui-même va démarrer de nombreux processus et les comptes systèmes qui vont apparaître dans cette colonne sont : SYSTEM, SERVICE LOCAL ou SERVICE RESEAU, accompagnés du nom de domaine local AUTORITE NT.
Temps processeur
La quantité totale de temps processeur utilisé par le processus depuis son démarrage. Ce nombre peut être très grand si vous n'éteignez jamais l'ordinateur.
Titre de la fenêtre
Nom de la fenêtre du processus, si elle existe. Aide parfois à identifier quel programme est en cause.
XIX-B. Plus d'options avancées pour Tasklist▲
Il y a beaucoup d'options qui sont fournies par des commutateurs. La syntaxe complète est :
TASKLIST
[/S système [/U utilisateur [/P mot_de_passe]]]] [/M [module] |
/SVC |
/V] [/FI filtre] [/FO format
] [/NH]
Les majuscules ne sont utilisées que par souci de clarté mais la commande est insensible à la casse. Le tableau I décrit les différents paramètres.
Tableau I. Paramètres de TASKLIST
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 exécuter. N'est pas nécessaire pour l'ordinateur local |
/P [mot_de_passe] | Spécifie le mot de passe pour le contexte utilisateur donné. Il est demandé s'il est omis. |
/M [module] | Liste toutes les tâches utilisant le nom de fichier exe ou dll donné. Si le nom de module n'est pas spécifié, tous les modules chargés sont affichés. |
/SVC | Affiche les services hébergés dans chaque processus. |
/V | Affiche les informations de tâches détaillées. |
/FI filtre | Affiche un ensemble de tâches qui correspond au critère spécifié par le filtre. |
/FO format | Spécifie le format de sortie. Valeurs valides : "TABLE", "LIST", "CSV". |
/NH | Spécifie que les en-têtes de colonnes ne doivent pas être affichés sur la sortie. Valide uniquement pour les formats "TABLE" et "CSV". |
Ces paramètres additionnels permettent à Tasklist de fournir des informations très détaillées sur le système. Quelques exemples sont expliqués dans les paragraphes suivants.
XIX-B-1. Trouver quels services utilisent un processus▲
Il peut être utile de connaître la relation entre un processus et les services qui s'exécutent sur un système (pour un article sur les servicesconsultez cette page). Pour obtenir un tableau associant le nom de l'image, le PID et les services, utilisez la commande
tasklist
/svc >
liste.txt
J'ai montré ici la redirection vers un fichier pour illustrer la création d'un rapport texte. Cette commande peut être utilisée pour diagnostiquer des problèmes avec un service en surveillant l'utilisation de la mémoire et d'autres propriétés des processus associés avec le service.
XIX-B-2. Trouver quels fichiers DLL sont utilisés par un processus▲
Les processus peuvent utiliser différents fichiers DLL en appelant diverses procédures depuis leurs bibliothèques. Il n'est pas rare qu'un problème survienne en raison d'une DLL endommagée ou qui n'est pas dans la bonne version. Pour trouver quelles DLLs sont utilisées par chaque processus, utilisez la commande
tasklist
/m
Cette commande va renvoyer un tableau reliant le nom de l'image, le PID et les modules. Ici, les "modules" indiquent les DLLs. La table peut contenir beaucoup d'entrées mais vous pouvez limiter la liste à une DLL spécifique en utilisant son nom dans la commande. Par exemple, pour voir uniquement les processus qui utilisent oleaut32.dll, tapez
tasklist
/m oleaut32.dll
XIX-C. Filtrer le résultat de Tasklist▲
La sortie peut être réduite à des paramètres spécifiques en utilisant des filtres et le commutateur /FI. Il existe de nombreux opérateurs de comparaison, ils sont détaillés dans le tableau II. Tous les opérateurs ne peuvent pas être utilisés avec tous les paramètres et les valeurs autorisées sont listées dans le tableau III pour les paramètres les plus utiles.
Tableau II. Opérateurs de comparaison pour les filtres
Opérateur | Description |
---|---|
eq | Egal (EQual en anglais) |
ne | Est différent de (Not Equal) |
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 |
Tableau III. 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 |
Status | eq, ne | Running, Not Responding, Unknown |
Username | eq, ne | Un nom d'utilisateur valide (peut être SYSTEM, SERVICE LOCAL, SERVICE RESEAU) |
WindowTitle | eq, ne | Chaîne de caractères valide |
Voici un exemple d'utilisation des filtres avec une commande permettant de trouver les processus qui ne répondent pas. La commande sera
tasklist
/fi "status eq not
responding"
Un autre exemple est la recherche des processus qui utilisent beaucoup de mémoire, par exemple plus de 40 Mo. La commande est :
tasklist
/fi "memusage gt 40000"
Ce dernier exemple montre comment clarifier les multiples occurrences du processus "svchost.exe". (Chacun a un PID différent). Service Host (svchost.exe) est un élément de base du système d'exploitation Windows qui est utilisé dans beaucoup de systèmes de bas-niveau. Ces derniers sont placés dans plusieurs groupes de services, tous s'exécutant sous le nom de service générique "svchost.exe". (Vous pouvez consulter cette explication). Pour voir quels services sont associés à chaque instance de svchost.exe, utilisez la commande
tasklist
/svc /fi "imagename eq svchost.exe"
Vous trouverez plus d'informations sur Tasklist sur ce site Microsoft.