2009-02-24 33 views
110

Quiero saber quién está bloqueando un archivo en un recurso compartido de red.Averigüe quién está bloqueando un archivo en un recurso compartido de red

Este es el problema: el recurso compartido de red está en un NAS, por lo que no puedo iniciar sesión. Necesito una herramienta para averiguar de forma remota quién está bloqueando el archivo. No es práctico reiniciar el NAS cada vez, porque hay varios usuarios.

Handle.exe, Process Explorer y PsFile parece estar limitado a los archivos en la máquina local, por lo que no funcionan para mí.

Respuesta

141

Sólo en caso de alguien que busca una solución a esto por un sistema basado en Windows o NAS:

Hay es una función incorporada en Windows que muestra qué archivos en el equipo local se abierta/cerrada por el equipo remoto (que tiene el archivo abierto a través de un recurso compartido de archivos):

  • Seleccione "Manejo de ordenador" (Open " do Gestión omputer ")
  • clic 'carpetas compartidas'
  • elija 'Abrir archivos'

Hay incluso se puede cerrar el archivo con fuerza.

+10

Incluso puede usar Acción -> Conectar a otra computadora al archivo en un NAS, ¡e incluso funciona con nuestra NAT basada en Linux! ¿Por qué no intenté esto antes? – olorin

+17

En Windows 2008 R2, vaya a Administrador del servidor> Funciones> Servicios de archivos> Compartir y Administración de almacenamiento> haga clic con el botón secundario en SaSM> Administrar archivos abiertos. –

+0

Simplemente abra una consola MMC y agregue un complemento de carpetas compartidas. Puede conectarse a sistemas remotos. – nizx

3

Las sesiones son manejadas por el dispositivo NAS. Lo que está pidiendo depende del dispositivo NAS y nada que ver con Windows. Debería echarle un vistazo al firmware de su NAS para ver qué soporte tiene. La única otra forma es olfatear los paquetes y resolverlos tú mismo.

+0

Bueno, esta es una buena respuesta con sentido común. Lamentablemente, este NAS no ofrece esta funcionalidad. – olorin

2

parece que tiene el mismo problema que traté de resolver here. en mi caso, es un servidor de archivos Linux (ejecutando samba, por supuesto), así que puedo iniciar sesión y ver qué proceso está bloqueando el archivo; desafortunadamente, no he encontrado cómo cerrarlo sin matar a la sesión responsable. AFAICT, el cliente de Windows 'piensa' que está cerrado; pero no se molestó en contarle al servidor de archivos.

+0

Suena probable: hasta donde sé, nuestro NAS usó una distribución personalizada de Linux. – olorin

5

Respuesta parcial: Con Process Explorer, puede ver los identificadores en un recurso compartido de red abierto desde su máquina.

Utilice el menú "Encuentra Handle" y entonces se puede escribir una ruta como esta

\Device\LanmanRedirector\server\share\ 
12

Si simplemente es un caso de conocer/ver quién está en un archivo en un momento determinado (y si está usando Windows) simplemente seleccione el archivo 'ver' como 'detalles', es decir, en lugar de Miniaturas, mosaicos o íconos, etc. Una vez que esté en la vista de 'detalles', de manera predeterminada se le mostrará; Nombre del archivo - - Tamaño - Tipo y - Fecha de modificación

Todo lo que necesita hacer ahora es botón derecho del ratón en cualquier lugar a lo largo de dicho barra de herramientas (nombre de archivo, tamaño, tipo, etc ...) y que será dada una lista de otras opciones que la barra de herramientas puede mostrar.

Seleccione 'Propietario' y una nueva columna mostrará el nombre de usuario de la persona que utiliza el archivo o quién lo creó originalmente si nadie más lo está usando.

Esto puede ser particularmente útil cuando se utiliza una base de datos compartida de MS Access.

+0

Super old, y un truco que ya sabía pero que había olvidado. Pero esto fue una manera ingeniosa, simple, rápida y EXACTAMENTE lo que estaba esperando. – user2140261

+2

En mi caso no funcionó. Agregué la columna y me veo como el creador del archivo compartido en el recurso remoto, pero ya estaba bloqueado por un compañero de trabajo. –

+3

Esto realmente solo funciona bien cuando el programa en el que están crea un archivo de bloqueo (como MS Access) que será propiedad de quien lo esté usando y no del creador original del archivo – PsychoData

44

En los servidores de Windows 2008 R2 tiene dos maneras de ver qué archivos están abiertos y cerrar esas conexiones.

Via almacenamiento y recursos compartidos

Administrador del servidor> Roles> Servicios de archivo> Compartir y Administración de almacenamiento> clic con el botón derecho en SASM> Administrar Abrir archivo

Via Openfiles

CMD > Openfiles.exe/query/s SERVERNAME

Ver http://technet.microsoft.com/en-us/library/bb490961.aspx.

+2

Gran respuesta. No sabía sobre Openfiles; funciona mucho mejor que tener que usar psexec o herramientas remotas similares. – twasbrillig

+0

@twasbrillig bien, pero si es un NAS, y no basado en Windows! C: \> Openfiles.exe/query/s 10.0.0.1 ERROR: El sistema Target debe ejecutar Windows XP o superior. – barlop

+0

Vale la pena notar que los nodos "Roles", etc. se expanden con retraso. – SerG

17

PsFile funciona en máquinas remotas. Si mi cuenta de usuario ya tiene acceso al recurso compartido remoto, sólo puede entrar en:

psfile \\remote-share 

(sustituir "remoto compartido" con el nombre de su servidor de archivos) y aparecerá una lista de todos los documentos abiertos en ese recurso compartido, junto con quién lo tiene abierto, y la ID del archivo si quiero forzar el archivo cerrado. Para mí, esta es una lista muy larga, pero puede ser reducido mediante la introducción de parte de una ruta:

psfile \\remote-share I:\\Human_Resources 

Esto es un poco complicado, ya que en mi caso este recurso compartido remoto se monta como Z: en mi máquina local, pero psfile identifica las rutas tal como están definidas en el servidor de archivos remoto, que en mi caso es I: (el tuyo será diferente). Solo tuve que revisar los resultados de mi primer archivo psfile para ver algunas de las rutas que regresó y luego ejecutarlo de nuevo con una ruta parcial para reducir los resultados.

Opcionalmente, PsFile le permitirá especificar las credenciales para el recurso compartido remoto si necesita proporcionarlas para el acceso.

Por último, un consejo poco conocido: si alguien hace clic en un archivo en el Explorador de Windows y corta o copia el archivo con la intención de pegarlo en otro lugar, esa acción también bloquea el archivo.

+0

¿Se supone que hay dos \ s? – PsychoData

+0

@PsychoData, ha pasado un tiempo desde que publiqué esto. Espero que lo que publique sea correcto. La \\ antes de la parte de compartir a distancia se ve bien, pero el \\ en I: \\ Human_Resources se ve raro. Aún así, creo que tenía una razón para ello cuando publiqué. Inténtalo y me cuentas. – Baodad

+1

Guau, tenga un +1 por el último consejo. ;) Intentaba cambiar el nombre de una carpeta de red y, al parecer, todavía había algo de copia "en marcha" que había estado haciendo antes en otra máquina ... Y seleccionar un archivo para copiar fuera de esa carpeta me estaba haciendo el truco. – Inarion

Cuestiones relacionadas