Windows에서 파일을 열린 상태로 유지하는 프로세스를 어떻게 찾습니까?


515

Windows에 대해 끝이없는 한 가지는 오래된 공유 위반 오류입니다. 종종 무엇이 열려 있는지 파악할 수 없습니다. 일반적으로 관련 디렉토리를 가리키는 편집기 또는 탐색기 일뿐이지만 때로는 컴퓨터를 다시 부팅해야했습니다.

범인을 찾는 방법에 대한 제안?


12
이 모든 시간이 지나면 Windows 사용자는 탐색기에서 쉽게이 작업을 수행 할 수 있습니다. 왜 이런 일이 발생하지 않았는지 궁금합니다.
Cawflands 2009

6
탐색기는 명백한 이유없이 파일을 보유하고있는 문제 프로세스 인 경우가 많습니다.
Eddie

나는 이것이 당신에게 도움이되지 않는다는 것을 알고 있지만, 이것이 Vista와 2008 서버 이후의 다음 Windows 릴리스의 계획 된 기능이라는 것을 기억합니다. 아니면 WinFS 일 수도 있습니다. 내가 어디서 읽었는지 모르겠다.
Kip

내 대답을 참조 여기에 수퍼 유저를 요약, OpenedFilesView는 여전히 2019에서 작동
비제이

답변:


440

Sysinternals Process Explorer에서 성공했습니다 . 이를 통해 파일을 열어 놓은 프로세스를 찾아서 원하는 경우 핸들을 닫을 수 있습니다. 물론 전체 프로세스를 닫는 것이 더 안전합니다. 주의하고 판단하십시오.

특정 파일을 찾으려면 파일 Find->Find Handle or DLL... 경로의 일부에 메뉴 옵션 유형을 사용 하십시오. 프로세스 목록이 아래에 나타납니다.

명령 행을 선호하는 경우 Sysinternals 제품군에는 열린 핸들을 나열 하는 명령 행 도구 Handle이 포함됩니다 . 사용 방법에 대한 몇 가지 예 :

  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\ -드라이브 E에서 열린 모든 파일을 찾으십시오.
  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question

17
핸들을 닫을 수는 있지만 응용 프로그램에서 깔개를 꺼내면 결과를 예측할 수 없습니다.
WaldenL

12
@ Walden : 물론입니다. YMMV. WinXP를 사용하면 여러 번 Explorer에서 명백한 이유없이 핸들을 열고 닫는 것을 거부했습니다. 삭제해야하는 파일에서이 문제가 발생하면 핸들을 강제로 닫거나 재부팅 할 수 있습니다. 지금까지이 수십 번을 해본 결과 나는 아무런 영향을받지 않았습니다. 다른 고급 도구와 마찬가지로 신중하게 판단하십시오.
Eddie

5
핸들을 닫으면 앱이 다른 파일에서 핸들을 재사용하여 손상을 일으킬 수 있습니다. 아래 Jeff의 답변을 참조하십시오 : serverfault.com/a/15695/79266 ... 파일을 열어 둔 응용 프로그램을 종료하는 것이 훨씬 안전합니다. 재부팅하고 싶지 않습니다.
RichVel

14
익스플로러의 경우 btw를 누르고 ctrl-shift를 누르고 시작 메뉴의 빈 영역을 마우스 오른쪽 버튼으로 클릭하면 "
Exp

2
임원 파일이 아닌 텍스트 파일에는 도움이되지 않습니다. 누가 로그 파일에 쓰고 있는지 알아야합니다. 어떤 생각?
Xaqron

183

Windows 7, 8 및 10에 기본 제공되는 리소스 모니터 를 사용할 수 있습니다 .

  1. 찾을 수있는 공개 자원 모니터
    • 시작 메뉴에서 리소스 모니터 또는 resmon.exe 를 검색 하거나
    • 작업 관리자성능 탭에 있는 버튼으로
  2. CPU 탭으로 이동
  3. 연관된 핸들 섹션 에서 검색 필드 를 사용하십시오.
    • 아래 스크린 샷에서 파란색 화살표를 참조하십시오

핸들을 찾으면 이미지 및 / 또는 PID 열을보고 프로세스를 식별 할 수 있습니다.

그런 다음 평상시처럼 응용 프로그램을 닫으려고 시도하거나 불가능한 경우 핸들을 마우스 오른쪽 단추로 클릭하고 프로세스를 직접 종료하십시오. 쉬워요!

리소스 모니터

내 원래 답변에서 복사 : https://superuser.com/a/643312/62


2
Windows 8에서이 프로그램을 찾기 어려울 수 있습니다. 'resmon.exe'를 찾으면 찾을 수 있습니다.
Kylotan

4
@Kylotan, 검색 시간을 낭비하지 마십시오. resmon cmd에서 직접 실행
Pacerier

1
@Pacerier : 좋습니다. 나는 Windows 경로에있는 것들에 익숙하지 않습니다.
Kylotan

이것은 'Handle | FindStr '및'Unlocker '대안도 효과적이지만
Marcus Vinicius Pompeu

4
Windows 10에서도 여전히 유효하며 작업 관리자-> 성능 탭의 "Open Resource Monitor"단추를 사용하여 찾을 수 있습니다.
Norman Breau

92

openfiles 명령을 시도하십시오 .


10
대부분의 경우 개인적으로 ProcessExplorer를 사용하지만 내장 명령의 경우 +1입니다.
RBerteig

정말 도움이됩니다.
marko

7
오류 : 대상 시스템이 32 비트 OS를 실행 중이어야합니다.
Bozojoe

4
64 OS에서는 작동하지 않습니다!

12
이것은 Windows 2012R2 64 비트에서 작동하는 것으로 보이지만 실행 openfiles /local on하고 다시 시작 하여 "오픈 로컬 추적"서비스를 활성화해야합니다 . 이 기능은 그다지 유용하지 않습니다.
구스

82

핸들을 닫을 때 매우 조심하십시오. 핸들 재활용 때문에 생각보다 훨씬 위험합니다. 파일 핸들을 닫고 프로그램이 다른 것을 열면 닫은 원래 파일 핸들이 "다른 것"으로 재사용 될 수 있습니다. 이제 파일 핸들이 이제 다른 것을 가리키고있을 때 프로그램이 파일에서 작업하고 있다고 생각하면서 프로그램이 계속 진행되면 어떻게 될지 추측하십시오.

이 주제에 대한 Raymond Chen의 게시물 을 참조하십시오

검색 색인 서비스에 색인 작성을 위해 파일이 열려 있지만 임시로 멈췄으며 파일을 삭제하려고하므로 (현명하지 않게) 핸들을 강제로 닫으십시오. 검색 색인 서비스는 일부 정보를 기록하기 위해 로그 파일을 열고 삭제 된 파일에 대한 핸들은 로그 파일에 대한 핸들로 재활용됩니다. 멈춤 조작이 최종적으로 완료되고 검색 색인 서비스가 마지막으로 열린 핸들을 닫아 버려 결국 로그 파일 핸들을 실수로 닫습니다.

검색 색인 서비스는 다른 파일 (예 : 구성 파일)을 열어 지속적 상태를 업데이트 할 수 있습니다. 로그 파일의 핸들은 구성 파일의 핸들로 재활용됩니다. 검색 색인 서비스는 일부 정보를 로그하려고하므로 로그 파일에 씁니다. 불행하게도, 로그 파일 핸들이 닫히고 핸들이 구성 파일에 재사용되었습니다. 기록 된 정보는 구성 파일에 들어가 손상됩니다.

한편 강제로 닫은 다른 핸들은 뮤텍스 핸들로 재사용되어 데이터 손상을 방지하는 데 사용됩니다. 원래 파일 핸들이 닫히면 뮤텍스 핸들이 닫히고 데이터 손상에 대한 보호 기능이 손실됩니다. 서비스가 오래 실행 될수록 인덱스가 더 손상됩니다. 결국 누군가는 색인이 잘못된 결과를 반환한다는 것을 알게됩니다. 또한 서비스를 다시 시작하려고하면 구성 파일이 손상되어 실패합니다.

검색 색인 서비스를 작성하는 회사에 문제점을보고하고 색인이 손상되었거나 로그 파일이 로그 기록을 신비하게 중지했으며 구성 파일을 가비지로 겹쳐 쓴 것으로 판별합니다. 일부 불량 기술자에게는 서비스가 인덱스와 구성 파일을 손상시키는 이유를 파악하는 희망없는 작업이 할당되며, 손상의 원인이 핸들을 강제로 닫았는지 알지 못합니다.


12
중요한 경고는 상단에 가까워 야합니다. 재부팅은 자동으로 손상된 파일보다 낫습니다.
RichVel

6
+1 이렇게하면 핸들을 강제로 닫는 것에 대해 두 번 생각하게됩니다! Windows가 숫자를 계속 늘리고 필요할 때만 감싸지 않고 닫힌 핸들 수를 즉시 재사용한다는 것이 이상하게 보입니다. 그것은 적어도이 문제가 발생할 가능성을 크게 줄입니다.
EM0

1
@RichVel 범인 프로세스를 종료하는 것이 전체 재부팅보다 낫습니다.
Dmitry Grigoryev

@DmitryGrigoryev-좋은 지적, 사실 저는 이미 여기에
RichVel

2
이것은 매우 중요한 경고이지만 Windows에서 파일을 열어 놓은 프로세스를 어떻게 찾을 수 있습니까?
Ploni

29

과거에 이러한 프로세스를 찾기 위해 Handle with success를 사용했습니다 .


3
이 도구를 항상 사용합니다. USB 드라이브를 꺼낼 수 없으면 "handle H :"(또는 드라이브 문자)를 입력하면됩니다. 무엇보다도 핸들을 강제로 닫을 때 사용할 수 있습니다.
크리스 톰슨



7

명확히하기 위해 이것은 Windows 자체의 것보다 CreateFile API 호출을 올바르게 사용하지 않는 타사 앱의 오작동의 결과 일 가능성이 큽니다 . 아마도 CreateFile 디자인의 결과 일지 모르지만 완료되었으므로 되돌릴 수 없습니다.

기본적으로 Windows 프로그램에서 파일을 열 때 공유 액세스를 허용하는 플래그를 지정할 수 있습니다. 플래그를 지정하지 않으면 프로그램은 파일에 독점적으로 액세스합니다.

탐색기가 여기에 범인 인 것처럼 보이면 실제로 표면에있을 수 있으며 실제 범인은 자신의 목적으로 폴더의 모든 파일을 여는 쉘 확장명을 설치하는 것일 수도 있습니다. gung-ho가 그렇게하거나 그 후에 제대로 정리되지 않습니다. 시만텍 AV는 이전에이 작업을 수행 한 것으로 보았으며 다른 AV 프로그램도 비난을 받아도 놀라지 않을 것입니다. 소스 제어 플러그인에 결함이있을 수 있습니다.

따라서 실제로 대답은 아니지만 잘못 작성된 타사 프로그램 (암시 적 파일 잠금이있는 다른 OS에서도 발생할 수 있지만 유닉스 기반 OS는 공유 액세스 권한을 가지고 있음)에 대해 Windows를 항상 비난하지 않는 몇 가지 조언 기본).


1
내 Windows 탐색기가 항상 작업 디렉토리에서 Thumbs.db 파일을 잠그지 만 작업 디렉토리를 전환 할 때 항상 잠금을 해제하지는 않는다는 사실에 타사 앱을 비난하지는 않습니다. 창문을 닫을 때 최소한 잠금이 해제되어 모든 탐험가를 죽일 필요는 없습니다.
Alexander

@Darth, Microsoft의 마케팅 담당자입니까?
Pacerier

6

원격 서버에서 네트워크 공유를 확인할 때 컴퓨터 관리 콘솔처럼 간단한 정보가이 정보를 표시하고 파일을 닫을 수 있습니다.


정확히, 왜 그렇게 복잡한 대답이 있습니까?
Rohit Gupta

6

파일 열기를 유지 한 Apropos Explorer : "삭제해야하는 파일에서이 문제가 발생하면 핸들을 강제로 닫거나 재부팅 할 수 있습니다."

탐색기를 종료하면됩니다.

이것이 일회성이라면 (Explorer는 일반적 으로이 파일을 열어 두지 않습니다) 로그 오프하고 다시 로그온하면 트릭을 수행합니다.

그렇지 않으면 데스크톱 탐색기 프로세스를 종료하고 사라지는 동안 원하는 작업을 수행하십시오. 먼저 cmd.exe의 사본을 시작하십시오 (원하는 정리를 수행하려면 UI가 필요합니다). 데스크탑이 아닌 탐색기가 실행되고 있지 않은지 확인하십시오. 그런 다음 작업 관리자와 같은 마지막 탐색기를 종료하십시오. 명령 프롬프트에서 원하는 것을 수행하십시오. 마지막으로 명령 프롬프트에서 탐색기를 실행하면 바탕 화면이됩니다.

일부 시스템 트레이 프로그램이 셸 재시작을 처리 할 수없는 경우 약간의 불쾌감이있을 수 있습니다.


1
이것은 핸들을 닫는 것보다 훨씬 안전하고 재부팅하는 것보다 덜 파괴적입니다. 다른 프로그램에도 적용됩니다. 파일을 닫은 후에도 Microsoft Office 프로그램이 파일을 잠그는 경우가 많습니다.
RichVel

5

로컬 프로세스 ( 잠금 해제 도구는 사용하는 도구)와 공유를 통해 들어오는 파일 액세스로 파일을 잠글 수 있습니다 .

Windows에는 로컬 컴퓨터의 어떤 파일이 원격 컴퓨터 (파일 공유를 통해 파일이 열려 있음)에 의해 열려 있거나 잠겨 있는지 표시하는 내장 기능이 있습니다.

* Select "Manage Computer" (Open "Computer Management")
* click "Shared Folders"
* choose "Open Files"

거기에서 파일을 강제로 닫을 수도 있습니다.




2

위의 답변은 프로그램 프로세스가 파일 핸들을 열린 상태로 유지하는 상황을 다룹니다. (다행히도) 대부분의 경우-(현재이 시스템에서 발생하는) 시스템 자체에 파일 핸들이 있습니다. 열다.

위의 프로세스 탐색기에서 파일 핸들 보유 프로세스를 찾기위한 지시 사항을 따르고 프로세스 이름이 '시스템'으로 나열되어 있는지 또는 자원 모니터를 사용하여 지시 사항을 따르고 이미지가 표시되지 않음을주의하여이 상황을 식별 할 수 있습니다. 관심있는 파일에서 파일 핸들을 열어 두십시오 (물론 파일을 편집 / 삭제할 수 없기 때문에 무언가가 있습니다).

그런 경우, (내가 아는 한) 귀하의 옵션은 다시 시작하거나 해당 파일로 작업을 잊어 버리는 것입니다.


0

나는 Jeremy Zawodny의 블로그에 의해 얼마 전 Exteneded Task Manager를 켰고 프로세스에 대한 추가 정보를 추적하는 데 좋습니다. 위와 같이 프로세스 탐색기, 특히 표준 작업 관리자가 종료하지 않는 프로세스 종료의 경우 +1.


0

FILEMON 도구가 있으며 열린 파일과 핸들을 보여줍니다. 실시간으로 시청하면 디스플레이를 따라 가기가 어렵습니다. 그러나 실시간 표시를 중지하고 모든 파일 열기 / 쓰기 활동을 볼 수 있습니다. 현재 Microsoft가 소유하지만 원래 Sysinternals가 소유


1
이것의 업데이트 된 버전은 프로세스 모니터입니다. 여기에서 얻을 수 있습니다 : http://technet.microsoft.com/en-us/sysinternals/bb896645
yitwail
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.