ฆ่ากระบวนการตามชื่อและเจ้าของ?


12

ก่อนที่ฉันจะตรวจสอบการหมุนพวงมาลัยและหมุนตัวฉันเองมีใครรู้บ้างเกี่ยวกับแอปพลิเคชัน / ยูทิลิตี้ที่ทำให้ฉันสามารถฆ่ากระบวนการกรองด้วยชื่อกระบวนการและเจ้าของกระบวนการได้หรือไม่ อีกวิธีหนึ่งนี้สามารถทำได้ผ่าน PowerShell? (Power powershell-fu ของฉันกำลังขาดเศร้า)

เราได้ตรวจสอบทั้งในและpskill taskkillแม้ว่าpskillอนุญาตให้ยกเลิกด้วยชื่อกระบวนการ แต่ฉันไม่สามารถกรองเพิ่มเติมโดยเจ้าของกระบวนการ ฉันเคยดู WMI ด้วย wmic ( wmic process) แต่อินเตอร์เฟส WMI ไม่ส่งคืนเจ้าของกระบวนการ (อย่างน้อยจากสิ่งที่ฉันสามารถบอกได้) ดังนั้นจึงไม่สามารถใช้สิ่งนี้ได้

เหตุผลที่
ฉันทำการพัฒนาบน Windows สิ่งนี้เกี่ยวข้องกับการจัดการกับ Component Services (COM +) COM + มีกระบวนการโฮสต์ทั่วไป - dllhost.exe - ที่ใช้ทั้งสำหรับองค์ประกอบแบบกำหนดเอง (เช่นสิ่งที่ฉันได้พัฒนา) และกระบวนการของระบบ ฉันสามารถแยกแยะพวกเขาโดยเจ้าของพวกเขาทำงานเป็น ตัวอย่างเช่นฉันต้องการฆ่ากระบวนการ dllhost.exe ทั้งหมดที่ฉันเป็นเจ้าของ แต่ไม่สนใจกระบวนการที่เป็นเจ้าของโดยระบบ

สิ่งนี้จะช่วยให้ฉันไปที่ Task Manager เป็นประจำและระบุและฆ่าแต่ละคน :-)

คำตอบ:


5

ใน PowerShell คุณจะทำ:

gwmi -query "select * from win32_process where name='PROCESSNAME.exe'" | %{if($_.GetOwner().User -eq 'USERNAME'){$_.terminate()}}

อ่า - ไชโยที่ยอดเยี่ยม นั่นใช้งานได้ดี :-)
Chris J

24

คุณดูไม่หนักพอ

taskkill /f /fi "imagename eq foo.exe" /fi "username eq Chris"

/fi "modules eq libfoo.dll"คุณยังสามารถกรองตามโมดูลที่โหลดโดยใช้


2
ง่ายกว่าวิธี PS :)
EBGreen

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