Windows에서 파일을 잠근 프로세스를 식별하는 방법

프로세스에서 사용 중인 파일이나 폴더를 삭제하려고 하면 파일을 잠근 프로그램의 이름을 표시하는 사용 중인 파일 대화 상자가 나타납니다.

그러나 "사용 중인 파일" 대화 상자에 삭제하려는 파일에 잠금이 있는 프로세스의 이름이 표시되지 않는 경우가 있습니다. 경우에 따라 대화 상자에 "파일이 다음 위치에서 열려 있으므로 작업을 완료할 수 없습니다. 다른 프로세스“.

파일을 잠근 프로세스 찾기

프로세스 및 잠긴 파일을 조사하기 위해 Windows Sysinternals Process Explorer는 대부분의 사용자가 가장 먼저 떠올리는 옵션일 것입니다. 그러나 두 가지가 있습니다 내장 솔루션 현재 열려 있는 파일 목록을 해당 프로세스 이름과 함께 표시합니다.

다음을 사용하여 파일을 잠근 프로세스를 찾으십시오.

  1. 리소스 모니터(resmon.exe)
  2. Microsoft Sysinternals의 프로세스 탐색기
  3. Microsoft Sysinternals의 핸들
    • 오른쪽 클릭 메뉴를 통해 파일 핸들 찾기
  4. Openfiles.exe 내장 콘솔 도구
    • 로컬 파일 핸들 추적 활성화
    • 열려 있는 파일 및 해당 프로세스 이름 보기
    • 공유 폴더에서 열린 파일 연결 해제
  5. Nirsoft.net(타사)의 OpenedFilesView

1. 리소스 모니터

리소스 모니터(resmon.exe)는 유용한 기능이 많이 포함된 기본 제공 도구입니다. 리소스 모니터를 사용하면 다음을 수행할 수 있습니다. 현재 네트워크 및 인터넷 사용 추적, 관련 핸들 보기 잠긴 파일, 작업 관리자를 사용하는 것처럼 프로세스를 관리할 수 있습니다.

파일이 잠긴 프로세스 이름을 찾으려면 CPU 탭을 클릭하고 연결된 핸들 텍스트 상자에 파일 이름 또는 파일 이름의 일부를 입력합니다.

파일을 잠근 프로세스 찾기

리소스 모니터는 이전에 다루었습니다. 다음 기사를 확인하세요.

  • 리소스 모니터를 사용하여 파일을 잠근 프로세스를 찾는 방법은 무엇입니까?
  • 어떤 프로그램이 인터넷 대역폭을 모두 사용하고 있습니까? 리소스 모니터를 사용하여 찾기

2. 프로세스 탐색기

프로세스 탐색기 소개가 필요 없습니다. Process Explorer에서 찾기 기능을 사용하고 파일 이름을 입력하기만 하면 됩니다. 이것은 파일에 액세스하는 프로세스를 보여줍니다.

파일을 잠근 프로세스 찾기

아래쪽 창 보기에서 필요한 경우 파일 핸들을 닫을 수 있습니다.

관리자 권한으로 실행되는 프로세스를 관리하려면 Process Explorer를 관리자로 실행해야 합니다. 프로세스 탐색기를 높이려면 파일 메뉴 → 모든 프로세스에 대한 세부 정보 표시.

다음 Process Explorer 관련 문서를 확인하십시오.

  • Windows에서 완고한 삭제 불가능한 파일 또는 폴더를 삭제하는 방법은 무엇입니까?
  • 현재 웹캠을 사용하고 있는 프로그램 찾기
  • 알 수 없는 오류 메시지가 발생한 프로그램을 찾는 방법은 무엇입니까?
  • 컨테이너의 개체를 열거하지 못했습니다은 무슨 뜻인가요?

3. Windows Sysinternals에서 처리

핸들 시스템의 모든 프로세스에 대한 열린 핸들에 대한 정보를 표시하는 Microsoft Sysinternals의 유틸리티입니다. 이를 사용하여 파일이 열려 있는 프로그램을 보거나 프로그램의 모든 핸들에 대한 개체 유형 및 이름을 볼 수 있습니다. 핸들은 다음의 명령줄 버전과 같습니다. 프로세스 탐색기.

메모: 핸들 v4.21에는 작은 버그 드라이브 문자가 대문자인 경우 항상 "일치하는 핸들을 찾을 수 없음"을 보고합니다. Microsoft가 다음 업데이트에서 이 문제를 수정하기를 바랍니다.

에서 관리자 명령 프롬프트 창에서 명령줄 구문을 사용하여 파일이 열려 있는 프로세스를 찾습니다.

핸들.exe -a -u 파일 이름_with_path

파일 이름에 공백이 포함된 경우 큰따옴표로 묶습니다.

예시:

handle.exe -a -u "c:\users\ramesh\desktop\Mandate-form.pdf"
잠긴 파일을 찾는 프로세스 - sysinternals가 처리합니다.

(경로 없이 파일 이름을 언급하는 것이 모든 상황에서 반드시 작동하는 것은 아닙니다. 항상 전체 경로를 포함하는 것이 좋습니다.)

출력에는 프로세스 이름, 프로세스 식별자, 사용자 이름, 경로가 있는 잠긴(대상) 파일 이름이 표시됩니다.

Sysinternals 핸들: 명령줄 인수

사용법: 핸들 [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [이름] [-노배너]
-ㅏ 모든 핸들 정보를 덤프합니다.
-엘 페이지 파일 지원 섹션 핸들만 표시합니다.
-씨 지정된 핸들을 닫습니다(16진수로 해석됨).
PID로 프로세스를 지정해야 합니다.경고: 핸들을 닫으면 응용 프로그램이나 시스템이 불안정해질 수 있습니다.
-와이 닫기 핸들 확인을 요청하지 마십시오.
-에스 각 유형의 핸들이 열린 횟수를 인쇄합니다.
-유 핸들을 검색할 때 소유 사용자 이름을 표시합니다.
-피 프로세스에 속한 덤프 핸들(부분 이름 허용).
이름 다음을 사용하여 개체에 대한 핸들 검색 (조각 허용).
-노배너 시작 배너 및 저작권 메시지를 표시하지 마십시오.

어떤 인수도 모든 파일 참조를 덤프하지 않습니다.

마우스 오른쪽 버튼 클릭 메뉴에 Sysinternals 핸들 추가

파일의 오른쪽 클릭 메뉴에 Sysinternals Handle을 추가하여 파일을 잠근 프로그램을 빠르게 찾을 수 있습니다. 컨텍스트 메뉴에 추가하려면 다음 단계를 따르세요.

  1. 다운로드 핸들 Microsoft Sysinternals 사이트에서.
  2. 파일 복사 핸들.exe & 핸들64.exe 폴더로 – 예: d:\도구
  3. 다음 코드 줄을 메모장에 복사하고 파일을 다음과 같이 저장합니다. find_handle.vbs 영구적인 위치로.
    'filename 인수로 Sysinternals Handle.exe 유틸리티를 실행합니다. '© Ramesh Srinivasan -- https://winhelponline.com/blog. '작성일: 2008년 3월 29일. '업데이트 날짜: 2019년 6월 11일. 'Windows 10 Option Explicit를 포함한 모든 버전의 Windows용. 희미한 objShell, WshShell, objFSO, sBaseKey, sFilename. objShell = CreateObject("쉘. 애플리케이션") 설정 WshShell = CreateObject("WScript. 껍데기") objFSO = CreateObject("스크립팅. 파일 시스템 개체") WScript의 경우. 인수. 개수 = 0 그러면 sBaseKey = "HKCU\Software\Classes\*\shell\" WshShell입니다. RegWrite sBaseKey 및 "FindHandle\", "핸들 찾기", "REG_SZ" WshShell. RegWrite sBaseKey & "FindHandle\command\", "wscript.exe" & & _ WScript. ScriptFullName & & " " & & "%1" &, "REG_SZ" 그렇지 않으면 objFSO.FileExists(WScript. 인수(0)) = True 그러면 sFilename = lcase(WScript. 인수(0)) objShell. ShellExecute "cmd.exe", "/k d:\tools\handle.exe -a -u " & _ & sFilename &, "", "runas", 1 End If. 종료

    메모: Sysinternals Handle.exe 경로는 다음과 같이 하드 코딩됩니다. d:\tools\handle.exe 위의 스크립트에서. 프로그램이 다른 경로에 있는 경우 그에 따라 스크립트의 경로를 수정하십시오. 64비트 Windows의 경우 다음 중 하나를 사용할 수 있습니다. 핸들.exe 또는 핸들64.exe

  4. 더블 클릭 find_handle.vbs 레지스트리에 상황에 맞는 메뉴 항목을 추가합니다. 이 작업은 한 번만 수행해야 합니다. 그러나 스크립트를 다른 폴더로 재배치하는 경우 레지스트리의 경로를 업데이트하려면 스크립트를 다시 두 번 클릭해야 합니다.
  5. 당신은 볼 것입니다 핸들 찾기 파일을 마우스 오른쪽 버튼으로 클릭하면 옵션이 표시됩니다. 그것을 클릭하면 파일이 잠긴 프로세스를 찾기 위해 파일 이름 인수와 함께 handle.exe를 차례로 실행하는 스크립트가 시작됩니다.잠긴 파일을 찾는 프로세스 - sysinternals가 처리합니다.

제거하려면 핸들 찾기 상황에 맞는 메뉴 항목, 레지스트리 편집기 시작(regedit.exe) 다음 키를 삭제합니다.

HKEY_CURRENT_USER\Software\Classes\*\shell\FindHandle

4. OpenFiles.exe — 내장 콘솔 도구

우리가 사용할 또 다른 기본 제공 도구는 Windows에 새로운 것이 아닌 콘솔 도구인 Openfiles.exe입니다. Windows Resource Kit 2000/2003 도구의 일부로 2000년에 처음 소개되었습니다. 이 유틸리티는 Windows Vista 이상(Windows 10 포함)에 기본적으로 포함되었습니다. Openfiles는 핸들 ID 및 프로세스 실행 파일 이름과 함께 로컬 또는 공유 폴더에서 현재 열려 있는 파일 목록을 표시합니다. 이 도구를 사용하면 공유 폴더에서 원격으로 열려 있는 하나 이상의 파일 연결을 끊을 수도 있습니다.

처음으로 "객체 목록 유지" 전역 플래그 활성화

먼저 로컬 파일 핸들 추적을 활성화하려면 관리자 명령 프롬프트에서 다음 명령을 실행하여 '객체 목록 유지' 플래그를 켜야 합니다.

openfiles /local on

다음 메시지가 표시됩니다.

정보: 시스템 전역 플래그 '객체 목록 유지'가 현재 활성화되어 있습니다.

이 명령은 처음에만 실행해야 합니다. 그런 다음 변경 사항을 적용하려면 Windows를 다시 시작하십시오.

열려 있는 파일 및 해당 프로세스 이름 보기

Windows를 다시 시작한 후 다음에서 관리자 명령 프롬프트 창에서 다음을 입력합니다.

오픈파일

파일/핸들 ID, 프로세스 이름 및 로컬로 열리거나 로컬 공유 지점을 통해 원격으로 열린 파일 목록을 테이블 형식으로 나열합니다.

목록 또는 CSV 형식으로 출력을 보려면 /query 매개변수를 사용하십시오.

openfiles /쿼리 /FO 목록. 열린 파일 /쿼리 /FO CSV

출력을 클립보드에 복사하려면 아래와 같이 출력을 Clip.exe로 파이프합니다. 그런 다음 메모장이나 원하는 다른 편집기에 출력을 붙여넣습니다.

오픈파일 |클립
파일을 잠근 프로세스 찾기
openfiles /query /FO 목록 |클립. openfiles /쿼리 /FO CSV |클립
파일을 잠근 프로세스 찾기

명령 프롬프트 출력을 클립보드에 복사하거나 출력을 파일에 저장하는 방법에 대한 자세한 내용은 문서를 확인하십시오. 명령 프롬프트 출력 텍스트를 클립보드에 복사하거나 파일에 저장하는 방법은 무엇입니까?

특정 파일이 프로그램에서 사용 중인지 확인하려면(그리고 어떤 프로그램인지 확인하기 위해) 다음 명령줄을 사용할 수 있습니다.

오픈파일 | findstr / 나 

예시:

오픈파일 | findstr /i 에펠

위의 명령은 파일 이름에 "eiffel"이라는 단어가 포함된 열려 있는 모든 파일을 나열합니다. 이 예에서 Word 2016은 현재 "The Eiffel Tower.docx"(ID 4576) 파일에 대해 잠겨 있습니다.

파일을 잠근 프로세스 찾기

그리고 "사용 중인 파일" 대화 상자도 같은 내용을 알려줍니다.

파일을 잠근 프로세스 찾기

공유 폴더에서 원격으로 열린 파일의 연결을 끊습니다.

삭제, 파일 이름 변경 또는 내용 수정을 위해 공유 폴더에서 열린 파일의 연결을 끊으려면 다음을 사용하십시오. /disconnect 해당 파일에 대한 연결을 끊는 매개변수입니다. 다음은 명령줄 옵션입니다.

OPENFILES /연결 해제 [/S 시스템 [/U 사용자 이름 [/P [비밀번호]]]] {[/ID ID] [/A 액세스] [/O 개방 모드]} [/OP 파일 열기] 설명: 관리자가 공유를 통해 원격으로 연 파일 및 폴더의 연결을 끊을 수 있습니다. 폴더. 매개변수 목록: /S system 연결할 원격 시스템을 지정합니다. /U [domain\]user 명령을 실행해야 하는 사용자 컨텍스트를 지정합니다. /P [암호] 주어진 사용자 컨텍스트에 대한 암호를 지정합니다. /ID id 파일 ID별로 열려 있는 파일의 연결을 끊도록 지정합니다. "*" 와일드카드를 사용할 수 있습니다. /A accessedby "accessedby" 값으로 열려 있는 모든 파일의 연결을 끊도록 지정합니다. "*" 와일드카드를 사용할 수 있습니다. /O openmode "openmode" 값으로 열려 있는 모든 파일의 연결을 끊도록 지정합니다. 유효한 값은 읽기, 쓰기 또는 읽기/쓰기입니다. "*" 와일드카드를 사용할 수 있습니다. /OP openfile 특정 "열린 파일" 이름으로 생성된 열려 있는 모든 파일 연결을 끊도록 지정합니다. "*" 와일드카드를 사용할 수 있습니다. /? 이 도움말 메시지를 표시합니다. 예: OPENFILES /연결 끊기 /? OPENFILES /연결 해제 /ID 1 OPENFILES /연결 해제 /A 사용자 이름 OPENFILES /연결 해제 /O 읽기/쓰기 OPENFILES /연결 해제 /OP "c:\My Documents\somedoc.doc" /ID 234 OPENFILES /연결 끊기 /S 시스템 /U 사용자 이름 /ID 5 OPENFILES 연결 끊기 /S 시스템 /U 사용자 이름 /P 암호 /ID *

Openfiles.exe는 열려 있는 모든 파일을 프로세스 이름과 함께 나열하는 작업을 완벽하게 수행하지만 프로세스를 강제로 종료할 수는 없습니다. 그러나 이 뛰어난(그러나 간과된) 내장 콘솔 도구는 사용 중인 프로세스 이름을 빠르게 찾고 싶을 때 유용할 수 있습니다. 파일 또는 네트워크 사용자가 공유 폴더를 통해 액세스하는 파일의 연결을 끊습니다. 해결책.

5. 열린 파일 보기

열린 파일 보기 from Nirsoft는 시스템에서 열려 있는 모든 파일의 목록을 표시합니다. 열린 각 파일에 대해 핸들 값, 읽기/쓰기/삭제 액세스, 파일 위치, 프로세스와 같은 추가 정보가 표시됩니다. 파일을 연 파일 등... 선택적으로 하나 이상의 열린 파일을 닫거나 이러한 파일을 연 프로세스를 닫을 수도 있습니다. 파일.

파일을 잠근 프로세스 찾기

선택한 파일의 프로세스를 닫거나 선택한 파일 핸들을 닫을 수 있습니다. 핸들 번호는 16진수 값으로 표시되는 반면 openfiles.exe 콘솔 도구는 일반 형식으로 표시합니다. 이 도구를 사용하면 컨텍스트 메뉴 옵션을 추가하여 마우스 오른쪽 버튼 클릭 메뉴를 통해 현재 파일을 사용 중인 프로세스를 빠르게 찾을 수도 있습니다. 컨텍스트 메뉴 옵션/명령줄 지원은 OpenedFilesView에서 제공하는 가장 유용한 기능 중 하나라고 생각합니다.


작은 요청 하나: 이 게시물이 마음에 들면 공유해 주세요.

귀하의 "작은" 공유 하나가 이 블로그의 성장에 많은 도움이 될 것입니다. 몇 가지 훌륭한 제안:
  • 그것을 핀!
  • 좋아하는 블로그 + Facebook, Reddit에 공유
  • 트윗해!
독자 여러분의 많은 지원 부탁드립니다. 시간은 10초 이상 걸리지 않습니다. 공유 버튼은 바로 아래에 있습니다. :)

에조익이 광고 신고