ฆ่ากระบวนการใน Windows จริงๆ


375

บางครั้งโปรแกรมบนเครื่องที่ใช้ Windows จะทำงานผิดปกติและติดค้าง ดังนั้นฉันจะเรียกผู้จัดการงานและกดปุ่ม "สิ้นสุดกระบวนการ" อย่างไรก็ตามสิ่งนี้อาจไม่ได้ผลเสมอไป ถ้าฉันลองมันมากพอมันจะตายในที่สุด แต่ฉันอยากจะฆ่ามันทันที บน Linux ฉันสามารถkill -9รับประกันได้ว่ากระบวนการจะต้องตาย

นอกจากนี้ยังสามารถใช้สำหรับการเขียนสคริปต์ชุดและการเขียนสคริปต์ชุดเป็นโปรแกรม

มีโปรแกรมหรือคำสั่งบางอย่างที่มาพร้อมกับ Windows ซึ่งมักจะฆ่ากระบวนการหรือไม่? แอปของบุคคลที่สามฟรีจะใช้ได้แม้ว่าฉันจะสามารถทำได้บนเครื่องที่ฉันนั่งลงเป็นครั้งแรก


19
กระบวนการจรจัดเป็นปัญหาที่พบได้บ่อยในการเขียนโปรแกรมที่ฉันไม่เห็นด้วย นี่ไม่ใช่คำถามนอกหัวข้อ
Dan Moulding

19
ฉันจัดการกับการจัดการกระบวนการทุกวันในฐานะนักพัฒนา ทั้งหมดนี้เป็นหัวข้อสำหรับฉัน!
John Fitzpatrick

14
ฉันแนะนำอย่างยิ่งให้ลบคำถามนี้ +195 และมันก็เป็น google hit ที่เร็วสำหรับคำถามที่เกี่ยวข้อง
Joshua

2
"ถ้าพวกเขาเกี่ยวข้องกับเครื่องมือที่ใช้เป็นหลักสำหรับการเขียนโปรแกรมโดยตรง" ฉันพบปัญหานี้เกี่ยวกับ Visual Studio ที่ทำให้กระบวนการทำงานซึ่งทำให้ฉันไม่สามารถฆ่ามันได้ การปิด Visual Studio ช่วยฆ่ากระบวนการที่มีปัญหา
Joakim

คุณสามารถใช้PowerShell cmdlet
Rosberg Linhares

คำตอบ:


318

"End Process" บนการเรียก Processes-Tab TerminateProcessซึ่งเป็นวิธีที่ดีที่สุดที่ Windows รู้ว่าจะฆ่ากระบวนการ

ถ้ามันไม่หายไปตอนนี้มันถูกล็อคอยู่ที่กำลังรอทรัพยากรเคอร์เนล (อาจเป็นไดรเวอร์ buggy) และไม่มีอะไร (รีบูตเครื่องใหม่) ที่คุณสามารถทำได้เพื่อทำให้กระบวนการหายไป

ดูรายการบล็อกนี้จาก wayback เมื่อ: http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

ระบบที่ใช้ Unix อย่างลีนุกซ์ยังมีปัญหาที่กระบวนการสามารถอยู่รอดได้kill -9ถ้ามันอยู่ในสิ่งที่เรียกว่า "Uninterruptible sleep" (แสดงโดย top และ ps เป็น state D) ที่จุดที่กระบวนการนอนหลับดีจนไม่สามารถประมวลผลสัญญาณขาเข้าได้ (ซึ่งเป็นสิ่งที่kill- ส่งสัญญาณ)

โดยปกติแล้ว Uninterruptible sleep จะใช้เวลาไม่นาน แต่ใน Windows โปรแกรมควบคุมที่ใช้งานไม่ได้หรือโปรแกรม userpace ที่ขาดงาน ( vforkไม่ใช้exec) อาจทำให้เครื่องนอนไม่หลับได้Dตลอดไป


29
ในขณะที่ฉันเกลียดที่นี่เป็นคำตอบที่ถูกต้องมีข้อสงสัยในใจของฉันว่ามันถูกต้องกว่า taskkill ด้านล่าง .... ไดรเวอร์ buggy โง่!
codetaku

6
น่ารำคาญน้อยกว่าการรีบูตเล็กน้อยคือการออกจากระบบ / เปิดอีกครั้ง ยังคงสูญเสียงาน แต่อาจไม่มากเวลา
awidgery

8
ที่เกิดจากกระบวนการอื่นทำให้แน่ใจว่ากระบวนการเริ่มต้นทำงานอยู่เสมอ คุณฆ่าตัวอย่างเก่าของคุณและผู้ดูแลใหม่เริ่มต้นขึ้นแล้ว
pilif

8
คำตอบนี้ไม่ถูกต้องเลย "End Process" ไม่ใช่วิธีที่ดีที่สุดในการฆ่ากระบวนการเนื่องจากไม่สามารถฆ่ากระบวนการบริการ (ตัวอย่าง) taskkill /fเป็นที่สุด
user626528

5
TaskKill / f เรียกTerminateProcessAPI เท่านั้น มันทำสิ่งเดียวกันกับตัวจัดการงาน (แม้ว่าคุณจะถูกต้องด้วยสิทธิ์ที่ยกระดับ)
pilif

233
taskkill /im myprocess.exe /f

"/ f" สำหรับ "แรง" หากคุณรู้จัก PID คุณสามารถระบุได้ดังเช่นใน:

taskkill /pid 1234 /f

ตัวเลือกอื่น ๆ มากมายสามารถทำได้เพียงพิมพ์ taskkill /? สำหรับพวกเขาทั้งหมด ตัวเลือก "/ t" จะฆ่ากระบวนการและกระบวนการลูกใด ๆ ที่อาจเป็นประโยชน์กับคุณ


10
เพียงแค่ทราบ สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณกำลังเขียนสคริปต์สำหรับการจัดการเซิร์ฟเวอร์ kill.exe (จากชุดความละเอียด NT) จะทำให้โปรแกรมออก แต่ถ้าคุณติดตั้งตัวจัดการความผิดพลาด (โดยเฉพาะอย่างยิ่ง windbg) อาจทำให้เกิดปัญหาได้เนื่องจากระบบปฏิบัติการจะเห็นกระบวนการที่ถูกฆ่าว่าเกิดข้อผิดพลาดและพยายามแก้ไขข้อผิดพลาด มัน. Taskkill จะไม่ส่งผลให้เกิดปัญหานี้
Aaron

6
@lzprgmr - taskkill และ "end task" อาจเรียกฟังก์ชัน windows ต้นแบบ "TerminateProcess" ที่เหมือนกัน
JosephStyons

60
ไม่มีประสิทธิภาพมากขึ้นจากนั้น "จบกระบวนการ" จากตัวจัดการงาน
Eddie

2
ฉันพยายามฆ่า SugarSync.exe โดยไม่ต้องรีบูต (ตั้งแต่เริ่มต้น SugarSync สองครั้งก่อนที่มันจะหยุดทำงานจริง ๆ ) แต่ taskkill / T / F / IM SugarSync.exe ไม่ทำงาน - แม้ว่า มันอ้างว่า "ความสำเร็จ"
Jon Coombs

2
ขอบคุณ! taskkill /pid 1234 /fทำงานเมื่อEnd Taskปฏิเสธที่จะทำงาน! ว้าว!
Hendy Irawan

37

Process Hackerมีวิธีการฆ่ากระบวนการมากมาย

(คลิกขวาที่กระบวนการจากนั้นไปที่ Miscellaneous-> Terminator)


5
ไม่สามารถหาทางพิสูจน์ได้มากนักเนื่องจากการค้นหาสิ่งนี้เพียงแค่ดาวน์โหลดฟรีนับล้านครั้ง !!! การเชื่อมโยง แต่มันก็ทำในสิ่งที่มันบอกว่าทำไวรัสความเสี่ยงและทั้งหมด
bwerks

2
@Nuzzolilo: แน่นอน! คลิกขวาที่กระบวนการไปที่เบ็ดเตล็ด> Terminator
user541686

6
ใช้งานไม่ได้กับทุกกระบวนการฉันมีหนึ่งตัวเลือกที่รอดชีวิตมาได้
Zitrax

7
มันฉายหน้าจอคอมพิวเตอร์ของฉัน กระบวนการหายไปหลังจากรีบูต เป็นงานที่ดี ... -.- '
Pedro Oliveira

5
น่าเสียดายที่ Terminator ถูกลบใน v2.39 :(
raymai97

23

JosepStyons ถูกต้อง เปิด cmd.exe และเรียกใช้

taskkill /im processname.exe /f

หากมีข้อผิดพลาดในการพูด

ข้อผิดพลาด: กระบวนการ "process.exe" ด้วย PID 1234 ไม่สามารถยกเลิกได้ สาเหตุ: การเข้าถึงถูกปฏิเสธ

จากนั้นลองเรียกใช้ cmd.exe ในฐานะผู้ดูแลระบบ


9
ทำงานเป็นผู้ดูแลข้อผิดพลาดการเปลี่ยนแปลง ตอนนี้มันบอกว่า: ERROR: The process with PID 17888 (child process of PID 17880) could not be terminated. Reason: There is no instance of the task.และมันหมายถึงพ่อแม่ PID 17880 เพราะหาแม่ไม่เจอมันจะไม่ฆ่าเด็กกำพร้า :(
Jesse Chisholm

1
"คุณต้องฆ่ากระบวนการของเด็กด้วยหากวางไข่เพื่อฆ่ากระบวนการของคุณสำเร็จ" ลองใช้stackoverflow.com/questions/12528963//
Dhruv Chandhok

ในกรณีของฉันกระบวนการซอมบี้ที่ฉันบอกให้ฆ่าเป็นลูกคนเดียวและไม่มีพ่อแม่ แต่ซอมบี้ก็ยังคิดว่ามีพ่อแม่อยู่ ในกรณีของฉันแก้ไขโดยใช้เส้นทางการซ่อมแซมขั้นสูงของระบบการตั้งค่า Windows 8.1 แต่การยกเลิกจากการเช็ดดิสก์จริง ๆ และเพิ่งทำการรีบูตแบบบังคับเต็มรูปแบบ การปิดและการรีบูตตามปกติคือ sleep / hibernation (เพื่อประหยัดเวลาในการเริ่มต้น) ไม่น่ารำคาญได้รับมันจะทำเต็มรูปแบบปิด
Jesse Chisholm

"การเข้าถึงถูกปฏิเสธ" หมายความว่ากระบวนการอยู่ในกระบวนการปิดอยู่แล้ว ตัวอย่างเช่นหากคุณพยายามปิดไว้ก่อนหน้านี้ คุณจะต้องรอจนกว่าจะปิด
Pacerier

ผลลัพธ์ taskkill ภายใต้สิทธิ์ผู้ดูแลระบบ: การเข้าถึงถูกปฏิเสธ
amuliar

22

รับ process explorer จาก sysinternals (ตอนนี้ Microsoft)

Process Explorer - Windows Sysinternals | เอกสาร Microsoft


15
นั่นให้ข้อมูลเพิ่มเติม (และความสามารถบางอย่างที่ จำกัด ในการค้นหาตัวจัดการล็อก) แต่ฉันไม่ได้ประสบความสำเร็จในการฆ่างานมากกว่าการจัดการงานขั้นพื้นฐาน กระบวนการบางอย่าง (เช่นโปรแกรมป้องกันไวรัสและ SugarSync.exe) เพียงปฏิเสธที่จะตาย
Jon Coombs

15

เคล็ดลับหนึ่งที่ใช้งานได้ดีคือการแนบตัวดีบักเกอร์แล้วออกจากตัวดีบัก

ใน XP หรือ Windows 2003 คุณสามารถทำได้โดยใช้ ntsd ที่ส่งมาจากกล่อง:

ntsd -pn myapp.exe

ntsd จะเปิดหน้าต่างใหม่ เพียงพิมพ์ 'q' ในหน้าต่างเพื่อออกจากโปรแกรมดีบั๊กและทำกระบวนการ

ฉันรู้ว่านี่ใช้งานได้แม้ว่าตัวจัดการงานจะไม่สามารถฆ่ากระบวนการได้

น่าเสียดายที่ ntsd ถูกลบออกจาก Vista และคุณต้องติดตั้งเครื่องมือดีบัก(ฟรี) สำหรับ windowsเพื่อรับดีบักเกอร์ที่เหมาะสม


1
ขอบคุณมากสำหรับเรื่องนี้. เพิ่ม "-c q" (ไม่ต้องใส่เครื่องหมายอัญประกาศ) ลงใน autoquit ซึ่งทำให้เป็นตัวประมวลผลที่สมบูรณ์แบบ
Joanis

2
เมื่อ Visual Studio และแอปพลิเคชันที่กำลังดีบั๊กหยุดการทำงานให้แนบและฆ่าอินสแตนซ์เก่าของ VS killer อาจเป็นตัวอย่างใหม่ของ VS ซึ่งสามารถเปิดโครงการเก่าและอนุญาตให้คุณทำงานต่อไป
Bruno Martinez

ฉันไม่สามารถหาวิธีดาวน์โหลดสิ่งใดจากลิงค์อื่นที่ไม่ใช่winsdk_web.exeสิ่งอื่น
endolith

ตอนนี้คุณจะได้รับมันในวินโดวส์ 10 SDK โดยการเรียกใช้โปรแกรมติดตั้งและทุกอย่างแล้วยกเลิกการเลือก แต่ "การแก้จุดบกพร่องเครื่องมือสำหรับ Windows" ( docs.microsoft.com/en-us/windows-hardware/drivers/debugger/... )
เบิร์น

6

ตั้งค่าคำสั่ง AT เพื่อเรียกใช้ตัวจัดการงานหรือกระบวนการสำรวจเป็นระบบ

AT 12:34 /interactive "C:/procexp.exe"

หาก process explorer อยู่ในไดรฟ์ C รูตของคุณสิ่งนี้จะเปิดเป็นระบบและคุณสามารถฆ่ากระบวนการใด ๆ โดยไม่ได้รับข้อผิดพลาดที่ถูกปฏิเสธการเข้าถึง ตั้งค่านี้สำหรับนาทีในอนาคตจากนั้นมันจะปรากฏขึ้นสำหรับคุณ


4
ฉันได้รับคำเตือนต่อไปนี้เมื่อพยายามทำเช่นนี้ดังนั้นจึงไม่ทำงานอีกต่อไป: "คำเตือน: เนื่องจากการปรับปรุงด้านความปลอดภัยงานนี้จะทำงานตามเวลาที่คาดหวัง แต่ไม่สามารถโต้ตอบได้ใช้ยูทิลิตี้ schtasks.exe หากต้องการงานแบบโต้ตอบ /? 'เพื่อดูรายละเอียด) "
WhiteKnight

0

เมื่อปฏิเสธการเข้าถึง ntsd ให้ลอง:

ZeroWave ถูกออกแบบมาให้เป็นเครื่องมือง่ายๆที่จะให้การยกเลิกหลายระดับของกระบวนการใด ๆ

ZeroWave ยังเป็นโปรแกรมที่ใช้งานง่ายเนื่องจากติดตั้งง่ายและมีส่วนต่อประสานกราฟิกที่เป็นมิตร

ZeroWave มีโหมดการเลิกจ้างสามโหมดและด้วยโหมด "INSANE" สามารถยุติกระบวนการใด ๆ ที่สามารถทำงานบน Windows

ดูเหมือนว่า ZeroWave ไม่สามารถฆ่า avp.exe ได้


0

FYI บางครั้งคุณสามารถใช้ SYSTEM หรือ Trustedinstaller เพื่อฆ่าภารกิจ;)

google quickkill_3_0.bat

sc config TrustedInstaller binPath= "cmd /c TASKKILL /F  /IM notepad.exe
sc start "TrustedInstaller"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.