Chapitre 13 : Gérer les programmes de Windows à partir de l’invite de commande : Tasklist

         1 – 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.

         2 – 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.

         3 – 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.

         4 – 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

         5 – 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 »