Pregunta ¿Cómo encuentra qué proceso mantiene abierto un archivo en Windows?


Una cosa que me molesta sin fin acerca de Windows es la vieja compartir violación error. A menudo no se puede identificar lo que lo mantiene abierto. Por lo general, es solo un editor o explorador que apunta a un directorio relevante, pero a veces he tenido que recurrir a reiniciar mi máquina.

¿Alguna sugerencia sobre cómo encontrar al culpable?


478
2018-05-01 00:47


origen


Usted pensaría que después de todo este tiempo, los chicos de Windows nos darían una forma de hacerlo fácilmente desde el Explorador. Me pregunto por qué esto no ha sucedido. - Cawflands
Encuentro que Explorer es muy a menudo el proceso problemático que se aferra a un archivo sin ninguna razón obvia. - Eddie
Sé que esto no te ayuda mucho, pero creo que recordé que esta era una característica planificada del próximo lanzamiento de Windows, después de Vista y el servidor 2008. o tal vez es una cosa de WinFS. No estoy seguro de dónde leí eso ... - Kip


Respuestas:


He tenido éxito con Sysinternals  Explorador de procesos. Con esto, puede buscar para encontrar qué procesos tienen un archivo abierto, y puede usarlo para cerrar los identificadores si lo desea. Por supuesto, es más seguro cerrar todo el proceso. Ten cuidado y juicio.

Para encontrar un archivo específico, use la opción de menú Find->Find Handle or DLL...  Escriba parte de la ruta al archivo. La lista de procesos aparecerá a continuación.

Si prefiere la línea de comandos, la suite Sysinternals incluye la herramienta de línea de comandos Encargarse de, que enumera las manijas abiertas. Algunos ejemplos de cómo usarlo:

  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\ - Encuentra todos los archivos abiertos desde la unidad E:
  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question

417
2018-05-01 01:03



Puede cerrar el asa, pero tenga en cuenta que está retirando la alfombra de debajo de una aplicación, los resultados serán, en el mejor de los casos, impredecibles. - WaldenL
@Walden: Absolutamente. YMMV. Con WinXP, muchas veces hice que Explorer abriera una manija sin una razón obvia y me negaba a cerrarla. Cuando esto sucede en un archivo que necesita eliminar, tiene la opción de forzar el cierre del controlador o reiniciar. Hasta ahora, habiendo hecho esto docenas de veces, no he sufrido ningún efecto negativo. Al igual que con cualquier herramienta avanzada, utilice con precaución y criterio. - Eddie
Cerrar los manejadores puede hacer que la aplicación reutilice el manejador de otro archivo, lo que puede causar daños. Consulte la respuesta de Jeff a continuación: serverfault.com/a/15695/79266 ... mucho más seguro matar la aplicación que mantiene el archivo abierto, si no desea reiniciar. - RichVel
Para el explorador, por cierto, mantenga presionada la tecla ctrl-shift y haga clic con el botón derecho en un área en blanco del menú de inicio, y obtendrá "Exit Explorer" - ps, no es exactamente la respuesta de Jeff ... - Mark Sowul
No ayuda para el archivo no ejecutivo i.g. un archivo de texto. Necesito saber quién está escribiendo en un archivo de registro. ¿Alguna idea? - Xaqron


Para Windows 7, Windows 8 y Windows 10 puede usar la función integrada Monitor de recursos para esto.

  1. Abierto Monitor de recursos, que se puede encontrar
    • Buscando resmon.exe en el menú de inicio, o
    • Como un botón en el Actuación pestaña en tu Administrador de tareas
  2. Seleccione la casilla de verificación junto a la Imagen encabezando el Procesos sección (los procesos marcados mostrarán sus identificadores de archivo a continuación).
  3. Utilice el campo de búsqueda en el Asas asociadas sección sobre el UPC lengüeta
    • Señalado por la flecha azul en la captura de pantalla de abajo

En caso de que no sea obvio, cuando haya encontrado el identificador, puede identificar el proceso mirando la columna Imagen y / o PID.

Luego puede cerrar la aplicación si puede hacerlo, o simplemente haga clic con el botón derecho en la fila y tendrá la opción de eliminar el proceso allí mismo. ¡Pan comido!

Resource Monitor screenshot

Copiado de mi respuesta original: https://superuser.com/a/643312/62


147
2017-09-10 11:48



Vale la pena señalar que puede ser difícil encontrar este programa en Windows 8: una búsqueda de 'resmon.exe' debería ubicarlo. - Kylotan
@Kylotan, deja de perder el tiempo buscando. Solo corre resmon  directamente desde cmd - Pacerier
@Pacerier: Niza. No estoy acostumbrado a que las cosas estén en la ruta de Windows. - Kylotan
Esto me queda mejor que 'Manejar | Las alternativas FindStr 'y' Unlocker ', aunque también son efectivas - Marcus Vinicius Pompeu
Sigue siendo válido en Windows 10 y se puede encontrar usando el botón "Abrir Monitor de recursos" dentro del Administrador de tareas -> pestaña Rendimiento. - Norman Breau


Prueba el abrir archivos mando.


81
2018-05-01 01:18



+1 para un comando incorporado, aunque personalmente uso ProcessExplorer la mayor parte del tiempo. - RBerteig
De mucha ayuda. - marko
ERROR: el sistema de destino debe estar ejecutando un sistema operativo de 32 bits. - Bozojoe
no funciona para 64 OS! - Jarrod Roberson
Esto parece funcionar para Windows 2012R2 64bit, pero debe habilitar el servicio de "seguimiento local abierto" ejecutando openfiles /local on y reiniciando. Esto hace que esta característica no sea muy útil. - Guss


Solo ten mucho cuidado al cerrar las manijas; es incluso más peligroso de lo que pensaría, debido al reciclaje del asa: si cierra el asa del archivo y el programa abre algo más, el asa del archivo original que cerró puede reutilizarse para esa "otra cosa". Y ahora adivine qué sucede si el programa continúa, pensando que está funcionando en el archivo (cuyo identificador cerró), cuando en realidad ese identificador de archivo ahora apunta a otra cosa.

ver El post de Raymond Chen sobre este tema

Supongamos que un servicio de índice de búsqueda tiene un archivo abierto para indexación pero tiene   ha quedado atascado temporalmente y desea eliminar el archivo, por lo que   (imprudentemente) forzar el mango cerrado. El servicio de índice de búsqueda abre su   archivo de registro con el fin de registrar alguna información, y el identificador a la   El archivo eliminado se recicla como el identificador del archivo de registro. El atascado   la operación finalmente se completa, y el servicio de índice de búsqueda finalmente obtiene   Alrededor de cerrar esa manija que tenía abierta, pero termina sin saberlo.   cerrando el identificador de archivo de registro.

El servicio de índice de búsqueda abre otro.   archivo, digamos un archivo de configuración para escribir para que pueda actualizar algunos   estado persistente El identificador del archivo de registro se recicla como   Manejar para el archivo de configuración. El servicio de índice de búsqueda quiere   registrar alguna información, por lo que escribe en su archivo de registro. Desafortunadamente, el   el identificador del archivo de registro se cerró y el identificador se reutilizó para su configuración   expediente. La información registrada entra en el archivo de configuración,   corrompiéndolo.

Mientras tanto, se reutilizó otro mango que forzaste cerrado.   como un identificador de exclusión mutua, que se utiliza para ayudar a evitar que los datos sean   corrompido Cuando el identificador de archivo original está cerrado, el identificador de exclusión mutua   se cierra y se pierden las protecciones contra la corrupción de datos. los   Cuanto más tiempo se ejecuta el servicio, más corruptos se vuelven sus índices.   Finalmente, alguien se da cuenta de que el índice está devolviendo resultados incorrectos.   Y cuando intenta reiniciar el servicio, falla porque su   Los archivos de configuración han sido dañados.

Usted informa el problema a la   empresa que realiza el servicio de búsqueda de índice y determinan que   el índice se ha corrompido, el archivo de registro se ha detenido misteriosamente   logging, y el archivo de configuración fue sobrescrito con basura. Algunos   al pobre técnico se le asigna la tarea desesperada de averiguar por qué el   servicio corrompe sus índices y archivos de configuración, sin saber que el   La fuente de la corrupción es que forzaste un mango cerrado.


76
2018-05-30 17:04



advertencia importante, esto debería ir más cerca de la parte superior: un reinicio es probablemente mejor que un archivo corrompido en silencio. - RichVel
+1 ¡Esto ciertamente me hará pensar dos veces antes de forzar los mangos cerrados! Me parece extraño que Windows reutilice inmediatamente el número de un identificador cerrado, en lugar de continuar incrementando el número y solo envolviéndolo cuando sea necesario. Eso al menos reduciría enormemente las posibilidades de que este problema ocurra. - EM0
@RichVel Terminar el proceso culpable es probablemente mejor que un reinicio completo. - Dmitry Grigoryev
@DmitryGrigoryev - buen punto, y de hecho ya mencioné eso aquí - RichVel
Esta es una advertencia muy importante, pero no responde la pregunta ¿Cómo encuentra qué proceso mantiene abierto un archivo en Windows? - Ploni


he usado Encargarse de con éxito para encontrar tales procesos en el pasado.


27
2018-05-01 00:52



Yo uso esta herramienta todo el tiempo. Si no puedo expulsar una unidad USB, simplemente escribo "manejar H:" (o cualquiera que sea la letra de la unidad). Lo mejor de todo es que puedes usarlo para forzar cierres cercanos. - Chris Thompson


Quien me encierra ¡Funciona bien y mantiene a la gente entretenida con el nombre!


7
2018-05-06 00:43



No funciona en Windows 8 y 10 bits de 64 bits. - rustyx


Solo para aclarar, es más probable que esto sea el resultado de un mal comportamiento de las aplicaciones de terceros que no utilizan el Crea un archivo La API se llama correctamente de lo que es para ser cualquier cosa en Windows. Tal vez sea una consecuencia del diseño de CreateFile, pero ya está hecho y no podemos volver.

Básicamente, al abrir un archivo en un programa de Windows, tiene la opción de especificar una bandera que permita el acceso compartido. Si no especifica la bandera, el programa tiene acceso exclusivo al archivo.

Ahora, si Explorer parece ser el culpable aquí, puede darse el caso de que solo esté en la superficie, y que el verdadero culpable sea algo que instala una extensión de shell que abre todos los archivos en una carpeta para sus propios fines, pero también lo es. Gung-ho al hacerlo, o eso no se limpia adecuadamente después de sí mismo. Symantec AV es algo que he visto hacer esto antes, y no me sorprendería si otros programas AV también fueran los culpables. Los complementos de control de fuente también pueden estar en falta.

Así que no es realmente una respuesta, pero solo un consejo para no culpar a Windows por lo que puede ser un programa de terceros mal escrito (algo que también puede suceder en cualquier otro sistema operativo que tenga bloqueo de archivos implícito, pero cualquier sistema operativo basado en Unix tiene acceso compartido por defecto).


7
2017-10-12 14:27



No culparé a una aplicación de terceros por el hecho de que mi explorador de Windows siempre bloquea los archivos Thumbs.db en su directorio de trabajo, pero no siempre lo desbloquea cuando cambio el directorio de trabajo. Al menos se desbloquean cuando cierro la ventana, no tengo que matar a TODOS los exploradores ... - Alexander
@Darth, ¿eres un comercializador de Microsoft? - Pacerier


En un servidor remoto, cuando está verificando un recurso compartido de red, algo tan simple como la consola de Administración de Computadoras puede mostrar esta información y cerrar el archivo.


6
2018-05-01 01:01



Exactamente, ¿por qué hay respuestas tan complicadas? - Rohit Gupta