Вбити процес на ім’я та власника?


12

Перш ніж вивчити винахід колеса і прокрутити своє, чи хтось знає про програму / утиліту, яка дозволяє мені вбивати процеси, фільтруючи як за назвою процесу, так і за власником процесу? Альтернативно, це можна зробити через повноваження? (Моїх повноважень-фу, на жаль, не вистачає).

Я подивився і на pskillі taskkill. Хоча pskillдозволяє припинити ім'я процесу, це не дозволяє мені додатково фільтрувати за власником процесу. Я також переглядав WMI через wmic ( wmic process), але інтерфейс WMI не повертає власника процесу (принаймні з того, що я можу сказати), тому не можу використовувати і це.

Обгрунтування
Я роблю шматок розвитку в Windows. Частина цього стосується роботи з компонентними послугами (COM +). COM + має загальний хост-процес - dllhost.exe - який використовується як для користувацьких (тобто матеріалів, які я розробив), так і системних процесів. Я можу розрізнити їх за власником, яким вони керують. Так, наприклад, я хочу знищити всі процеси dllhost.exe, що належать мені, але ігнорувати ті, які належать SYSTEM.

Це дозволило б мені регулярно заходити в диспетчер завдань і визначати та вбивати кожного вручну :-)

Відповіді:


5

У повноваженнях ви б робили:

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

Ах - відмінне ура. Це прекрасно працює :-)
Кріс Дж

24

Ти не виглядав досить важко.

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

Ви навіть можете фільтрувати за завантаженими модулями, використовуючи /fi "modules eq libfoo.dll".


2
Набагато простіше, ніж метод PS :)
EBGreen

Ви маєте рацію - я не виглядав досить важко. Це погано від мене.
Кріс Дж.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.