이름과 소유자로 프로세스를 종료 하시겠습니까?


12

휠을 재발 명하고 내 자신을 롤링하기 전에 프로세스 이름 프로세스 소유자 별로 필터링하여 프로세스를 강제 종료 할 수있는 응용 프로그램 / 유틸리티를 알고있는 사람이 있습니까? 또는 powershell을 통해이 작업을 수행 할 수 있습니까? (내 파워 쉘은 슬프게도 부족하다).

나는 모두 검토 한 pskilltaskkill. pskill프로세스 이름으로 종료 할 수 있지만 프로세스 소유자별로 더 이상 필터링 할 수는 없습니다. 또한 wmic ( wmic process) 를 통해 WMI를 살펴 보았지만 WMI 인터페이스는 프로세스 소유자를 반환하지 않습니다 (적어도 내가 말할 수있는 것).

이론적 근거
나는 Windows에서 많은 개발 작업을 수행한다. 이 중 일부는 구성 요소 서비스 (COM +) 처리와 관련이 있습니다. COM +에는 일반적인 호스트 프로세스 인 dllhost.exe가 있으며이 프로세스는 사용자 지정 (즉, 내가 개발 한 것) 요소와 시스템 프로세스 모두에 사용됩니다. 나는 그들이 운영하는 소유자에 의해 그들을 구별 할 수 있습니다. 예를 들어, 내가 소유 한 모든 dllhost.exe 프로세스를 종료하고 싶지만 SYSTEM이 소유 한 프로세스는 무시하고 싶습니다.

이렇게하면 정기적으로 작업 관리자로 이동하여 각각을 식별하고 수동으로 죽일 수 있습니다.

답변:


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.