Lister et arrêter les processus en ligne de commande
Noter ce cours :
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 + 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.
Utilisation de la commande Tasklist
La commande Tasklist permet de lister l'ensemble des processus en cours d'exécution :
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