Jak wyświetlić listę wszystkich procesów w wierszu poleceń w systemie Windows?

Odpowiedzi:

373

Praca z cmd.exe:

tasklist

Jeśli masz PowerShell :

get-process

Przez WMI:

proces WMIC

(możesz również odpytywać zdalne komputery /node:ComputerOrIP, a istnieje wiele sposobów na dostosowanie tego polecenia: link )

Factor Mystic
źródło
34
możesz przesłać go do schowka, a następnie wkleić do notatnika: c: \> tasklist | klip
3
W szczególności możesz spróbować> tasklist / FI „SERVICES eq wampapache”
RiggsFolly
Jeśli wyświetlę listę zadań za pomocą listy zadań, w jaki sposób mogę zakończyć zadanie z wiersza polecenia?
Kyle Delaney,
Jeśli używasz programu Powershell, bardzo wygodnie jest potokować go do Out-Gridview, na przykład: „Get-Process | Out-GridView”
Charles Burge
1
Lub po prostu potokuj bezpośrednio do pliku tekstowego: C:> tasklist> C: \ myProcesses.txt
P.Brian.Mackey
85

Istnieje narzędzie o nazwie Narzędzie wiersza polecenia Instrumentacji zarządzania Windows (wmic.exe) .

Możesz zadzwonić, wmic process listaby zobaczyć wszystkie procesy.

Paulius Maruška
źródło
4
Znalazłem ten wątek, próbując rozwiązać ten sam problem, i chciałem zauważyć, że wmic działał dla mnie dobrze. Za pomocą wmic możesz wybrać najbardziej odpowiednie wyjście do parsowania, używając / format: csv lub / format: rawout. Uwaga: wmic nie implementuje poprawnie formatu csv (pola nigdy nie są cytowane, nawet jeśli zawierają osadzone cudzysłowy lub przecinki), więc byłem zmuszony użyć xml.
JimN
1
@ JimN - / format: rawxml i not / format: rawout
Joe
Czy możesz przefiltrować dowolny proces za pomocą wmic?
Kiquenet,
Jeśli chcesz znaleźć wiersz polecenia, który uruchomił proces, oto odpowiedź
Shane Gannon,
29

Chciałem wspomnieć, że WMIC (wpis pam) może zrobić znacznie więcej. Rzuć okiem na moją stronę z fragmentami WMIC, która jest ściągą pokazującą wiele typowych sposobów używania WMIC (z pokazanymi przykładowymi danymi wyjściowymi) tutaj

użytkownik4197
źródło
19
  1. Lista zadań

  2. WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption, Commandline, Processid

lub

 WMIC /OUTPUT:C:\ProcessList.txt path win32_process get Caption,Processid,Commandline

źródło
15

Próbowałem w systemie Windows 7. Polecenie to: TASKLIST /FI "IMAGENAME eq application_name"

Na przykład: c:\>TASKLIST /FI "IMAGENAME eq notepad.exe"

Aby wyświetlić cały proces ze szczegółami portów:

c:\> TASKLIST

Również, aby zabić proces, którego możesz użyć c:\> pskill or tskill processname

Na przykład: c:\> tskill notepad


źródło
1
TASKLIST /FI "IMAGENAME eq explorer.exe"zwraca jedną linię jako wynik. Czy w ogóle można uzyskać sam PID?
Pacerier
dla bardziej zapadającego w pamięć polecenia, taskkilljest równoznaczne ztskill
Mushroom Man,
W wersji 8.1 jest nie tskilltylko taskkilli pskilljest dostarczany przez SysInternals, ale nie przez Windows. (@KiritoBepsibane)
dave_thompson_085
11

tasklist lub pslist z sysinternals. Poza tym get-process jest niesamowity z PowerShell .

Hafthor
źródło
5

Jeśli używasz programu PowerShell , ma polecenie „ps” (jest aliasowane do Get-Process)

użytkownik15123
źródło
2

Jeśli używasz systemu Windows XP, spróbuj użyć polecenia „tasklist”. Wypróbowałem to z Vistą i wydaje się, że również działa.

Marcel
źródło
1

Użyj tego polecenia, aby zobaczyć wszystkie procesy na komputerze z systemem Windows

tasklist / svc

LOKESZ
źródło
1
Czy możesz przefiltrować dowolny proces za pomocą tasklisty z rurą lub w inny sposób?
Kiquenet,
@Kiquenet Tak można: tasklist|findstr "firefox.exe". Jeśli zwraca errorlevel1, proces został znaleziony na liście procesów.
mr
@mrt: findstrnie potrzebuje cudzysłowów wokół igły, chyba że zawiera spację lub znak specjalny, taki jak i chociaż findtak jest, i obie zwracają 1 za NIE znalezione (0 za znalezione).
dave_thompson_085
@ dave_thompson_085 Oczywiście masz rację, ale moim zdaniem dobrym zwyczajem jest umieszczanie ciągów w cudzysłowie. To chroni mnie przed przypadkowym pominięciem ich, gdy są potrzebne. Ponadto ułatwia to odczytanie oświadczenia, ponieważ od razu wiadomo, jaki jest wyszukiwany termin.
mrt
1

Aby zabić proces, użyj:

TASKKILL /F /IM processname.exe

Na przykład:

TASKKILL /F /IM firefox.exe
Gafel
źródło
To nie jest dobra odpowiedź. Pytanie brzmi, jak wymieniać procesy, a nie jak je zabijać.
Rikki Gibson
0

Miałem następujący problem w systemie Windows 2003 SP2: Tasklist nie zwrócił żadnych danych wyjściowych na stdout lub stderr, gdy został wywołany z procesu uruchomionego jako usługa systemu Windows (nawet pod kontem lokalnym). Tasklist powrócił z (nieudokumentowanym) kodem 128.

Wywołany z tego samego programu, uruchomiony jako normalny proces (nie jako usługa), uruchomił się.

Brak pomocy, aby to zmienić. Nie mogłem znaleźć żadnego powodu ani rozwiązania, ale zamiast tego używam „pslist / accepteula” sysinternal.

Ten sam problem z Taskkillem: musiałem go zastąpić pskill.

Olivier Faucheux
źródło
0

Zrobiłem msproject (kod źródłowy c), archiwum jest dostępne pod: archiwum projektu lsproc.zip

i plik exe: plik binarny lsproc.exe

to wyjście narzędzia wiersza poleceń:

lsproc 
Thierry Bremard
[email protected]
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



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

źródło
nie znaleziono pliku, pan
Kiquenet
0

otwórz wiersz polecenia systemu Windows

C:\>tasklist                       // list all the tasks


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

lub

C:\>Taskkill /PID 26356 /F           // kill task by PId
spacedev
źródło
-1

Witaj, jeśli chcesz wyświetlić listę uruchomionych identyfikatorów procesów na komputerze z systemem Windows, otwórz cmdekran i wpisz:

netstat -aon | more

użyj Enterklawisza do przewijania.


źródło
To daje tylko procesy, które uzyskują dostęp do sieci, co NIE jest wszystkimi procesami.
dave_thompson_085