'tasklist'에 해당되는 글 2건

  1. 2012.01.17 윈도우에서 특정 프로세스 강제 종료하는 방법 (2)
  2. 2011.06.15 원격 윈도우 프로세스 제어 (taskkill, tasklist)
2012.01.17 19:35

윈도우에서 특정 프로세스 강제 종료하는 방법

윈도우에서 특정 프로그램이 먹통된 경우, 일반적으로 작업 관리자를 띄워서 응용 프로그램 탭에서 작업 끝내기 버튼을 누르실 텐데, 가끔 이렇게 눌러도 먹통된 상태로 머무르는 경우가 있습니다. 물론 이럴 때 깔끔하게 재부팅 한번 해줘도 되겠지만, 명령어를 이용해서 프로세스를 종료해봅시다.

프로세스를 종료시킬 때 사용하는 명령어는 taskkill 입니다. 리눅스의 kill 명령어와 비슷하다 보시면 됩니다.

기본적으로 2가지 방식을 사용하는데

taskkill /f /im xxxx.exe
taskkill /f /pid 0000

/f 옵션은 강제로 종료하겠다는 말이고
/im 옵션은 이미지 이름을 지정하겠다는 말입니다.
/pid 옵션은 말 그대로 PID 값(숫자)을 지정하겠다는 말이구요.

이미지 이름이나 PID는 어떻게 확인할까요? 이미지 이름은 작업 관리자 프로세스 탭에 표시되지만 PID는 기본적으로 표시되지 않습니다. 하지만 표시하는 방법이 있는데...

작업 관리자 프로세스 탭에서 보기 메뉴를 누르면 열 선택이라는 항목이 나옵니다.


여기서 PID에 체크를 해주시면

아래 그림처럼 PID가 표시됩니다.


그런데 굳이 작업 관리자에서 확인하지 않더라도, 이미지 이름과 PID 값을 tasklist 명령어로 확인할 수 있습니다. 그리고 UI에서 확인할 수 없는 내용도 있기 때문에 tasklist 명령어는 익혀두시는게 좋겠습니다.


자 이제 여기서부터 막히는 부분이 생기게 됩니다. 같은 이름의 프로세스가 여러개 있는데, 어떤 녀석을 죽여야 할지 (몇번 PID를 죽여야 할지) 고민되는 경우가 있습니다. 바로 svchost.exe 에서 이런 고민을 하시게 될 것입니다. 일단 svchost.exe가 뭔지 대충 설명드리자면

svchost.exe란? 

Svchost.exe는 Windows에서 다양한 기능을 수행하는 데 사용하는 기타 개별 서비스를 호스팅하거나 포함하는 컴퓨터의 프로세스입니다. 예를 들어 Windows Defender에서는 svchost.exe 프로세스에서 호스팅하는 서비스를 사용합니다. 

인스턴스마다 서로 다른 서비스를 포함하는 여러 svchost.exe 인스턴스가 컴퓨터에서 실행 중일 수 있습니다. 한 svchost.exe 인스턴스는 프로그램의 단일 서비스를 호스팅하고 다른 인스턴스는 Windows와 관련된 여러 서비스를 호스팅할 수 있습니다. 작업 관리자를 사용하면 각각의 svchost.exe 인스턴스에서 실행 중인 서비스를 볼 수 있습니다.
출처 : http://windows.microsoft.com/ko-KR/windows-vista/What-is-svchost-exe

그러니까 한마디로 윈도우에서 서비스를 띄워주는 역할을 한다고 보시면 되는데, 많은 윈도우 서비스들이 svchost.exe 프로세스에 올라가 서비스로 동작하고 있습니다. 그런데 어떤 서비스가 어떤 PID의 svchost.exe 에 들어있는지 확인하려면 어떻게 해야 할까요?

tasklist /svc


많아서 보기 불편하시죠? 그렇다면 svchost.exe 이미지만 걸러내 볼까요?

tasklist /svc /fi "imagename eq svchost.exe"


또는 내가 찾고자 하는 서비스 이름을 알고 있다면 다른 방식으로 찾을 수도 있습니다. 예를 들어 작업 스캐줄러를 찾고 싶다면

tasklist /svc /fi "services eq schedule"


아무튼 이렇게 tasklist를 잘 활용하면 어떤 프로세스를 죽여야 하는지 쉽게 찾을 수 있습니다. 물론 윈도우 비스타 이상에서는 작업관리자에서 웬만큼 해결이 되지만, 그래도 taskkill, tasklist 명령어는 알아두시는게 좋다고 생각합니다.


출처 : snoopybox.co.kr

Trackback 0 Comment 2
  1. Favicon of http://goom.com 2012.05.30 13:13 address edit & del reply

  2. 질문요 2013.11.07 20:25 address edit & del reply

    taskkill /f /im 이 방법으로 강제종료가 되지 않는다면 어떻게 해야 하나요?

2011.06.15 19:15

원격 윈도우 프로세스 제어 (taskkill, tasklist)

윈도우 환경에서 원격 호스트의 프로세스 리스트 및 프로세스 종료를 수행할 수 있는 명령이다.

 

/P를 입력안하면, 권한 요청시 암호를 입력할 수 있다.

 

예)

> tasklist /S 111.222.111.222 /U User /P pppp

 

> taskkill /S 111.222.111.222 /U User /P pppp /IM aaa.exe

 



TASKLIST [/S 시스템 [/U 사용자 이름 [/P [암호]]]]
         [/M [모듈] | /SVC | /V] [/FI 필터] [/FO 형식] [/NH]

설명:
    이 명령줄 도구는 현재 로컬 또는 원격 시스템에서
    실행되고 있는 응용 프로그램 및 관련 작업/프로세스 목록을
    표시합니다.

매개 변수 목록:
   /S     시스템           연결할 원격 시스템을 지정합니다.

   /U     [domain\]user    명령을 실행해야 하는 사용자
                           컨텍스트를 지정합니다.

   /P     [암호]           해당 사용자 컨텍스트의 암호를 지정합니다.
                           생략한 경우에는 물어봅니다.

   /M     [모듈]           해당 패턴 이름과 일치하며 DLL 모듈이 로드된
                           모든 작업을 나열합니다.
                           모듈 이름을 지정하지 않으면
                           각 작업에서 로드한 모든 모듈을 표시합니다.

   /SVC                    각 프로세스에 있는 서비스를 표시합니다.

   /V                      자세한 정보를 표시하도록
                           지정합니다.

   /FI    필터             필터에서 지정한 조건과 일치하는
                           작업 집합을 표시합니다.

   /FO    형식             출력 형식을 지정합니다.
                           사용할 수 있는 값: "TABLE", "LIST", "CSV".

   /NH                     출력에 표시하지 않을 "열 머리글"을
                           지정합니다.
                           "TABLE"과 "CSV" 형식에서만 사용할 수 있습니다.

   /?                      이 도움말/사용법을 표시합니다.

필터:
    필터 이름       유효한 연산자             유효한 값
    -----------     ---------------           --------------
    STATUS          eq, ne                    RUNNING | NOT RESPONDING
    IMAGENAME       eq, ne                    이미지 이름
    PID             eq, ne, gt, lt, ge, le    PID 값
    SESSION         eq, ne, gt, lt, ge, le    세션 번호
    SESSIONNAME     eq, ne                    세션 이름
    CPUTIME         eq, ne, gt, lt, ge, le    CPU 시간
                                              (hh:mm:ss 형식)
                                              hh - 시간,
                                              mm - 분, ss - 초
    MEMUSAGE        eq, ne, gt, lt, ge, le    메모리 사용(KB)
    USERNAME        eq, ne                    사용자 이름([domain\]user
                                              형식)
    SERVICES        eq, ne                    서비스 이름
    WINDOWTITLE     eq, ne                    창 제목
    MODULES         eq, ne                    DLL 이름

예:
    TASKLIST
    TASKLIST /M
    TASKLIST /V
    TASKLIST /SVC
    TASKLIST /M wbem*
    TASKLIST /S 시스템 /FO LIST
    TASKLIST /S 시스템 /U domain\username /FO CSV /NH
    TASKLIST /S 시스템 /U 사용자 이름 /P 암호 /FO TABLE /NH
    TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"

 

 

 

TASKKILL [/S 시스템 [/U 사용자 이름 [/P [암호]]]]
         { [/FI 필터] [/PID 프로세스 id | /IM 이미지 이름] } [/F] [/T]

설명:
    이 명령줄 도구는 하나 이상의 프로세스를 종료하기 위해 사용할 수 있습니다.
    프로세스 id 또는 이미지 이름으로 프로세스를 종료할 수 있습니다.

매개 변수 목록:
    /S    시스템           연결할 원격 시스템을 지정합니다.

    /U    [domain\]user    명령을 실행해야 하는 사용자
                           컨텍스트를 지정합니다.

    /P    [암호]           해당 사용자 컨텍스트의 암호를 지정합니다.
                           생략한 경우에는 물어봅니다.

    /F                     프로세스를 강제로 종료하도록
                           지정합니다.

    /FI   필터             필터에서 지정한 조건과 일치하는
                           작업 집합을 표시합니다.

    /PID  프로세스 id      종료해야 하는 프로세스의 PID를
                           지정합니다.

    /IM   이미지 이름      종료해야 하는 프로세스의 이미지 이름을
                           지정합니다. 와일드 카드 문자 '*'를 사용하여
                           모든 이미지 이름을 지정할 수 있습니다.

    /T                     트리 종료: 지정된 프로세스와 그 프로세스로부터 시작된
                           모든 자식 프로세스를 종료합니다.

    /?                     이 도움말/사용법을 표시합니다.

필터:
    필터 이름   유효한 연산자           유효한 값
    -----------   ---------------           --------------
    STATUS        eq, ne                    RUNNING | NOT RESPONDING
    IMAGENAME     eq, ne                    이미지 이름
    PID           eq, ne, gt, lt, ge, le    PID 값
    SESSION       eq, ne, gt, lt, ge, le    세션 번호.
    CPUTIME       eq, ne, gt, lt, ge, le    CPU 시간 형식
                                            hh:mm:ss
                                            hh - 시간,
                                            mm - 분, ss - 초
    MEMUSAGE      eq, ne, gt, lt, ge, le    메모리 사용(KB)
    USERNAME      eq, ne                    사용자 이름([domain\]user
                                            형식)
    MODULES       eq, ne                    DLL 이름
    SERVICES      eq, ne                    서비스 이름
    WINDOWTITLE   eq, ne                    창 제목

참고: /IM 스위치에 대한 와일드 카드 문자 '*'는 필터에서만 사용할 수 있습니다.

참고: 원격 프로세스의 종료는 /F 옵션 지정 여부와 상관없이
      항상 강제적으로 수행됩니다.

예:
    TASKKILL /S 시스템 /F /IM notepad.exe /T
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM notepad.exe /IM mspaint.exe
    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
    TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
    TASKKILL /S 시스템 /U domain\username /FI "USERNAME ne NT*" /IM *
    TASKKILL /S 시스템 /U 사용자 이름 /P 암호 /FI "IMAGENAME eq note*"



출처 : http://blog.naver.com/xlogic/

Trackback 0 Comment 0