Pregunta

Una de mis herramientas favoritas para Linux es lsof - ¡Una auténtica navaja suiza!

Hoy me pregunté qué programas en un sistema WinXP tenían abierto un archivo específico.¿Existe alguna utilidad equivalente a lsof?Además, el archivo en cuestión se encontraba en un recurso compartido de red, por lo que no estoy seguro si eso complica las cosas.

¿Fue útil?

Solución

Usar Explorador de procesos Desde Sysinternals Suite, la función Buscar identificador o DLL le permitirá buscar el proceso con ese archivo abierto.

Otros consejos

El equivalente de lsof -p pid es la salida combinada de sysinternals handle y listdlls, es decir

handle -p pid
listdlls -p pid

puedes descubrir pid con sysinternals pslist.

Intentar Manejar. Filemón & regmón También son excelentes para intentar descubrir qué le está haciendo el programa duce foo a su sistema.

Un equivalente de lsof podría ser la producción combinada de Sysinternals manejar y listasdll, es decir.:

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

Lamentablemente, tienes que "ejecutarlo como administrador" para poder utilizarlos.

También listasdll y manejar no produzca una forma continua similar a una tabla, por lo que el filtrado del nombre de archivo ocultaría el PID. findstr /c:pid: /c:<filename> Sin embargo, debería acercarte mucho a ambas utilidades.

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

Aquí podemos ver que gvim.exe es el que tiene este archivo abierto.

Intentar Desbloqueador.

El sitio Unlocker tiene un gráfico ingenioso (desplácese hacia abajo después de seguir el enlace) que muestra una comparación con otras herramientas.Obviamente, estas comparaciones suelen estar sesgadas, ya que normalmente las escribe el autor de la herramienta, pero el cuadro al menos enumera las alternativas para que pueda probarlas usted mismo.

Si el archivo es .dll entonces puedes usar el Lista de tareas aplicación de línea de comando para ver quién lo abrió:

TaskList /M nameof.dll

Si hace clic derecho en el icono "Computadora" (o "Mi PC") y selecciona "Administrar" en el menú emergente, lo llevará a la consola de administración de computadoras.

Allí, en Herramientas del sistema\Carpetas compartidas, encontrará "Archivos abiertos".Probablemente esto se acerque a lo que desea, pero si el archivo está en un recurso compartido de red, deberá hacer lo mismo en el servidor en el que se encuentra el archivo.

Hay un programa "OpenFiles", parece ser parte de Windows 7.Parece que puede hacer lo que quieras.Puede enumerar archivos abiertos por usuarios remotos (a través de archivos compartidos) y, después de llamar a "OpenFiles /Local on" y un reinicio del sistema, debería poder mostrar archivos abiertos localmente.Se dice que este último tiene penalizaciones de rendimiento.

Utilice Process Explorer para encontrar la identificación del proceso.Entonces usa Manejar para saber qué archivos están abiertos.

Por ejemplo, manejar -p

Me gusta este enfoque porque estás utilizando utilidades del propio Microsoft.

En Vista de archivos abiertos, en el menú Opciones, hay un elemento de menú llamado "Mostrar archivos de red".Quizás con eso habilitado, la utilidad antes mencionada sea de alguna utilidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top