İşlem ad ve sahibine göre öldürülsün mü?


12

Tekerleği yeniden keşfetmeye ve kendimi döndürmeye başlamadan önce, süreç isimlerini ve süreç sahibine göre filtreleme yapmamı sağlayan bir uygulama / yardımcı programın farkında olan var mı? Alternatif olarak bu powershell ile yapılabilir mi? (Powershell-fu'm ne yazık ki eksik).

İkisine de baktım pskillve taskkill. pskillİşlem adına göre sonlandırmaya izin verse de , işlem sahibine göre daha fazla filtrelememe izin vermiyor. Ayrıca WMI wmic ( wmic process) üzerinden baktım , ama WMI arayüzü (en azından ne söyleyebilirim) süreç sahibi döndürmez, bu yüzden bu da kullanamazsınız.

Gerekçe
Windows üzerinde bir yığın geliştirme yapıyorum. Bunlardan bazıları Bileşen Hizmetleri (COM +) ile uğraşmayı içerir. COM +, hem özel (yani, geliştirdiğim şeyler) öğeleri hem de sistem işlemleri için kullanılan genel bir ana bilgisayar işlemine (dllhost.exe) sahiptir. Onları çalıştıkları sahibi tarafından ayırt edebilirsiniz. Yani, örneğin, sahip olduğum tüm dllhost.exe işlemlerini öldürmek istiyorum, ancak SYSTEM sahiplerinin yoksay.

Bu beni düzenli aralıklarla Görev Yöneticisi'ne girmekten ve her birini tanımlayıp elle öldürmekten kurtarır :-)

Yanıtlar:


5

Powershell'de şunları yaparsınız:

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

Ah - mükemmel alkışlar. Güzel çalışıyor :-)
Chris J

24

Yeterince sert görünmüyordun.

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

Yüklenen modüllere göre filtreleyerek bile kullanabilirsiniz /fi "modules eq libfoo.dll".


2
PS yönteminden çok daha kolay :)
EBGreen

Haklısın - yeterince sert bakmıyordum. Bu benim için kötü.
Chris J
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.