2008-08-19 17 views
75

내가 좋아하는 리눅스 용 도구 중 하나는 lsof - 진짜 스위스 육군 칼입니다!Windows에서 특정 파일이 열려 있는지 여부를 어떻게 확인할 수 있습니까?

오늘 WinXP 시스템의 특정 프로그램이 열려있는 프로그램이 궁금합니다. lsof와 동등한 유틸리티가 있습니까? 또한 문제의 파일이 네트워크 공유를 통해 전달 되었기 때문에 문제가 복잡하게되는지 확실하지 않습니다.

답변

61

Sysinternals Suite의 Process Explorer을 사용하면 Find Handle 또는 DLL 기능을 통해 해당 파일이 열려있는 프로세스를 검색 할 수 있습니다.

+0

이 질문에 실제로 대답합니까? Process Explorer를 사용하면 특정 프로세스/핸들/dll/어떤 파일에 대해 열려있는 파일을 볼 수 있지만 그 반대의 매핑입니다. 이 질문에 대한 내 대답 http://stackoverflow.com/questions/15708/lsof-equivalent-for-windows#188337을 참조하십시오. –

+5

예. 핸들 또는 Dll 찾기 (또는 Ctrl-F 누르기)를 클릭하고 검색중인 파일의 이름을 입력하면 해당 파일이 열려있는 프로세스 목록이 표시됩니다. –

+0

프로세스 탐색기의 이름이 바뀌고 "프로세스 모니터"에 번들되었습니다. –

4

"컴퓨터"(또는 "내 컴퓨터") 아이콘을 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 "관리"를 선택하면 컴퓨터 관리 콘솔로 이동합니다.

거기에는 시스템 도구 \ 공유 폴더 아래에 "파일 열기"가 있습니다. 이것은 아마도 당신이 원하는 것에 가깝지만, 파일이 네트워크 공유에 있다면 파일이있는 서버에서 똑같은 작업을 수행해야합니다.

+3

다른 네트워크 사용자가 열어 놓은 공유 파일 만 표시합니다. 로컬 시스템에서 열려있는 파일을 찾는데 도움이되지 않습니다. 서버에서이 작업을 수행하면 해당 사용자의 컴퓨터에서 어떤 프로그램을 열지는 않은지 사용자에게 알릴 수 있습니다. Process Explorer (@JayHofacker에 의해 언급 됨)가 잘 작동했습니다. – tomlogic

8

시도 Handle. Filemon & Regmon 또한 duce 프로그램 foo가 시스템에서 수행중인 작업을 파악하는 데 유용합니다.

+0

시도하고 좋아하는 손잡이. 감사. – Batandwa

+0

@slipsec Windows 2000 SP4, Windows XP SP2 등으로 시작하는 FileMon과 Regmon이 이제 [Process Monitor v3.2] (https://technet.microsoft.com/en-us/sysinternals/bb896645)로 대체되었습니다. Windows Server 2003 SP1 및 Windows Vista를 지원합니다. – Lucky

5

시도 Unlocker.

Unlocker 사이트에는 다른 도구와의 비교를 보여주는 훌륭한 차트 (링크를 따라 스크롤 다운)가 있습니다. 분명히 이러한 비교는 대개 도구 작성자가 작성하기 때문에 일반적으로 편향되지만 차트에는 대안을 나열하여 직접 시도 할 수 있습니다. 시스 인 터널을 처리하고 listdlls는 www.microsoft.com/technet/sysinternals/utilities/ListDlls.mspx에서

+4

Unlocker는 열린 파일이 아닌 잠긴 파일 만 나열합니다. 대부분의 Windows 소프트웨어는 DLL을 사용하지만 문서는 사용하지 않습니다. – Tobias

36

lsof -p pid의 동등한 즉

handle -p pid 
listdlls -p pid 

당신이 시스 인 터널 pslist와 PID를 찾을 수 있습니다, 결합 출력됩니다.

5

파일이 .DLL이 당신이 누구가 열려있어 확인하기 위해 작업 목록 명령 줄 응용 프로그램을 사용할 수 있습니다 경우 :

TaskList /M nameof.dll 
2

를 사용하여 프로세스 탐색기를 프로세스 ID를 찾을 수 있습니다. 그런 다음 어떤 파일이 열려 있는지 알아 보려면 Handle을 사용하십시오.

예는 마이크로 소프트 자체에서 유틸리티를 사용하고 있기 때문에

-p 나는이 방법을 좋아 처리합니다.

+0

그 사람에게만 소스 코드가 있다면 – Paladin

1

OpenedFilesView에는 옵션 메뉴 아래에 "네트워크 파일 표시"라는 메뉴 항목이 있습니다. 어쩌면이 기능을 사용하면 앞서 언급 한 유틸리티를 사용할 수 있습니다.

5

lsof를 1 당량은 즉, 시스 인 터널 '핸들listdlls는 www.microsoft.com/technet/sysinternals/utilities/ListDlls.mspx에서 출력 결합 될 수있다 :

c:\SysInternals>handle 
[...] 
------------------------------------------------------------------------------ 
gvim.exe pid: 5380 FOO\alois.mahdal 
    10: File (RW-) C:\Windows 
    1C: File (RW-) D:\some\locked\path\OpenFile.txt 
[...] 

c:\SysInternals>listdlls 
[...] 
------------------------------------------------------------------------------ 
Listdlls.exe pid: 6840 
Command line: listdlls 

    Base  Size  Version   Path 
    0x00400000 0x29000 2.25.0000.0000 D:\opt\SysinternalsSuite\Listdlls.exe 
    0x76ed0000 0x180000 6.01.7601.17725 C:\Windows\SysWOW64\ntdll.dll 
[...] 

c:\SysInternals>listdlls 

불행하게도, 당신이 그들을 사용할 수 있도록 "관리자 권한으로 실행"해야 .또한

listdlls는 www.microsoft.com/technet/sysinternals/utilities/ListDlls.mspx핸들 때문에 PID를 숨겨 파일 이름을 필터링 연속 테이블과 같은 형태를 생성하지 않습니다.

c:\SysinternalsSuite>handle | findstr /c:pid: /c:Driver.pm 
System pid: 4 \<unable to open process> 
smss.exe pid: 308 NT AUTHORITY\SYSTEM 
avgrsa.exe pid: 384 NT AUTHORITY\SYSTEM 
[...] 
cmd.exe pid: 7140 FOO\alois.mahdal 
conhost.exe pid: 1212 FOO\alois.mahdal 
gvim.exe pid: 3408 FOO\alois.mahdal 
    188: File (RW-) D:\some\locked\path\OpenFile.txt 
taskmgr.exe pid: 6016 FOO\alois.mahdal 
[...] 

여기 우리가 gvim.exe 열어이 파일을 갖는 하나입니다 볼 수 있지만 findstr /c:pid: /c:<filename>은 모두 유틸리티와는 아주 가까이해야합니다.

3

"OpenFiles"프로그램이 있으며, Windows 7의 일부인 것처럼 보입니다. 원하는대로 할 수있는 것 같습니다. 원격 사용자가 파일 공유를 통해 파일을 열거하고 "openfiles/Local on"을 호출하고 시스템을 다시 시작하면 로컬로 열린 파일을 표시 할 수 있습니다. 후자는 성과 처벌을 받았다고합니다.

+0

나는 누가 폴더를 지우지 않고 재시동을 피할 수 있는지 찾아내는 방법을 찾고 있습니다. 필요한 명령은 설정이 필요합니다 ... 당신은 짐작했습니다. .... 다시 시작해야합니다. 얼마나 매우 창문. – Gus

관련 문제