2010. 10. 22. 07:52

어떤 프로세스가 파일을 사용하고 있는지 알아내기

가끔 파일을 지우려고 할 때, 다른 프로세스가 사용하고 있어 지울수 없다는 에러메시지를 볼 때가 있습니다. 이때 해당 파일을 어떤 프로세스가 사용하고 있는지를 알아내는 방법이 있습니다.

Process Explorer 를 이용한 방법을 소개합니다.


1. Process Explorer 를 실행합니다. 

2. Find 메뉴 클릭, "Find Handle or DLL..." 선택

3. 파일 이름을 입력합니다.

4. "Search" 클릭


컨텍스트 메뉴를 이용한 방법 

Windows XP

1. Handle.zip 다운로드

2. handle.exe 를 Path 환경변수 안에 등록되어 있는 폴더에 저장합니다.

3. 아래 내용을 확장자 .reg 파일로 만들어 더블클릭합니다.




Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle]
@="View &Handles"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle\command]
@="cmd.exe /k handle -a -u \"%1\""

Windows VISTA

1. Handle.zip 다운로드

 2. handle.exe 를 Path 환경변수 안에 등록되어 있는 폴더에 저장합니다

3. 아래 내용이 담긴 파일을 다운로드하여, handle.exe 가 있는 위치에 둡니다.


'Filename: runhandle.vbs
'Runs Sysinternals' Handle.exe utility elevated in Windows Vista
'� 2008 Ramesh Srinivasan, http://winhelponline.com
'Date: March 29, 2008

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd.exe", "/k handle.exe -a -u " & _
	Chr(34) & WScript.Arguments(0) & Chr(34), "", "runas", 1

4. 아래 내용이 담긴 handle_vista.reg 에서 Right 클릭 후 "Merge" 를 선택합니다.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell]
@="none"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle]
@="View Handle"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle\command]
@=hex(2):77,00,73,00,63,00,72,00,69,00,70,00,74,00,2e,00,65,00,78,00,65,00,20,\
  00,25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,72,00,75,00,6e,00,\
  68,00,61,00,6e,00,64,00,6c,00,65,00,2e,00,76,00,62,00,73,00,20,00,22,00,25,\
  00,31,00,22,00,00,00

아래처럼 컨텍스트 메뉴에 View Handles 라는 메뉴가 추가됩니다.