346 votes

Comment lister tous les processus en ligne de commande sous Windows ?

Existe-t-il une commande équivalente à 'ps' sous Unix qui permet de lister tous les processus d'une machine Windows ?

1 votes

1voto

spacedev Points 121

Ouvrir l'invite de commande de Windows

C:\>tasklist                       // list all the tasks

C:\>Taskkill /IM firefox.exe /F     // Kill task by name

ou

C:\>Taskkill /PID 26356 /F           // kill task by PId

0voto

J'ai fait un msproject (code source c), l'archive est disponible à : lsproc.zip archive du projet

et le fichier exe : binaire lsproc.exe

il s'agit d'un outil en ligne de commande sortie :

lsproc 
Thierry Bremard
t.bremard@gmail.com
list binary files and driver with their local path on disks
most of code retreived from msdn site
--------------------

Process ID: 0
--------------------

Process ID: 4
<unknown>  (PID: 4)
<unknown>
    PageFaultCount             : 0x00002E4B
    PeakWorkingSetSize         : 0x00419000
    WorkingSetSize (Mem usage) : 0x0003A000 (232 ko)
    QuotaPeakPagedPoolUsage    : 0x00000000
    QuotaPagedPoolUsage        : 0x00000000
    QuotaPeakNonPagedPoolUsage : 0x00000000
    QuotaNonPagedPoolUsage     : 0x00000000
    PagefileUsage              : 0x00000000
    PeakPagefileUsage          : 0x00000000
--------------------

Process ID: 764
smss.exe  (PID: 764)
\SystemRoot\System32\smss.exe
    PageFaultCount             : 0x000000D6
    PeakWorkingSetSize         : 0x00082000
    WorkingSetSize (Mem usage) : 0x0006C000 (432 ko)
    QuotaPeakPagedPoolUsage    : 0x00006C34
    QuotaPagedPoolUsage        : 0x00001854
    QuotaPeakNonPagedPoolUsage : 0x000004D8
    QuotaNonPagedPoolUsage     : 0x00000280
    PagefileUsage              : 0x0002C000
    PeakPagefileUsage          : 0x00030000
--------------------

Process ID: 816
--------------------

Process ID: 844
winlogon.exe  (PID: 844)
\??\C:\WINDOWS\system32\winlogon.exe
    PageFaultCount             : 0x0000261D
    PeakWorkingSetSize         : 0x00B58000
    WorkingSetSize (Mem usage) : 0x0029B000 (2668 ko)
    QuotaPeakPagedPoolUsage    : 0x0001B054
    QuotaPagedPoolUsage        : 0x000185A4
    QuotaPeakNonPagedPoolUsage : 0x0000C988
    QuotaNonPagedPoolUsage     : 0x0000B6A0
    PagefileUsage              : 0x005EC000
    PeakPagefileUsage          : 0x006C6000
--------------------

...
    PeakPagefileUsage          : 0x03277000
--------------------

Process ID: 2712
lsproc.exe  (PID: 2712)
C:\Documents and Settings\LoginX\Bureau\lsproc.exe
    PageFaultCount             : 0x000000EC
    PeakWorkingSetSize         : 0x000F1000
    WorkingSetSize (Mem usage) : 0x000E4000 (912 ko)
    QuotaPeakPagedPoolUsage    : 0x000032B4
    QuotaPagedPoolUsage        : 0x000032B4
    QuotaPeakNonPagedPoolUsage : 0x00000400
    QuotaNonPagedPoolUsage     : 0x00000398
    PagefileUsage              : 0x00042000
    PeakPagefileUsage          : 0x0005C000
There are 131 drivers:
--------------------
   1: ntkrnlpa.exe
\WINDOWS\system32\ntkrnlpa.exe
--------------------
   2: hal.dll
\WINDOWS\system32\hal.dll
--------------------
   3: KDCOM.DLL
\WINDOWS\system32\KDCOM.DLL
--------------------
   4: BOOTVID.dll
\WINDOWS\system32\BOOTVID.dll

...

--------------------
 129: HTTP.sys
\SystemRoot\System32\Drivers\HTTP.sys
--------------------
 130: hiber_WMILIB.SYS
\SystemRoot\System32\Drivers\hiber_WMILIB.SYS
--------------------
 131: ntdll.dll
\WINDOWS\system32\ntdll.dll

--------------

0 votes

Fichier non trouvé, monsieur

0voto

Olivier Faucheux Points 105

J'ai rencontré le problème suivant sous Windows 2003 SP2 : Tasklist ne renvoie aucune sortie sur stdout ou stderr, lorsqu'il est appelé à partir d'un processus démarré en tant que service Windows (même sous Local Account). Tasklist renvoyait le code 128 (non documenté).

Appelé à partir du même programme lancé comme un processus normal (pas comme un service), il s'est exécuté.

Aucune aide pour le changer. Je n'ai pas trouvé de raison ou de solution mais j'ai utilisé "pslist /accepteula" de sysinternal à la place.

Même problème avec taskkill : j'ai dû le remplacer par pskill.

0voto

programmer365 Points 1

En utilisant WMI et Powershell, vous pouvez le faire :

Get-WMIObject -Class Win32_Process

Ensuite, vous pouvez filtrer les propriétés en utilisant Select-Object et afficher dans l'interface graphique en utilisant Out-GridView .

0voto

sammy Points 101

Pour plus d'informations sur le processus

en cours d'exécution dans cmd, handle est l'identifiant du processus :

wmic.exe path Win32_Process where handle='22792' get Commandline /format:list

résultat :

/path/to/app.exe [args specified goes here]

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X