Lister et arrêter les processus en ligne de commande

Noter ce cours :

Liens sponsorisés :

Vous aurez peut-être pendant votre utilisation de Windows le besoin de lister et fermer certains processus en ligne de commande, pour automatiser certains scripts ou encore en cas de problème. Les commandes tasklist (lister les processus sur un ordinateur local ou distant) et taskkill (arrêter un processus) permettent cela.

La syntaxe des commandes ne change pas parmis les différentes versions de Windows, seule la manière d'accéder à l'invite de commandes en mode administrateur diffère.

Avec Windows 8.1

Appuyez sur les touches Windows Touche Windows + X puis cliquez sur Invite de commandes (admin).

Avec Windows 7

Cliquez sur le menu Windows, tapez dans la zone de recherche cmd, faites un clic avec le bouton droit de votre souris sur Invite de commandes puis cliquez sur Exécuter en tant qu'administrateur.

Avec Windows XP

Cliquez sur Démarrer => Exécuter puis tapez cmd et validez par Entrée.

Invite de commandes (Windows 7)

Utilisation de la commande Tasklist

La commande Tasklist permet de lister l'ensemble des processus en cours d'exécution :

Liste des processus - tasklist

La syntaxe de la commande tasklist est la suivante :

TASKLIST [/S système [/U utilisateur [/P mot_de_passe]]]] [/M [module] | /SVC | /V] [/FI filtre] [/FO format] [/NH]

Cette commande accepte la liste de paramètres suivants :

Paramètre Signification Exemple
/S système Spécifie le système distant auquel se connecter tasklist /S systeme
/U [domaine\utilisateur] Spécifie le contexte utilisateur sous lequel la commande doit s'exécuter. tasklist /S systeme /U domaine\admin
/P [mot_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 la dll donnée. Si le nom de module n'est pas spécifié, tous les modules chargés sont affichés. tasklist /M shell32.dll : retourne tous les processus utilisant la dll shell32.dll.
/SVC Affiche les services hébergés dans chaque processus. tasklist /SVC
/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 parmi la liste ci-dessous.
/FO format Spécifie le format de sortie parmis les valeurs suivantes : TABLE, LIST, CSV tasklist /FO CSV > fichier.csv (enregistre dans le répertoire courant le fichier fichier.csv qui contiendra la liste des processus en cours d'exécution).
/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". tasklist /NH

Filtres disponibles pour la commande tasklist /FI

Il existe différents filtres que vous pouvez combiner à chaque fois en rajoutant /FI filtre au bout de la ligne de commandes :

Nom du filtre Opérateurs valides Valeurs acceptées
STATUS eq (égal), ne (différent) RUNNING (en cours d'exécution), NOT RESPONDING (ne répond pas), UNKNOWN (état inconnu)
IMAGENAME eq (égal), ne (différent) Nom d'image
PID eq (égal), ne (différent), gt (supérieur à), lt (inférieur à), ge (supérieur ou égal), le (inférieur ou égal) Valeur du PID (Numéro d'identification du processus)
SESSION eq (égal), ne (différent), gt (supérieur à), lt (inférieur à), ge (supérieur ou égal), le (inférieur ou égal) Numéro de session
SESSIONNAME eq (égal), ne (différent) Nom de session
CPUTIME eq (égal), ne (différent), gt (supérieur à), lt (inférieur à), ge (supérieur ou égal), le (inférieur ou égal) Heure valide au format hh:mm:ss (hh : heures, mm : minutes, ss : secondes)
MEMUSAGE eq (égal), ne (différent), gt (supérieur à), lt (inférieur à), ge (supérieur ou égal), le (inférieur ou égal) Valeur numérique, sachant que MEMUSAGE renvoie la mémoire utilisée en Ko
USERNAME eq (égal), ne (différent) Nom d'utilisateur
SERVICES eq (égal), ne (différent) Nom de service
WINDOWTITLE eq (égal), ne (différent) Nom de fenêtre (non pris en compte sur un ordinateur distant)
MODULES eq (égal), ne (différent) Nom de DLL de module

Voici sans plus tarder des exemples d'utilisation :

Lister tous les processus occupant plus de 20 Mo de RAM

tasklist /FI "MEMUSAGE gt 20000"

Lister tous les processus appelant shell32.dll dans un fichier CSV (fichier.csv)

tasklist /FI "MODULES eq shell32.dll" > fichier.csv

Lister tous les processus occupant plus de 10 Mo de RAM et appelant le module shell32.dll

tasklist /FI "MEMUSAGE gt 10000" /FI "MODULES eq shell32.dll"

Utilisation de la commande Taskkill

La commande taskkill permet d'arrêter un ou plusieurs processus en acceptant les mêmes filtres que la commande tasklist. Si vous souhaitez arrêter les processus consommant plus de 300 Mo de RAM (par exemple) utilisez la commande suivante :

taskkill /FI "MEMUSAGE gt 300000"

Pour arrêter le processus calc.exe, indiquez la commande suivante :

taskkill /IM notepad.exe

Vous avez aimé cet article intitulé Lister et arrêter les processus en ligne de commande ? Partagez-le !
Vulgarisation-informatique.com
Cours en informatique & tutoriels