L'un de mes outils préférés pour Linux est lsof - un vrai couteau suisse!
Aujourd'hui, je me suis demandé quels programmes sur un système WinXP avaient un fichier spécifique ouvert. Existe-t-il une utilité équivalente à lsof? De plus, le fichier en question se trouvait sur un partage réseau, donc je ne suis pas sûr que cela complique les choses.
windows
linux
command-line
filesystems
Daniel Fone
la source
la source
L'équivalent de
lsof -p pid
est la sortie combinée du handle sysinternals et des listdlls, ievous pouvez trouver pid avec sysinternals
pslist
.la source
Essayez Handle . Filemon & Regmon sont également parfaits pour essayer de comprendre ce que le programme duce foo fait à votre système.
la source
Un équivalent de lsof pourrait être combiné en sortie du handle de Sysinternals et des listdlls , c'est-à-dire:
Malheureusement, vous devez "exécuter en tant qu'administrateur" pour pouvoir les utiliser.
De plus, les listdll et handle ne produisent pas de forme continue de type table, donc le filtrage du nom de fichier masquerait le PID.
findstr /c:pid: /c:<filename>
devrait vous rapprocher des deux utilitaires, cependantIci, nous pouvons voir que gvim.exe est celui qui a ouvert ce fichier.
la source
Essayez Unlocker .
Le site Unlocker a un graphique astucieux (faites défiler vers le bas après avoir suivi le lien) qui montre une comparaison avec d'autres outils. De toute évidence, de telles comparaisons sont généralement biaisées car elles sont généralement écrites 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.
la source
Si le fichier est un .dll, vous pouvez utiliser l' application de ligne de commande TaskList pour voir qui l'a ouvert:
la source
Il existe un programme "OpenFiles", qui semble faire partie de Windows 7. Semble qu'il peut faire ce que vous voulez. Il peut lister les fichiers ouverts par des 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 capable d'afficher les fichiers ouverts localement. Ce dernier aurait des pénalités de performance.
la source
Si vous cliquez avec le bouton droit de la souris 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à-dedans, sous Outils système \ Dossiers partagés, vous trouverez «Fichiers ouverts». C'est probablement proche de ce que vous voulez, mais si le fichier est sur un partage réseau, vous devrez faire la même chose sur le serveur sur lequel le fichier réside.
la source
Utilisez Process Explorer pour trouver l'ID de processus. Ensuite, utilisez Handle pour savoir quels fichiers sont ouverts.
Par exemple, poignée -p
J'aime cette approche parce que vous utilisez des utilitaires de Microsoft lui-même.
la source
Dans OpenedFilesView , dans le menu Options, il y a un élément de menu nommé "Afficher les fichiers réseau". Peut-être qu'avec cela activé, l'utilitaire susmentionné est d'une certaine utilité.
la source