การปิดโปรแกรมด้วยคอมมานด์ไลน์

เราสามารถปิดโปรแกรมที่ค้างหรือโปรแกรมที่ต้องการด้วย Task Manager ซึ่งต้องทำผ่านหน้าจอเท่านั้น แต่คงเป็นเรื่องลำบากถ้าต้องทำผ่าน Task Manager เท่านั้น ถ้ามีคำสั่งที่ใช้ปิดโปรแกรมที่ต้องการได้ มันคงจะสะดวกกว่ามาก เพราะสามารถเขียนเป็นโปรแกรมเล็กๆ เพื่อใช้สั่งปิดโปรแกรมให้กับยูสเซอร์ได้
โดยมีสองคำสั่งที่ต้องรู้จัก คือ Tasklist, Taskkill
Tasklist ใช้แสดงรายชื่อโพรเซสหรือโปรแกรมต่างๆ ที่ทำงานอยู่  
Taskkill ใช้ลบโพรเซสหรือโปรแกรมที่ทำงานอยู่

ให้เข้าไปที่ command line แล้วพิมพ์ Tasklist ตามรูป ส่วนรายละเอียด ถ้าต้องการทราบให้พิมพ์ tasklist /?

Console output of TASKLIST

จากข้อมูลที่แสดงออกมา สิ่งที่เราต้องสนใจมีอยู่ 2 ตัวด้วยกันคือ Image Name และ PID ซึ่งตัว 
Image Name คือชื่อโปรเซสของโปรแกรมต่างๆ ตัวอย่างเช่น FireFox คือ firefox.exe หรือ Internet Explorer ก็คือ iexplore.exe นั่นเอง

ส่วน PID คือ Process Identification คือหมายเลขประจำตัวของ Process ที่รันอยู่ในขณะนี้ ซึ่ง PID นี้ก็จะเปลี่ยนไปเรื่อยๆ ตามลำดับการเรียกใช้งาน Process แต่ละตัว ไม่มีค่าถาวรสำหรับ Process แต่ละตัว

ทั้ง Image Name และ PID มีความสำคัญเพราะเป็นตัวช่วยบ่งชี้ให้เราได้ว่าเราจะปิด Process ตัวไหน และเมื่อเจอรายละเอียดของโปรแกรมหรือโปรเซสที่ต้องการแล้วใช้ Taskkill เพื่อปิดโปรแกรมนั้นเสีย เช่น ต้องการปิดโปรแกรม Firefox (PID 6896) ลบได้ 2 วิธี คือ

1. การปิดด้วย Process ID หรือ PID โดยใช้คำสั่ง :

taskkill /PID 6896 /F



2. ปิดด้วยชื่อไฟล์ Execute หรือ Image Name โดยใช้คำสั่ง:

 taskkill /IM Firefox.exe /F

รูป

การสั่งปิดด้วย Image Name จะต่างจากปิดด้วย PID คือมันจะทำการปิดทุกๆ Instant ของ Firefox.exe ที่เปิดอยู่ หรือปิดทุกๆ PID ของ Firefox.exe นั่นเอง

ส่วน /F หมายถึงการบังคับให้ปิดไม่ว่า Process นั้นจะยินยอมหรือไม่ก็ตาม แน่นอนว่าข้อมูลต่างๆ บน Process นั้นที่ยังไม่ได้ถูก Save ก็จะหายไปด้วย

ด้วยความสามารถของ Taskkill ยังไม่ได้มีแค่นั้น เราสามารถดูความสามารถอื่นๆ ได้โดยคำสั่ง :

taskkill /?



จากรูปเรายังสามารถปิด Process ทุกๆ Process ที่ถูกเรียกโดย User คนใดคนหนึ่งก็ได้ เช่นต้องการจะปิด Process ที่รันโดย User ชื่อ Patpong ก็สามารถใช้คำสั่งนี้:

taskkill /FI "USERNAME eq Patpong" /F

ยังมีตัว Filter อีกหลายตัวที่ช่วยในการปิด Process หลายๆ ตัวพร้อมกัน ดังในตัวอย่างด้านบนที่ใช้พารามิเตอร์ Filter /FI และตามด้วยOperator ก็คือ eq เป็นต้น ซึ่ง Operator ต่างๆ ของ Filter (/FI) ประกอบไปด้วย

eq คือ เท่ากับ (equals)

ne คือ ไม่เท่ากับ (not equal)

gt คือ มากกว่า (greater than)

lt คือ น้อยกว่า (less than)

ge คือ มากกว่าหรือเท่ากับ (greater than or equal)

le คือ น้อยกว่าหรือเท่ากับ (less than or equal)

Taskkill ยังทำอย่างอื่นได้อีกเยอะ ตัวอย่างอื่นๆ ในการใช้ Taskkill :

  TASKKILL /IM notepad.exe

  TASKKILL /PID 1230 /PID 1241 /PID 1253 /T

  TASKKILL /F /IM cmd.exe /T

  TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"

  TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe

  TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *

TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

เราสามารถปิดโปรแกรม "Not Responding"  โดยไม่ต้องเรียก Task Manager ให้เสียเวลา แถมใช้ทรัพยากรน้อยกว่าด้วย ให้คุณสร้างช็อตคัดโดยใช้คำสั่งต่อไปนี้


Taskkill /f /fi "status eq not responding"


อ้างอิง https://support.microsoft.com/th-th/kb/2793865
http://commandwindows.com/tasklist.htm,  http://commandwindows.com/taskkill.htm

เรื่องที่เกี่ยวข้อง เพิ่ม Kill Not Responding Tasks ไว้ในเมนูคลิกขวา

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

วิธีการลบ printer ที่ remove device ปรกติไม่ออก

การใช้งานคำสั่ง Net Use สร้างไดร์ฟกับทรัพยากรที่แชร์ไว้

ตั้งค่าให้ใช้ Remote Desktop ได้มากกว่า 1 session บน Windows Server 2012