Una cosa que me molesta sin fin sobre Windows es el antiguo error de violación de uso compartido . A menudo no puedes 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?
windows
file-sharing
cletus
fuente
fuente
Respuestas:
He tenido éxito con Sysinternals Process Explorer . Con esto, puede buscar para encontrar qué procesos tienen abierto un archivo, y puede usarlo para cerrar los identificadores si lo desea. Por supuesto, es más seguro cerrar todo el proceso. Ejercer precaución y juicio.
Para buscar un archivo específico, use la opción de menú
Find->Find Handle or DLL...
Escriba en 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 Handle , que enumera los controladores abiertos. Algunos ejemplos sobre cómo usarlo:
c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\
- encuentre todos los archivos abiertos desde la unidad E:c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question
fuente
Puede usar el Monitor de recursos para esto que viene integrado con Windows 7, 8 y 10.
Cuando haya encontrado el identificador, puede identificar el proceso mirando la columna Imagen y / o PID.
Luego puede intentar cerrar la aplicación como lo haría normalmente, o, si eso no es posible, simplemente haga clic derecho en el controlador y elimine el proceso directamente desde allí. ¡Pan comido!
Copiado de mi respuesta original: https://superuser.com/a/643312/62
fuente
resmon
directamente desde cmdPrueba el comando openfiles .
fuente
openfiles /local on
y reiniciando. Esto hace que esta característica no sea muy útil.Solo tenga mucho cuidado al cerrar las manijas; es aún más peligroso de lo que parece, debido al reciclaje del identificador: si cierra el identificador de archivo y el programa abre otra cosa, el identificador de archivo original que cerró puede reutilizarse para esa "otra cosa". Y ahora adivine qué sucede si el programa continúa, pensando que está trabajando en el archivo (cuyo identificador cerró), cuando en realidad ese identificador de archivo ahora apunta a otra cosa.
ver la publicación de Raymond Chen sobre este tema
fuente
He usado Handle con éxito para encontrar tales procesos en el pasado.
fuente
Lockhunter ( http://lockhunter.com/ ) funciona en sistemas de 32 y 64 bits.
fuente
¡Who Lock Me funciona bien y mantiene a la gente divertida con el nombre!
fuente
Solo para aclarar, es más probable que esto sea el resultado de un mal comportamiento de las aplicaciones de terceros que no utilizan la llamada a la API CreateFile correctamente que cualquier cosa en el propio Windows. Quizás es una consecuencia del diseño de CreateFile, pero hecho está hecho y no podemos volver atrás.
Básicamente, al abrir un archivo en un programa de Windows, tiene la opción de especificar un indicador que permita el acceso compartido. Si no especifica la bandera, el programa toma acceso exclusivo al archivo.
Ahora, si Explorer parece ser el culpable aquí, puede ser el caso que eso sea solo superficialmente, y que el verdadero culpable es 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 entusiasta al hacerlo, o eso no se limpia correctamente después de sí mismo. Symantec AV es algo que he visto hacer esto antes, y no me sorprendería que otros programas AV también tuvieran la culpa. Los complementos de control de fuente también pueden tener la culpa.
Entonces, no es realmente una respuesta, pero solo algunos consejos para no siempre 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 ha compartido el acceso por defecto).
fuente
En un servidor remoto, cuando está verificando un recurso compartido de red, algo tan simple como la consola de Computer Management puede mostrar esta información y cerrar el archivo.
fuente
Apropos Explorer mantiene abierto un archivo: "Cuando esto sucede en un archivo que necesita eliminar, tiene la opción de forzar el control cerrado o reiniciar".
Puedes terminar con Explorer.
Si esto es algo único (Explorer normalmente no mantiene este archivo abierto), entonces supongo que cerrar la sesión y volver a iniciarla hará el truco.
De lo contrario, elimine el proceso del Explorador de escritorio y haga lo que quiera mientras no está. Primero inicie una copia de cmd.exe (necesita una interfaz de usuario para realizar la limpieza prevista). Asegúrese de que no se estén ejecutando exploradores que no sean de escritorio. Luego elimine el último Explorer con, por ejemplo, el Administrador de tareas. Haz lo que quieras en el símbolo del sistema. Finalmente, ejecute Explorer desde el símbolo del sistema, y se convertirá en el escritorio.
Supongo que puede haber algo desagradable residual si algunos programas de la bandeja del sistema no pueden lidiar con el reinicio del shell.
fuente
Los archivos pueden bloquearse mediante procesos locales (el desbloqueador es la herramienta que se debe usar) y mediante el acceso a archivos que se ingresa a través de recursos compartidos.
Hay una función incorporada en Windows que le muestra qué archivos en la computadora local están abiertos / bloqueados por una computadora remota (que tiene el archivo abierto a través de un recurso compartido de archivos):
Allí incluso puede cerrar el archivo con fuerza.
fuente
También está la Vista de archivos abiertos de NirSoft .
fuente
Con Process Hacker puedes identificar qué procesos contienen tus archivos fácilmente:
fuente
Las respuestas votadas anteriormente cubren situaciones en las que un proceso del programa mantiene abierto el identificador de archivo, que (afortunadamente) es la mayor parte del tiempo; sin embargo, en algunos casos (como está ocurriendo en este sistema en este momento), el sistema mismo posee un identificador de archivo abierto.
Puede identificar esta situación siguiendo las instrucciones para encontrar el proceso de retención del identificador de archivo con el explorador de procesos anterior, y observando que el nombre del proceso aparece como 'sistema', o siguiendo las instrucciones usando el monitor de recursos y observando que no se muestra ninguna imagen tener un identificador de archivo abierto en su archivo de interés (aunque obviamente algo hace ya que no puede editar / eliminar, etc. el archivo).
Si eso sucede, su opción (hasta donde yo sé) es reiniciar u olvidarse de hacer algo con ese archivo.
fuente
El blog de Jeremy Zawodny me puso en contacto con el Administrador de tareas ampliado hace un tiempo, y también es genial para rastrear más información sobre los procesos. +1 para el Explorador de procesos como el anterior también, especialmente para eliminar procesos que el Administrador de tareas estándar no finalizará.
fuente
Hay una herramienta FILEMON y muestra los archivos abiertos y las manijas. Es difícil mantenerse al día con su pantalla si lo ves en vivo, lo hace rápidamente. Pero puede evitar que se muestre en vivo y puede ver todos los archivos abiertos / actividad de escritura. Ahora propiedad de Microsoft pero originalmente de Sysinternals
fuente