tasklist는 로컬 또는 원격 컴퓨터에서 현재 실행 중인 프로세스 목록을 표시하는 명령이다. Part 6(프로세스·서비스와 권한 관리)의 첫 장이다.
이 장을 읽기 전에
선행 챕터: 이 장은 53장: verify로 Part 5(디스크와 파일 시스템 관리)를 마친 뒤 이어지며, Part 6(프로세스·서비스와 권한 관리)의 첫 장이다. 지금까지의 디스크 관리 명령들이 5장(디스크 공간 부족 등)의 원인을 진단했다면, 이 장부터는 그 원인이 될 수 있는 “지금 실행 중인 프로그램"을 다룬다.
이 장의 깊이: 입문–중급. 다루지 않는 것: 조회한 프로세스를 종료하는 것은 55장(taskkill)에서 다룬다.
사용법
| |
옵션
| 옵션 | 설명 |
|---|---|
/s <컴퓨터> | 원격 컴퓨터 이름·IP 지정(기본은 로컬) |
/u, /p | 원격 조회 시 사용할 계정·비밀번호(/s와 함께만 사용 가능) |
/m [모듈] | 지정한 DLL을 로드한 작업만, 또는 모듈 목록 |
/svc | 각 프로세스의 서비스 정보(/fo table일 때만 유효) |
/v | 상세 정보(창 제목, 상태 등). /svc와 함께 쓰면 잘림 없이 전체 표시 |
/fo table|list|csv | 출력 형식(기본 table) |
/nh | 열 머리글 생략(/fo가 table·csv일 때 유효) |
/fi <필터> | 조건에 맞는 프로세스만 표시. 여러 번 지정 가능 |
필터 이름·연산자·값
| 필터 이름 | 연산자 | 값 |
|---|---|---|
| STATUS | eq, ne | RUNNING | NOT RESPONDING | UNKNOWN(원격 조회 미지원) |
| 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 | HH:MM:SS 형식 |
| MEMUSAGE | eq, ne, gt, lt, ge, le | KB 단위 메모리 |
| USERNAME | eq, ne | 사용자 이름 |
| SERVICES | eq, ne | 서비스 이름 |
| WINDOWTITLE | eq, ne | 창 제목(원격 조회 미지원) |
| MODULES | eq, ne | DLL 이름 |
예시
| |
주의사항·함정
WINDOWTITLE·STATUS 필터는 원격 조회에서 쓸 수 없다: /s로 원격 컴퓨터를 조회할 때는 필터 표에 명시된 대로 이 두 필터가 지원되지 않는다.
“This filter isn’t supported if you specify a remote system.” — Microsoft Learn, “tasklist”
원격 서버에서 특정 창 제목이나 응답 없음 상태로 필터링하려던 스크립트가 로컬에서는 되던 것이 원격에서 조용히 무시되는 원인이 여기 있다.
필터를 여러 번 지정하면 AND 조건이 된다: /fi를 두 번 이상 쓰면 모든 조건을 동시에 만족하는 프로세스만 남는다. 위 예시의 USERNAME ne ... /fi STATUS eq running은 “SYSTEM 계정이 아니면서 동시에 실행 중"인 프로세스만 걸러낸다.
/svc는 /fo table에서만 유효하다: 서비스 정보를 함께 보려면 출력 형식을 명시적으로 확인해야 한다 — 다른 형식과 조합하면 옵션이 무시될 수 있다.
tasklist는 tlist를 대체한다: 오래된 Windows 리소스 킷의 tlist 도구를 대체하는 명령으로 문서화되어 있다 — 옛 스크립트에서 tlist를 참조하고 있다면 tasklist로 옮겨야 한다.
PowerShell에서는 Get-Process가 대응 명령이다: Get-Process는 tasklist보다 훨씬 풍부한 객체(핸들 수, 스레드, 시작 경로 등)를 돌려주고 파이프라인으로 바로 필터링·정렬할 수 있다. 다만 세션·사용자 이름 정보는 Get-Process가 기본으로 보여주지 않는다 — tasklist가 /svc나 USERNAME 필터로 쉽게 보여주는 정보를 PowerShell에서 얻으려면 Get-CimInstance Win32_Process처럼 별도 조회를 추가해야 한다.
흔한 오개념
“tasklist를 그냥 실행하면 이 컴퓨터에 로그온한 모든 사용자의 모든 프로세스가 빠짐없이 보인다”는 오해가 있다. 관리자 권한 없이 실행하면 다른 사용자 세션에서 실행 중인 프로세스의 소유자·전체 경로 같은 일부 정보는 제한되거나 표시되지 않을 수 있다 — 여러 사용자가 동시에 로그온하는 원격 데스크톱 서버 환경에서 “분명 실행 중인데 정보가 비어 있다"는 혼란이 여기서 나온다. 모든 세션의 프로세스 정보를 온전히 확인하려면 관리자 권한으로 실행해야 한다.
다음 장에서는
다음은 55장 — tasklist로 찾은 PID나 이미지 이름으로 프로세스를 종료하는 taskkill 명령을 다룬다.
평가 기준
- tasklist로 로컬·원격 프로세스 목록을 조회하고
/fi필터를 조합할 수 있다. - WINDOWTITLE·STATUS 필터가 원격 조회에서 지원되지 않는다는 것을 안다.
/fi를 여러 번 쓰면 AND 조건이 된다는 것을 설명할 수 있다.- tasklist가 대체한 레거시 도구(tlist)를 안다.
![Featured image of post [CMD] 54. tasklist - 실행 중인 프로세스 목록 조회](/post/cmd/tasklist-command-list-running-processes-windows-cmd/wordcloud_hu_bda8f06fbf209be7.webp)
![[CMD] 52. recover - 손상된 디스크에서 데이터 복구](/post/cmd/recover-command-recover-damaged-disk-windows-cmd/wordcloud_hu_dbdab3050f8693ec.webp)
![[CMD] 53. verify - 디스크 쓰기 검증 설정](/post/cmd/verify-command-verify-file-writes-windows-cmd/wordcloud_hu_bc3286fd91290565.webp)
![[CMD] 54. tasklist - 실행 중인 프로세스 목록 조회](/post/cmd/tasklist-command-list-running-processes-windows-cmd/wordcloud_hu_4d97e384a344e83b.webp)
![[CMD] 55. taskkill - 프로세스 종료](/post/cmd/taskkill-command-terminate-process-windows-cmd/wordcloud_hu_ddd283af47ca6ca.webp)
![[CMD] 56. sc - Windows 서비스 조회와 구성](/post/cmd/sc-command-manage-windows-services-cmd/wordcloud_hu_58a312f8ee4fc53a.webp)
![[CMD] 59. shutdown - 시스템 종료·재시작·로그오프](/post/cmd/shutdown-command-restart-shutdown-windows-cmd/wordcloud_hu_a22283eef4eb4918.webp)
![[CMD] 76. nslookup - DNS 질의와 인프라 진단](/post/cmd/nslookup-command-dns-query-windows-cmd/wordcloud_hu_31304126dbf41e5c.webp)
![[CMD] BatchGotAdmin으로 배치 파일 UAC 관리자 권한 자동 요청 가이드](/post/2025-07-17-windows-batch-admin-privilege-uac-elevation-guide/index_hu_5a27e05742e84409.webp)
![[CMD] 00. 과정 개요와 커리큘럼](/post/cmd/getting-started-cmd/wordcloud_hu_2cc899f0011ec68.webp)