문제

제가 가장 좋아하는 Linux 도구 중 하나는 이소프 - 진짜 스위스 군용 칼!

오늘 저는 WinXP 시스템의 어떤 프로그램에 특정 파일이 열려 있는지 궁금해했습니다.lsof와 동등한 유틸리티가 있습니까?또한 문제의 파일은 네트워크 공유를 통해 이루어졌기 때문에 문제가 복잡한지는 잘 모르겠습니다.

도움이 되었습니까?

해결책

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

다른 팁

동등한 lsof -p pid sysinternals 핸들과 listdlls의 결합된 출력입니다. 즉

handle -p pid
listdlls -p pid

sysinternals로 pid를 알아낼 수 있습니다 pslist.

노력하다 핸들. 파일몬 & 레그몬 duce 프로그램 foo가 시스템에 무엇을 하는지 알아내는 데도 좋습니다.

1개에 해당하는 것 이소프 Sysinternals의 출력을 결합할 수 있습니다. 핸들 그리고 목록dll, 즉.:

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

안타깝게도 이를 사용하려면 "관리자 권한으로 실행"해야 합니다.

또한 목록dll 그리고 핸들 연속적인 테이블 형식을 생성하지 않으므로 파일 이름을 필터링하면 PID가 숨겨집니다. findstr /c:pid: /c:<filename> 그래도 두 유틸리티 모두에 매우 가까워질 것입니다.

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가 이 파일을 열어 놓은 것임을 알 수 있습니다.

노력하다 잠금 해제기.

Unlocker 사이트에는 다른 도구와의 비교를 보여주는 멋진 차트(링크를 따라간 후 아래로 스크롤)가 있습니다.분명히 이러한 비교는 일반적으로 도구 작성자가 작성하므로 편향되어 있지만 차트에는 최소한 직접 시도해 볼 수 있도록 대안이 나열되어 있습니다.

파일이 .dll이면 다음을 사용할 수 있습니다. 작업 목록 누가 그것을 열었는지 확인하는 명령줄 앱:

TaskList /M nameof.dll

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

시스템 도구\공유 폴더 아래에 "파일 열기"가 있습니다.이는 아마도 원하는 것과 비슷할 것입니다. 그러나 파일이 네트워크 공유에 있는 경우 파일이 있는 서버에서도 동일한 작업을 수행해야 합니다.

Windows 7에 포함된 "OpenFiles"라는 프로그램이 있습니다.원하는 대로 할 수 있을 것 같습니다.원격 사용자가 열린 파일 (파일 공유를 통해)을 나열하고 "OpenFiles /Local ON"을 호출 한 후 시스템 재시작 후 로컬로 열린 파일을 표시 할 수 있어야합니다.후자는 성능 저하가 있다고 합니다.

프로세스 탐색기를 사용하여 프로세스 ID를 찾으십시오.그런 다음 사용 핸들 어떤 파일이 열려 있는지 알아보세요.

예: 핸들 -p

Microsoft 자체의 유틸리티를 사용하고 있기 때문에 이 접근 방식이 마음에 듭니다.

~ 안에 열린파일보기, 옵션 메뉴 아래에 "네트워크 파일 표시"라는 메뉴 항목이 있습니다.아마도 이 기능을 활성화하면 앞서 언급한 유틸리티가 어느 정도 유용할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top