Soyez très prudent avec la fermeture des handles ; c'est encore plus dangereux que vous ne le pensez, à cause du recyclage des handles - si vous fermez le handle du fichier, et que le programme ouvre quelque chose d'autre, le handle du fichier original que vous avez fermé peut être réutilisé pour ce "quelque chose d'autre". Et maintenant, devinez ce qui se passe si le programme continue, en pensant qu'il travaille sur le fichier (dont vous avez fermé l'identifiant), alors qu'en fait cet identifiant pointe maintenant vers autre chose.
voir Le message de Raymond Chen sur ce sujet
Supposons qu'un service d'indexation de recherche ait un fichier ouvert pour l'indexation mais qu'il soit temporairement bloqué. mais qu'il est resté temporairement bloqué et que vous voulez supprimer le fichier. (imprudemment) forcer la fermeture de la poignée. Le service d'indexation de recherche ouvre son afin d'enregistrer quelques informations, et le handle du fichier fichier supprimé est recyclé comme handle du fichier journal. L'opération de blocage l'opération bloquée se termine enfin, et le service d'indexation de recherche peut enfin fermer l'identifiant qu'il avait ouvert, mais il finit par fermer involontairement fermer l'identifiant du fichier journal.
Le service d'index de recherche ouvre un autre fichier, disons un fichier de configuration pour l'écriture afin qu'il puisse mettre à jour certains état persistant. L'identifiant du fichier d'enregistrement est recyclé en tant que pour le fichier de configuration. Le service d'index de recherche veut veut enregistrer des informations, il écrit donc dans son fichier journal. Malheureusement, le fichier journal a été fermé et l'identifiant a été réutilisé pour son fichier de configuration. de configuration. L'information enregistrée va dans le fichier de configuration, le corrompant.
Pendant ce temps, un autre handle que vous avez forcé à fermer a été réutilisé comme un handle mutex, qui est utilisé pour aider à empêcher les données d'être corrompues. Lorsque le gestionnaire de fichier d'origine est fermé, le gestionnaire de mutex est fermé et les protections contre la corruption des données sont perdues. Plus le site plus le service fonctionne, plus ses index sont corrompus. Finalement, quelqu'un remarque que l'index renvoie des résultats incorrects. Et quand vous essayez de redémarrer le service, il échoue parce que ses fichiers de configuration ont été corrompus.
Vous signalez le problème à la société qui fabrique le service d'index de recherche et ils déterminent que l'index a été corrompu, que le fichier journal a mystérieusement cessé d'être et le fichier de configuration a été écrasé par des déchets. Un certain un pauvre technicien se voit confier la tâche désespérée de comprendre pourquoi le service corrompt ses index et ses fichiers de configuration, sans savoir que le service que la source de la corruption est que vous avez forcé la fermeture d'un handle.
21 votes
On pourrait penser qu'après tout ce temps, les gars de Windows nous donneraient un moyen de faire cela facilement à partir de l'Explorer. Je me demande pourquoi cela n'a pas été fait ?
12 votes
Je trouve qu'Explorer est très souvent le processus problématique qui retient un fichier sans raison évidente.
0 votes
Je sais que cela ne vous aidera pas beaucoup, mais je crois me souvenir que c'était une fonctionnalité prévue pour la prochaine version de Windows après vista et 2008 server. ou peut-être que c'est un truc de WinFS. je ne sais plus où j'ai lu ça...
0 votes
Voir ma réponse sur superutilisateur ici En résumé OpenedFilesView fonctionne toujours en 2019
2 votes
2021... Le problème existe toujours sous Windows 10. J'ai trouvé cette question au hasard d'une recherche sans rapport. Quand je tombe sur ce problème avec quelque chose qui retient le fichier, c'est souvent
explorer.exe
comme Eddie l'a suggéré, je tueexplorer.exe
dans le Gestionnaire des tâches, ce qui résout le problème et désactive presque toutes les interfaces utilisateur. Maintenant, vous devez redémarrer votreexplorer.exe
j'ai juste appuyé sur Win+R et tapéexplorer.exe
et appuyez sur la touche entrée, cela démarreexplorer.exe
et la vie est à nouveau belle :).0 votes
Mode difficile : Sans installer quoi que ce soit (pas de Sysinternals) et sans accès admin (pas de resmon), je ne pense pas que ce soit possible - pour le clochard moyen qui n'a pas les droits admin et n'est pas autorisé à installer des utilitaires, vous allez probablement devoir cracher les 5 minutes de votre journée de travail et redémarrer.