83 votes

Comment puis-je déterminer si un fichier spécifique est ouvert dans Windows ?

L'un de mes outils préférés pour linux est lsof - un véritable couteau suisse !

Aujourd'hui, je me suis demandé quels programmes d'un système WinXP avaient un fichier spécifique ouvert. Existe-t-il un utilitaire équivalent à lsof ? De plus, le fichier en question était sur un partage réseau, je ne sais pas si cela complique les choses.

72voto

Jay Hofacker Points 2549

Utilice Explorateur de processus de la suite Sysinternals, la fonction Find Handle or DLL vous permettra de rechercher le processus dans lequel ce fichier est ouvert.

39voto

L'équivalent de lsof -p pid

est la sortie combinée de sysinternals handle et listdlls, c'est à dire

handle -p pid

listdlls -p pid

vous pouvez trouver le pid avec sysinternals pslist

10voto

slipsec Points 1102

Essayez Poignée . Filemon & Regmon sont aussi très utiles pour essayer de comprendre ce que le programme foo de duce fait à votre système.

6voto

Alois Mahdal Points 1840

L'équivalent de lsof est la sortie combinée de Sysinternals'. handle y listdlls c'est-à-dire :

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

Malheureusement, vous devez vous "exécuter en tant qu'administrateur" pour pouvoir les utiliser.

De plus, listdlls et handle ne produisent pas une forme de tableau continu, donc filtrer le nom de fichier masquerait le PID. findstr /c:pid: /c:<filename> devrait vous permettre de vous rapprocher des deux utilitaires, bien que

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
[...]

Ici, nous pouvons voir que gvim.exe est celui qui a ce fichier ouvert.

5voto

Greg Mattes Points 9578

Essayez Déverrouilleur .

Le site d'Unlocker propose un graphique intéressant (à faire défiler après avoir suivi le lien) qui montre une comparaison avec d'autres outils. Il est évident que ces comparaisons sont généralement biaisées puisqu'elles sont généralement rédigées par l'auteur de l'outil, mais le tableau énumère au moins les alternatives afin que vous puissiez les essayer par vous-même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X