คุณจะทำรายการกระบวนการทั้งหมดในบรรทัดคำสั่งใน Windows ได้อย่างไร


291

มีคำสั่งเทียบเท่า 'ps' ใน Unix ที่สามารถแสดงรายการกระบวนการทั้งหมดบนเครื่อง Windows ได้หรือไม่?


คำตอบ:


373

ทำงานกับ cmd.exe:

tasklist

หากคุณมีPowershell :

get-process

ผ่าน WMI:

กระบวนการ wmic

(คุณสามารถค้นหาเครื่องระยะไกลได้เช่นกัน/node:ComputerOrIPและยังมีอีกหลายวิธีในการปรับแต่งคำสั่งนี้: ลิงก์ )


34
คุณอาจต้องการไพพ์ไปที่คลิปบอร์ดแล้ววางลงใน notepad: c: \> tasklist | คลิป

3
โดยเฉพาะคุณสามารถลอง> tasklist / FI "บริการ eq wampapache"
RiggsFolly

หากฉันแสดงรายการงานที่มีรายการงานฉันจะจบงานจากพรอมต์คำสั่งได้อย่างไร
Kyle Delaney

ถ้าคุณใช้ Powershell มันสะดวกมากที่จะเอาไปวางไว้ที่ Out-Gridview เช่น: "Get-Process | Out-GridView"
Charles Burge

1
หรือเพียงแค่ไพพ์มันลงในไฟล์ข้อความโดยตรง: C:> tasklist> C: \ myProcesses.txt
P.Brian.Mackey

85

มีเครื่องมือที่เรียกว่าเป็นWindows Management Instrumentation เครื่องมือบรรทัดคำสั่ง (wmic.exe)

คุณสามารถโทรwmic process listเพื่อดูกระบวนการทั้งหมด


4
ฉันพบสิ่งนี้ดังนั้นเธรดขณะพยายามแก้ไขปัญหาเดียวกันและต้องการชี้ให้เห็นว่า wmic ทำงานได้ดีสำหรับฉัน ด้วย wmic คุณสามารถเลือกเอาต์พุตที่เหมาะสมที่สุดสำหรับการวิเคราะห์โดยใช้ / format: csv หรือ / format: rawout ระวัง: wmic ใช้รูปแบบ csv ไม่ถูกต้อง ( ไม่มีการอ้างอิงฟิลด์แม้ว่าจะมีเครื่องหมายคำพูดหรือเครื่องหมายจุลภาค) ดังนั้นฉันถูกบังคับให้ใช้ xml
JimN

1
@JimN - / format: rawxml และไม่ใช่ / format: rawout
Joe

คุณสามารถกรองกระบวนการโดยใช้ wmic ได้ไหม?
Kiquenet

หากคุณต้องการค้นหาบรรทัดคำสั่งที่เปิดใช้งานกระบวนการนี่คือคำตอบ
Shane Gannon

29

ผมอยากจะพูดถึงว่า WMIC (รายการของแพม) สามารถทำมากได้มากขึ้น ดูหน้าตัวอย่างเกร็ดเล็กเกร็ดน้อย WMIC ของฉันซึ่งเป็น cheatsheet ที่แสดงวิธีการทั่วไปมากมายในการใช้ WMIC (โดยแสดงผลลัพธ์ตัวอย่าง) ที่นี่


19
  1. รายการงาน

  2. WMIC /OUTPUT:C:\ProcessList.txt กระบวนการรับคำอธิบายภาพ Commandline Processid

หรือ

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

15

ฉันลองบน Windows 7 คำสั่งคือ: TASKLIST /FI "IMAGENAME eq application_name"

เช่น: c:\>TASKLIST /FI "IMAGENAME eq notepad.exe"

หากต้องการแสดงกระบวนการทั้งหมดพร้อมรายละเอียดพอร์ต:

c:\> TASKLIST

นอกจากนี้เพื่อฆ่ากระบวนการที่คุณสามารถใช้ได้ c:\> pskill or tskill processname

เช่น: c:\> tskill notepad


1
TASKLIST /FI "IMAGENAME eq explorer.exe"ส่งคืนหนึ่งบรรทัดทั้งหมดเป็นเอาต์พุต อย่างไรก็ตามมีเพียงการรับ PID เท่านั้นหรือไม่
Pacerier

สำหรับคำสั่งที่น่าจดจำมากขึ้นของมนุษย์นั้นtaskkillมีความหมายเหมือนกันกับtskill
Mushroom Man

เมื่อวันที่ 8.1 ไม่มีtskillเพียงtaskkillและpskillให้บริการโดย SysInternals แต่ไม่ใช้ Windows (@KiritoBepsibane)
dave_thompson_085

11

tasklist หรือpslistจาก sysinternals นอกจากนี้ยังได้รับการประมวลผลเป็นที่น่าตื่นตาตื่นใจจากPowerShell



2

หากคุณใช้งาน Windows XP ให้ลองใช้คำสั่ง 'tasklist' ฉันลองใช้กับ Vista และดูเหมือนว่าจะใช้งานได้


1

ใช้คำสั่งนี้เพื่อดูกระบวนการทั้งหมดในเครื่อง windows

tasklist / svc


1
คุณสามารถกรองกระบวนการโดยใช้ tasklist ด้วยไพพ์หรือวิธีอื่นได้หรือไม่?
Kiquenet

@Kiquenet tasklist|findstr "firefox.exe"ใช่คุณสามารถ: ถ้าสิ่งนี้คืนค่าerrorlevel1 กระบวนการที่พบในรายการของกระบวนการ
mrt

@mrt: findstrไม่จำเป็นต้องใส่เครื่องหมายอัญประกาศล้อมรอบนอกเสียจากว่ามันจะมีช่องว่างหรืออักขระพิเศษเช่น & ถึงแม้ว่าfindและทั้งคู่จะคืนค่า 1 สำหรับไม่พบ (0 สำหรับการค้นหา)
dave_thompson_085

@ dave_thompson_085 แน่นอนคุณพูดถูก แต่ในความคิดของฉันมันเป็นนิสัยที่ดีที่จะใส่คำพูดลงไป สิ่งนี้ทำให้ฉันไม่ได้ตั้งใจปล่อยทิ้งไว้เมื่อมีความจำเป็น นอกจากนี้ยังทำให้อ่านข้อความได้ง่ายขึ้นเนื่องจากเห็นได้ชัดเจนว่าคำค้นหาคืออะไร
mrt

1

เพื่อฆ่ากระบวนการใช้:

TASKKILL /F /IM processname.exe

ตัวอย่างเช่น:

TASKKILL /F /IM firefox.exe

นี่ไม่ใช่คำตอบที่ดี คำถามคือจะทำรายการกระบวนการอย่างไรไม่ฆ่าพวกเขา
Rikki Gibson

0

ฉันมีปัญหาต่อไปนี้ใน Windows 2003 SP2: Tasklist ไม่ส่งคืนผลลัพธ์ใด ๆ ใน stdout หรือ stderr เมื่อเรียกจากกระบวนการที่เริ่มต้นเป็นบริการ Windows (แม้ภายใต้บัญชี Local) รายการงานกลับมาพร้อมกับรหัส (ไม่มีเอกสาร) 128

เรียกว่าจากโปรแกรมเดียวกันเริ่มต้นเป็นกระบวนการปกติ (ไม่ใช่เป็นการให้บริการ) มันเรียกใช้

ไม่มีความช่วยเหลือในการเปลี่ยนแปลง ฉันหาเหตุผลหรือวิธีแก้ปัญหาไม่ได้ แต่ใช้ "pslist / accepteula" ของ sysinternal แทน

ปัญหาเดียวกันกับ taskkill: ฉันต้องแทนที่มันด้วย pskill


0

ฉันทำ msproject (ซอร์สโค้ด c) แล้วไฟล์เก็บถาวรมีอยู่ที่: lsproc.zip โครงการเก็บถาวร

และไฟล์ exe: ไบนารี lsproc.exe

นี่เป็นเอาต์พุตเครื่องมือบรรทัดคำสั่ง:

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



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

ไม่พบไฟล์, มิสเตอร์
Kiquenet

0

เปิดหน้าต่างพรอมต์คำสั่ง

C:\>tasklist                       // list all the tasks


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

หรือ

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

-1

สวัสดีถ้าคุณต้องการแสดงรายการ ID กระบวนการทำงานบนเครื่อง Windows ให้เปิดcmdหน้าจอและประเภท:

netstat -aon | more

ใช้Enterปุ่มเพื่อเลื่อน


นั่นให้กระบวนการที่เข้าถึงเครือข่ายซึ่งไม่ใช่กระบวนการทั้งหมด
dave_thompson_085
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.