บางครั้ง อาจดูเหมือนว่ามีกระบวนการ (processes) ทำงานบนคอมพิวเตอร์มากเกินไป จนคุณไม่แน่ใจว่าตัวไหนปกติ และตัวไหนอาจน่าสงสัยหรือเป็นมัลแวร์
ขั้นตอนแรกที่ดีคือ สร้างรายการกระบวนการที่ทำงานอยู่เป็นไฟล์ข้อความ เพื่อให้คุณวิเคราะห์ว่ามีกระบวนการไหนบ้างที่ทำงานอยู่ ปกติคนใช้ Task Manager ดูกระบวนการทั้งหมด แต่มันไม่ให้พิมพ์รายการกระบวนการออกมา
โชคดีที่ การบันทึกรายการกระบวนการที่ทำงานอยู่เป็นไฟล์ข้อความใน Windows ทำได้ง่ายมาก คุณจะบันทึกได้ทั้ง Process ID (PID) และว่าแต่ละกระบวนการใช้หน่วยความจำเท่าไหร่
หมายเหตุ: ขั้นตอนด้านล่างสำหรับบันทึกกระบวนการเป็นไฟล์ ทำงานได้กับทุกเวอร์ชันของ Windows รวมถึง Windows XP, Windows 7, Windows 8, และ Windows 10
ส่งออกกระบวนการจากคำสั่ง Tasklist (Output Processes From The Tasklist Command)
วิธีที่ง่ายที่สุดในการได้รายการกระบวนการที่ทำงานอยู่บนระบบ Windows อย่างรวดเร็ว คือใช้คำสั่ง tasklist เพื่อรันคำสั่งอย่างถูกต้อง คุณต้องรันจาก Command Prompt ในฐานะผู้ดูแลระบบ (administrator)
ทำได้โดย เลือกเมนู Start และพิมพ์ "command" จากนั้นวางเมาส์เหนือ Command Prompt จนมันไฮไลท์ แล้วเลือก Run as administrator ด้านขวา
หมายเหตุ: อาจต้องเลือก Yes บนหน้าต่างป๊อปอัป เพื่ออนุมัติการรัน Command Prompt เป็นผู้ดูแลระบบ
เมื่อ Command Prompt เปิดแล้ว พิมพ์ tasklist และกด Enter เพื่อดูรายการกระบวนการที่ทำงานอยู่บนระบบของคุณ
นี่มีประโยชน์ แต่ไม่ให้รายการกระบวนการในไฟล์ข้อความ เพื่อบันทึกกระบวนการเป็นไฟล์ ให้ทำซ้ำขั้นตอนข้างต้น แต่คราวนี้พิมพ์คำสั่ง:
tasklist > c:\process_list.txt
นี่จะสร้างไฟล์ข้อความชื่อ process_list.txt ไว้ที่ไดรฟ์ C: คุณสามารถเปลี่ยน C:\ เป็นพาธอื่นที่คุณต้องการวางไฟล์ได้
เพื่อดูไฟล์ ให้เปิด Windows Explorer และไปที่ตำแหน่งที่คุณบันทึกรายการกระบวนการไว้
เพื่อดูรายการกระบวนการนี้ใน Notepad ให้คลิกขวาที่ไฟล์ เลือก Open with และเลือก Notepad
นี่คือวิธีที่เร็วที่สุดและง่ายที่สุดในการดูกระบวนการที่ทำงานอยู่ใน Windows ผ่านไฟล์ข้อความ จะแสดง PID, ชื่อเซสชัน (Session name), หมายเลขเซสชัน (Session number) และการใช้หน่วยความจำ
บันทึกกระบวนการเป็นไฟล์ ด้วย PowerShell (Save Processes To File Using Powershell)
เครื่องมืออีกอย่างที่คุณมีอยู่เพื่อบันทึกรายการกระบวนการที่ทำงานอยู่เป็นไฟล์ข้อความใน Windows คือ PowerShell
PowerShell มีคำสั่งชื่อ get-process ที่ให้รายการกระบวนการที่ใช้งานอยู่ทั้งหมดบนคอมพิวเตอร์ท้องถิ่น (local computer) เพื่อดูการทำงาน ให้เปิด PowerShell โดยเลือกเมนู Start และพิมพ์ PowerShell
เมื่อหน้าต่าง PowerShell สีน้ำเงินเปิดแล้ว พิมพ์ get-process และกด Enter จะแสดงรายการกระบวนการที่ใช้งานอยู่ทั้งหมดบนระบบ Windows ของคุณ
นี่ให้ข้อมูลเกี่ยวกับกระบวนการมากกว่า tasklist เล็กน้อย อย่างไรก็ตาม คุณต้องรู้ว่าหัวข้อ (headers) หมายถึงอะไร
- Handles: จำนวนแฮนเดิล (handles) ที่กระบวนการเปิดอยู่
- NPM(K): หน่วยความจำแบบ non-paged ที่กระบวนการใช้ (หน่วยเป็นกิโลไบต์)
- PM(K): หน่วยความจำแบบ paged (pageable memory) ที่กระบวนการใช้ (หน่วยเป็นกิโลไบต์)
- WS(K): หน้าความจำที่กระบวนการใช้เมื่อเร็วๆ นี้ (working set) (หน่วยเป็นกิโลไบต์)
- VM(M): หน่วยความจำเสมือน (virtual memory) ที่กระบวนการใช้ (หน่วยเป็นเมกะไบต์)
- CPU(s): เวลาประมวลผลที่กระบวนการใช้ทั่วทุกโปรเซสเซอร์ (หน่วยเป็นวินาที)
- ID: Process ID ของกระบวนการ
- ProcessName: ชื่อของกระบวนการ
นี่ดีมาก แต่ข้อมูลทั้งหมดแสดงบนหน้าจอ ไม่ได้ส่งออกเป็นไฟล์ เพื่อส่งออกข้อมูลนี้เป็นไฟล์ คุณต้องเพิ่มพารามิเตอร์ Out-File ไปยังคำสั่ง Get-Process
กลับไปที่หน้าจอ PowerShell พิมพ์คำสั่ง Get-Process | Out-File -FilePath .\Process_list.txt และกด Enter
พารามิเตอร์ .\Process_list.txt จะวางไฟล์ที่พาธที่คุณรันคำสั่ง อย่าลืมจดพาธนั้นไว้ เพื่อรู้ว่าจะหาไฟล์รายการกระบวนการได้ที่ไหน หลังรันคำสั่งแล้ว ใช้กระบวนการเดียวกับข้างต้น เพื่อเปิดไฟล์รายการกระบวนการใน Notepad
คุณจะสังเกตว่าข้อมูลในไฟล์ดูเหมือนกับเอาต์พุต Get-Process ในหน้าต่าง PowerShell ก่อนหน้านี้
บันทึกกระบวนการเป็นไฟล์ ด้วย WMIC (Save Processes To File Using WMIC)
เครื่องมือสุดท้ายที่คุณมีใน Windows คือ Windows Command Line Utility (WMIC)
คุณสามารถใช้คำสั่ง WMIC ได้ก็ต่อเมื่อคุณรัน Command Prompt ในฐานะผู้ดูแลระบบท้องถิ่น (local administrator) ทำได้โดยใช้ขั้นตอนในส่วนแรกของบทความนี้ เพื่อเปิด Windows Command Prompt เป็นผู้ดูแลระบบ
WMIC ให้ข้อมูลเกี่ยวกับกระบวนการที่ใช้งานอยู่มากกว่าคำสั่งหรือเครื่องมืออื่นใน Windows หากคุณเพียงรันคำสั่ง WMIC Process ใน Command Prompt คุณจะเห็นพารามิเตอร์กระบวนการสูงสุด 44 ตัวสำหรับทุกกระบวนการที่ใช้งานอยู่
ปัญหาของการรันคำสั่งใน Command Prompt คือ เอาต์พุทที่คั่นด้วยช่องว่าง (space delimited) ดูเป็นระเบียบและไม่จัดระเบียบ
คำสั่ง WMIC เป็นตัวอย่างที่สมบูรณ์ของเมื่อไหร่ที่ไฟล์เอาต์พุทมีประโยชน์ คุณสามารถส่งออกรายการกระบวนการ WMIC เป็นไฟล์ได้ด้วยคำสั่ง: wmic /OUTPUT:C:\ProcessList.txt PROCESS get /all
นี่จะส่งออกรายการทั้งหมดไปยังไฟล์ข้อความบนไดรฟ์ C: ชื่อ ProcessList.txt แทนที่จะเปิดไฟล์นี้ใน Notepad คุณควรเปิดด้วย Excel เนื่องจาก Excel จัดรูปแบบไฟล์คั่นแท็บ (tab delimited file) ได้อย่างถูกต้อง
- เปิด Excel
- เลือก Open เพื่อเปิดไฟล์ใหม่
- เลือก Browse และไปที่ไฟล์ ProcessList.txt
- เลือกไฟล์และเลือก Open (หากไม่เห็นไฟล์ ให้เปลี่ยนประเภทไฟล์เป็น All Files)
- ในหน้าต่าง Text Import Wizard เลือก Delimited เลือก My data has headers และเลือก Next เพื่อต่อ
- ในหน้าจอวิซาร์ดถัดไป เลือกเช็คบอกซ์ Space ภายใต้ส่วน Delimiters และเลือกเช็คบอกซ์ Treat consecutive delimiters as one เลือก Next เพื่อต่อ
- เลือก Finish เพื่อเสร็จสิ้นวิซาร์ด
ตอนนี้คุณจะเห็นเกือบทุกอย่างที่คุณอาจอยากรู้เกี่ยวกับทุกกระบวนการที่ใช้งานอยู่บนระบบ Windows ของคุณ
ส่วนหัวของแต่ละคอลัมน์อธิบายว่าข้อมูลนั้นคืออะไร คุณจะพบสิ่งต่างๆ เช่น เส้นทาง executable (executable path), handle, วันที่ติดตั้ง (install date), page faults, การใช้ไฟล์เพจ (page file usage), process ID และอื่นๆ อีกมากมาย
ตอนนี้คุณรู้หลายวิธีในการบันทึกรายการกระบวนการที่ทำงานอยู่เป็นไฟล์ข้อความใน Windows แล้ว สิ่งที่เหลือคือเลือกวิธีที่เหมาะกับคุณ!
คุณรู้วิธีอื่นในการบันทึกกระบวนการเป็นไฟล์ไหม? แชร์ความคิดเห็นในส่วนความคิดเห็นด้านล่าง