Windows에서 lsof와 유사한 기능을 수행하는 명령어는 여러 가지가 있습니다.
1. handle (Sysinternals) - 가장 강력한 도구
Microsoft의 Sysinternals 도구 중 handle.exe는 lsof와 가장 유사한 기능을 제공합니다.
사용법
Microsoft 공식 사이트에서 handle.exe 다운로드
명령 프롬프트(CMD)에서 실행: handle
현재 열린 파일 핸들을 모두 표시
특정 파일이 어떤 프로세스에서 사용 중인지 확인: handle <파일경로>
특정 프로세스의 열린 파일 목록 확인: handle -p <PID>
2. openfiles - 기본 내장 명령어
Windows에 기본 포함된 명령어지만, 네트워크 공유 파일에 초점이 맞춰져 있음.
사용법
시스템에서 열린 파일 목록 보기: openfiles /query
특정 사용자나 세션의 열린 파일 확인: openfiles /query /fo table
사용하려면 관리자 권한으로 실행해야 하며, 로컬 파일 추적을 활성화하려면 다음 명령이 필요함: openfiles /local on
3. resource monitor (resmon) - GUI 도구
파일 핸들 정보를 확인할 수 있는 GUI 도구
사용법
Win + R → resmon 입력 후 실행
CPU 탭 → 연관된 핸들(Associated Handles) 섹션에서 파일 사용 프로세스 확인
4. tasklist & task manager (작업 관리자)
명령어 사용법
실행 중인 프로세스 목록 확인: tasklist
특정 프로세스의 상세 정보 확인: tasklist /v
작업 관리자 사용법
Ctrl + Shift + Esc를 눌러 작업 관리자 실행
세부 정보 탭 → 열린 파일 핸들 확인 가능
5. PowerShell을 이용한 방법
특정 파일을 사용 중인 프로세스 찾기
Get-Process | Where- { $_.HandleCount -gt 0 }
혹은 특정 파일이 어떤 프로세스에서 열렸는지 확인:
Get-Process | Where- { $_.Path -like "*파일이름*" }
결론
가장 강력한 방법: handle.exe (Sysinternals)
기본 명령어 사용 가능: openfiles
GUI 방식: resmon (리소스 모니터)
PowerShell 스크립트도 가능하지만, handle.exe가 가장 lsof에 가까운 기능을 제공함.
---
"도둑은 집을 떠나며 주인을 욕한다" - 러시아 속담
"도둑은 집을 떠나며 주인을 욕한다" - 러시아 속담
댓글 0