가끔 Tcpview나 Process Explorer를 사용하지 않는 컴퓨터에서
특정 포트를 열고 있는 프로세스 목록을 확인하고 싶을때가 있다.

netstat -ano 로 열어서 PID 확인하고 작업관리자에서 해당 Process를 찾기는 참... 힘들다. ^^;;

그래서 다음과 같이 키보드 타이핑을 좋아하는 사람들에게 유용한 방법을 소개하고자 한다.


위와 같이 netstat -ano 명령은 PID를 출력해줘~ 라는 옵션인데, 윈도우 XP 이상에서만 지원한다.
윈도우 2000 사용자는 속편하게 ProcessExplorer를 사용하세요.

그 뒤에 | find "4899"  는 파이프라인으로 나온 결과를 find 명령을 이용해서 4899 라는 문자열이 있는 라인만 필터링 해줘~

이제 4899포트를 사용하는 PID를 찾을 수 있습니다.

tasklist /FI "PID eq 436"

는 프로세스 목록 중에서 PID 436과 일치하는(eq = equal) 내용만 필터링(/FI) 해서 보여줘~ 라는 명령인데, 이것도 윈도우 XP 이상에서만 지원합니다.
윈도우 2000 사용자는... ^^;

4899포트를 사용하는 프로세스를 종료하려면 다음과 같은 방법을 사용합니다.
for /f "tokens=5" %p in (' netstat -ano ^| find ":4899" ') do taskkill /F /PID %p

4899포트를 사용하는 프로세스를 보려면 다음과 같은 방법을 사용합니다.
for /f "tokens=5" %p in (' netstat -ano ^| find ":4889" ') do tasklist /FI "PID eq %p"

PS. 간단한 팁을 하나 더 추가합니다.
콘솔창이 너무 불편해요~~ 결과를 메모장에서 보여주시면 안될까요?
이런 분들을 위해 해결 방법을 알려드리겠습니다.

netstat -ano > net.txt && notepad net.txt

오호~ 이제 보기가 한결 쉬워졌네요. 다른 응용 방법들도 생각해보시면 콘솔의 위대함을 느끼실 수 있답니다.

pslist를 이용해서 특정 프로세스 로그 남기기
for /f "tokens=*" %p in ('pslist -s 1 -m ^| find "explorer"') do @echo %date%%time% %p >> explorer.txt
2008/03/11 09:00 2008/03/11 09:00

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요