नाम और मालिक द्वारा मार प्रक्रिया?


12

इससे पहले कि मैं पहिए को फिर से खड़ा करने और खुद को रोल करने पर ध्यान दूं, क्या किसी को एप्लिकेशन / उपयोगिता के बारे में पता है जो मुझे प्रक्रिया को मारने की अनुमति देता है, प्रक्रिया नाम और प्रक्रिया के स्वामी दोनों को छानता है? वैकल्पिक रूप से इसे पॉवरशेल के माध्यम से किया जा सकता है? (मेरी शक्तियां-फू दुख की कमी है)।

मैं दोनों को देखा pskillऔर taskkill। यद्यपि pskillप्रक्रिया नाम से समाप्त करने की अनुमति देता है, यह मुझे प्रक्रिया स्वामी द्वारा आगे फ़िल्टर करने की अनुमति नहीं देता है। मैंने WMI को wmic ( wmic process) के माध्यम से भी देखा है , लेकिन WMI इंटरफ़ेस प्रक्रिया के स्वामी को नहीं लौटाता (कम से कम जो मैं बता सकता हूं), इसलिए इसका उपयोग नहीं कर सकता।

Rationale
I विंडोज पर विकास का एक हिस्सा है। इसमें से कुछ में घटक सेवाओं (COM +) के साथ काम करना शामिल है। COM + में एक सामान्य होस्ट प्रक्रिया है - dllhost.exe - जिसका उपयोग कस्टम (यानी, सामान जो मैंने विकसित किया है) तत्वों और सिस्टम प्रक्रियाओं दोनों के लिए किया जाता है। मैं उनके द्वारा चलाए जा रहे मालिक द्वारा उन्हें अलग कर सकता हूं। इसलिए, उदाहरण के लिए, मैं अपने स्वामित्व वाली सभी dllhost.exe प्रक्रियाओं को मारना चाहता हूं, लेकिन सिस्टम के स्वामित्व वाले लोगों को अनदेखा करता हूं।

यह मुझे नियमित रूप से टास्क मैनेजर में जाने और प्रत्येक व्यक्ति को पहचानने और मैन्युअल रूप से मारने से बचाएगा। :-)

जवाबों:


5

शक्तियों में आप क्या करेंगे:

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

आह - उत्कृष्ट चीयर्स। यह अच्छी तरह से काम करता है :-)
क्रिस J

24

आप काफी मुश्किल नहीं लग रहे थे।

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

आप लोड किए गए मॉड्यूल का उपयोग करके भी फ़िल्टर कर सकते हैं /fi "modules eq libfoo.dll"


2
PS विधि से बहुत आसान :)
EBGreen

आप सही कह रहे हैं - मैं बहुत मुश्किल नहीं दिख रहा था। वह मेरा बुरा है।
क्रिस जे।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.