Una de mis herramientas favoritas para Linux es lsof , ¡una verdadera navaja suiza!
Hoy me encontré preguntándome qué programas en un sistema WinXP tenían un archivo específico abierto. ¿Existe alguna utilidad equivalente a lsof? Además, el archivo en cuestión estaba en un recurso compartido de red, por lo que no estoy seguro de si eso complica las cosas.
windows
linux
command-line
filesystems
Daniel Fone
fuente
fuente
El equivalente de
lsof -p pid
es la salida combinada de sysinternals handle y listdlls, es decirpuede averiguar pid con sysinternals
pslist
.fuente
Prueba Handle . Filemon y Regmon también son excelentes para tratar de averiguar qué le está haciendo el programa duce foo a su sistema.
fuente
Un equivalente de lsof podría combinarse con la salida del identificador y listdlls de Sysinternals , es decir:
Desafortunadamente, debe "ejecutar como administrador" para poder utilizarlos.
Además, listdlls y handle no producen una forma de tabla continua, por lo que filtrar el nombre de archivo ocultaría el PID.
findstr /c:pid: /c:<filename>
debería acercarlo mucho a ambas utilidades, aunqueAquí podemos ver que gvim.exe es el que tiene este archivo abierto.
fuente
Prueba Unlocker .
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.
fuente
Si el archivo es un .dll, entonces puede usar la aplicación de línea de comando TaskList para ver quién lo abrió:
fuente
Hay un programa "OpenFiles", parece ser parte de Windows 7. Parece que puede hacer lo que quiera. Puede enumerar archivos abiertos por usuarios remotos (a través del recurso compartido de archivos) y, después de llamar a "openfiles / Local on" y reiniciar el sistema, debería poder mostrar archivos abiertos localmente. Se dice que este último tiene sanciones de rendimiento.
fuente
Si hace clic con el botón derecho en el icono de "Computadora" (o "Mi PC") y selecciona "Administrar" en el menú emergente, lo llevará a la consola de Administración de la computadora.
Allí, en Herramientas del sistema \ Carpetas compartidas, encontrará "Archivos abiertos". Probablemente 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 reside el archivo.
fuente
Utilice Process Explorer para encontrar la identificación del proceso. Luego use Handle para averiguar qué archivos están abiertos.
Por ejemplo, manejar -p
Me gusta este enfoque porque está utilizando utilidades de Microsoft.
fuente
En OpenedFilesView , 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.
fuente