Question

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 sur un système WinXP avaient un fichier spécifique ouvert.Existe-t-il un utilitaire équivalent à lsof ?De plus, le fichier en question se trouvait sur un partage réseau, je ne sais donc pas si cela complique les choses.

Était-ce utile?

La solution

Utiliser Explorateur de processus à partir de Sysinternals Suite, la fonction Rechercher un handle ou une DLL vous permettra de rechercher le processus avec ce fichier ouvert.

Autres conseils

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.

Essayer Poignée. Filemon & Regmon sont également parfaits pour essayer de comprendre ce que le programme duce foo fait à votre système.

Un équivalent de lsof pourrait être une sortie combinée de Sysinternals poignée et listdll, 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 « exécuter en tant qu'administrateur » pour pouvoir les utiliser.

Aussi listdll et poignée ne produit pas de formulaire continu semblable à un tableau, donc le filtrage du nom de fichier masquerait le PID. findstr /c:pid: /c:<filename> Cela devrait vous rapprocher des deux utilitaires, cependant

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.

Essayer Débloqueur.

Le site Unlocker propose un tableau astucieux (faites défiler vers le bas après avoir suivi le lien) qui montre une comparaison avec d'autres outils.Évidemment, de telles 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 répertorie au moins les alternatives afin que vous puissiez les essayer par vous-même.

Si le fichier est un .dll, vous pouvez utiliser le Liste de tâches application en ligne de commande pour voir qui l'a ouvert :

TaskList /M nameof.dll

Si vous cliquez avec le bouton droit sur l'icône « Ordinateur » (ou « Poste de travail ») et sélectionnez « Gérer » dans le menu contextuel, cela vous amènera à la console de gestion de l'ordinateur.

Là, sous Outils système\Dossiers partagés, vous trouverez « Fichiers ouverts ».C'est probablement proche de ce que vous souhaitez, mais si le fichier se trouve sur un partage réseau, vous devrez faire la même chose sur le serveur sur lequel réside le fichier.

Il existe un programme "OpenFiles", qui semble faire partie de Windows 7.On dirait qu'il peut faire ce que vous voulez.Il peut énumérer les fichiers ouverts par les utilisateurs distants (via le partage de fichiers) et, après avoir appelé "OpenFiles / local ON" et un redémarrage du système, il devrait être en mesure d'afficher des fichiers ouverts localement.Ce dernier aurait des pénalités de performance.

Utilisez Process Explorer pour trouver l’ID du processus.Utilisez ensuite Poignée pour savoir quels fichiers sont ouverts.

Par exemple, poignée -p

J'aime cette approche car vous utilisez les utilitaires de Microsoft lui-même.

Dans OpenFilesView, sous le menu Options, il y a un élément de menu nommé "Afficher les fichiers réseau".Peut-être qu'une fois cette option activée, l'utilitaire susmentionné est d'une certaine utilité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top