이 팁이 얼마나 많은 사람들에게 유용하게 사용할 수 있을지는 모르겠다. 그러나
윈도우가 구동하지 않은 프로세서 모두 종료하기라는 질문처럼 여러 사람들이 사용하는 PC에서 불필요한 프로세서를 매번 종료하는 경우라면 작업 관리자로 일일이 죽이는 것보다는 배치 파일이나 하나의 명령으로 종료할 수 있다면 훨씬 수월할 것이다.
몇가지 제한이 있는 것도 사실이지만 이 팁을 사용하면 Windows가 기동한 프로세스 이외의 모든 프로세스를 종료할 수 있다. 절차는 다음과 같다.
착안점: 이 팁은 근본적으로 taskkill이라는 내부 명령을 이용한다. 그러면 taskkill이라는 명령을 이용해서 어떻게 이Windows가 기동한 프로세스 이외의 프로세스를 종료할 수 있을지 생각해보기 바란다. 답은 의외로 간단하다.
Windows가 기동한 프로세스 이외의 프로세스를 종료하는 것이 아니라 Windows가 기동한 프로세스만 남기면 된다.
작업 관리자로 확인해보면 알 수 있지만 Windows가 기동한 프로세스는 모두 다음 세 가지 계정중 하나로 실행된다.
- System
- Netwrok Services
- Local Services
이외에 Windows가 기동하는 프로세스는 Windows의 쉘로 동작하는 explorer.exe 뿐이다. 따라서 이 네가지 조건에 맞는 프로세스만 남기고 나머지 프로세스는 종료하면 된다.
따라서 이 조건에 맞는 taskill 명령은 다음과 같다.
taskkill /f /fi "username ne system*" /fi "username ne network*"
/fi "username ne local*" /fi "imagename ne explorer.exe" /im *
각 옵션에대한 설명은 다음과 같다.
|
| /f |
|
프로세스를 강제로 종료하는 옵션 |
|
| /fi "username ne system*" |
|
사용자 이름이 System이 아닌 프로세스만 걸러냄 |
|
| /fi "username ne network*" |
|
사용자 이름이 Network*가 아닌 프로세스만 걸러냄 |
|
| /fi "username ne local*" |
|
사용자 이름이 Local*이 아닌 프로세스만 걸러냄 |
|
| /fi "imagename ne explorer.exe" |
|
프로세스 이름이 explorer.exe가 아닌 프로세스만 걸러냄 |
|
| /im * |
|
필터로 걸러진 모든 프로세스 |
|
따라서 이 명령은 기준에 맞지 않는 모든 프로세스를 강제로 종료하는 명령이된다. 참고로 로그인한 사용자가 1명뿐이라면 다음과 같은 명령을 사용하는 것이 훨씬 편하다.
taskkill /f /fi "username eq UserID" /fi "imagename ne explorer.exe" /im *
예:
taskkill /f /fi "username eq artech" /fi "imagename ne explorer.exe" /im *
댓글: 이 팁은 damibasia님의 질문, 윈도우가 구동하지 않은 프로세서 모두 종료하기에 대한 답으로 작성되었습니다.