Découvrez quel processus verrouille un fichier ou un dossier dans Windows

717

Comment savoir quel processus verrouille un fichier ou un dossier sous Windows?

Par exemple, lorsque vous essayez de supprimer un dossier, Windows indique ceci:

L'action ne peut pas être terminée car le dossier est ouvert dans un autre programme.

Il se passe la même chose avec un fichier, mais comment puis-je savoir quel programme ou quelle application l’utilise actuellement et m’empêche de supprimer le fichier ou le dossier?

leeand00
la source
5
Voir cette question ServerFault .
John Fouhy
1
Votre fichier est une vidéo? Vous constaterez peut-être que l’explorateur Windows lui-même "utilise" le fichier ...
DisgruntledGoat
37
Comment est-ce une copie? Il demande spécifiquement comment savoir quel processus verrouille un fichier, pas comment supprimer un fichier verrouillé.
b1nary.atr0phy
8
Je ne peux pas ajouter ici de réponse plus simple et intégrée, car elle a été mal marquée comme une dupe. Je ne peux pas non plus l'ajouter à l'autre fil, car cela ne s'applique qu'à XP. Quoi qu’il en soit, pour les versions Windows avec Resource Monitor (tapez-le dans la barre de recherche), allez dans l’onglet CPU / Poignées associées, puis recherchez le fichier ou le dossier.
jontyc
J'ai appris que Windows 10 (et je suppose dès Windows 7) a un programme appelé Resource Monitor, qui vous permet de voir quels processus verrouillent un fichier ou un dossier: stackoverflow.com/a/24126882/470749
Ryan

Réponses:

66

Méthode PowerShell:

IF((Test-Path -Path $FileOrFolderPath) -eq $false) {
    Write-Warning "File or directory does not exist."       
}
Else {
    $LockingProcess = CMD /C "openfiles /query /fo table | find /I ""$FileOrFolderPath"""
    Write-Host $LockingProcess
}

La prise openfilesen charge des fichiers locaux doit être activée pour la commande, en exécutant openfiles /local onet en redémarrant.

Plus de détails Comment savoir quel processus verrouille un fichier ou un dossier dans Windows

franc
la source
12
La fonctionnalité doit d'abord être activée avecopenfiles /local on
mstrange le
6
Malheureusement, openfilessemble ne pas fonctionner sur un Windows 64 bits:ERROR: The target system must be running a 32 bit OS.
Thomas S.
1
Fonctionne sur Win10 64 pour moi
Michael
3
On dirait que vous pourriez essentiellement le réaliser en cmd pur avec openfiles /query /fo table | find /I "<path>"?
mwfearnley
1
... Si nous sommes prêts à redémarrer pour activer quelque chose, pourquoi ne pas redémarrer pour accéder au dossier? Je ne comprends pas comment le problème de l'OP résolu lorsque "redémarrer simplement votre machine" aurait été beaucoup plus facile et nécessitait encore un redémarrage.
Nic Hartley
692

Vous pouvez utiliser le moniteur de ressources pour cela, qui est intégré à Windows 7, 8 et 10.

  1. Open Resource Monitor , qui peut être trouvé
    • En recherchant Resource Monitor ou resmon.exe dans le menu Démarrer, ou
    • En tant que bouton dans l' onglet Performances de votre gestionnaire de tâches
  2. Aller sur l' onglet CPU
  3. Utilisez le champ de recherche dans la section Poignées associées
    • Voir la flèche bleue dans la capture d'écran ci-dessous

Une fois que vous avez trouvé le descripteur, vous pouvez identifier le processus en consultant la colonne Image et / ou PID.

Vous pouvez ensuite essayer de fermer l’application comme vous le feriez normalement ou, si ce n’est pas possible, cliquer avec le bouton droit de la souris sur la poignée et arrêter le processus directement à partir de là. Peasy facile!

Capture d'écran du moniteur de ressources

Svish
la source
18
Remarque: le moniteur de ressources n'a trouvé aucun descripteur associé dans mon cas, contrairement à Process Explorer (comme décrit ci-dessus ).
ComFreek
15
@ComFreek Eh bien, ProcessExplorer est peut-être plus puissant dans de nombreux cas, mais pour moi, Resource Monitor a toujours trouvé l'application qui verrouille le fichier sur lequel j'essaie de faire quelque chose. Je le préfère également à Process Explorer simplement parce que cela se trouve dans le système d'exploitation. Pas besoin d'un téléchargement supplémentaire ni d'un raccourci supplémentaire quelque part.
Svish
8
Je ne pouvais pas le trouver dans Process Explorer, mais il était facile de le localiser avec ces instructions dans Resource Manager. Merci.
Tatiana Racheva
6
@ComFreek Dans mon cas, il ne s'agissait que de l'autre cas: Process Explorer n'a pas trouvé le descripteur, contrairement à Resource Monitor.
Uwe Keim
9
+1 - cela fonctionne aussi très bien sur Windows 10
Matt Innes
390

Quelques options:

Microsoft / SysInternals Process Explorer - Cliquez sur Rechercher> Rechercher une poignée ou une DLL. Dans la zone de texte "Handle ou DLL substring:", tapez le chemin d'accès au fichier (par exemple, "C: \ chemin \ to \ fichier.txt") et cliquez sur "Rechercher". Tous les processus qui ont un handle ouvert sur ce fichier doivent être listés.

WhoLockMe - Extension de l'explorateur qui ajoute une option de menu contextuel

NB: WhoLockMe semble ne pas fonctionner avec Win 10 (au moins, j’ai été incapable de l’enregistrer avec l’une des versions 32 ou 64 bits de regsvr32.exe).

Shevek
la source
26
Sous Windows 7, si vous essayez de supprimer un fichier verrouillé, le message d'erreur vous indiquera quel processus l'a verrouillé
Garry English
10
REMARQUE: Unlocker installe Adware si vous ne faites pas attention. De leur site Web: "Fonction promotionnelle: barre d'outils Delta entièrement facultative."
Julian Knight
11
@GarryEnglish pour une raison quelconque, ce n'est pas toujours le cas. Je devais juste utiliser procexp pour me dire que notepad ++ avait un verrou sur un dossier. Windows 7 était incapable de me dire le coupable.
GuiSim
4
@ jpmc26 Non. WhoLockMe ne fonctionne pas sous Windows 7.
Ceving
3
@ GarryEnglish- Comme l'a déclaré GuiSim, ce n'est certainement pas toujours le cas, et d'après mon expérience, c'est rarement le cas.
dgo
196

Regardez Process Explorer ( procexp.exe).

Depuis son introduction:

Vous êtes-vous déjà demandé quel programme a un fichier ou un répertoire particulier ouvert? Maintenant vous pouvez le savoir.

Pour savoir quel processus utilise un fichier spécifique, procédez comme suit:

  1. Allez à Trouver , Trouver une poignée ou une DLL .. ou appuyez simplement sur Ctrl+ F.

    Entrez la description de l'image ici

  2. Entrez le nom du fichier et appuyez sur Rechercher .

    Entrez la description de l'image ici

  3. Process Explorer va lister tous les processus qui ont un handle sur le fichier ouvert. Cliquez sur une entrée pour focaliser le processus dans la fenêtre principale.

    Entrez la description de l'image ici

  4. Vous pouvez même éventuellement fermer la poignée manuellement via le volet inférieur ( Ctrl+ L):

    Entrez la description de l'image ici

Eroen
la source
6
Process Hacker peut également le faire.
Benoit
5
Comme le mentionne une autre réponse , Handle est un outil de ligne de commande de SysInternals qui accomplira également cette tâche.
heavyd
J'ai oublié un processus ouvert de cmd dans le dossier, explorateur de processus m'a aidé à le remarquer.
davejal
Note aux Googlers, la version actuelle de PE ne semble plus être compatible avec Close Handle
MickyD
Impossible de travailler sous Win10 64 bits 1709
K7AAY
30

LockHunter peut déverrouiller tous les gestionnaires susceptibles d'avoir verrouillé vos fichiers ou vos dossiers. Contrairement aux logiciels gratuits similaires, il prend en charge Windows 32 et 64 bits.

C'est un outil gratuit pour supprimer les fichiers bloqués par quelque chose que vous ne connaissez pas. LockHunter est utile pour lutter contre les logiciels malveillants et les autres programmes qui bloquent les fichiers sans raison. Contrairement à d'autres outils similaires, il supprime les fichiers dans la corbeille afin que vous puissiez les restaurer s'ils ont été supprimés par erreur.

  • Montre les processus verrouillant un fichier ou un dossier
  • Permet de déverrouiller, supprimer, copier ou renommer un fichier verrouillé
  • Permet de tuer le processus de verrouillage
  • Permet de supprimer les processus de verrouillage du disque dur
  • S'intègre dans le menu de l'explorateur
  • Il supprime les fichiers dans la corbeille, vous pouvez donc les restaurer s'ils ont été supprimés par erreur.
  • Prend en charge Windows 32 et 64 bits
Mehper C. Palavuzlar
la source
5
Les deux meilleures réponses ne m'ont pas fonctionné et les suivantes ont été bloquées par mon pare-feu ou ont été prévenues de ne pas y accéder par mon chrome !. LockHunter a parfaitement fonctionné.
user3885927
1
Chasseur de chance a travaillé pour moi alors que d'autres ne l'ont pas encore fait
SheldonH
Celui-ci fonctionne.
Jdhao
10

EMCO UnlockIT peut identifier le processus qui a verrouillé le fichier ainsi que le déverrouiller afin que vous puissiez le supprimer / le modifier / le déplacer. Le programme est totalement gratuit, bien que la version la plus récente soit un peu plus lente et plus lourde que la version originale (qui avait une interface graphique simple et non gérée, mais chargée presque instantanément et sans écran de démarrage gênant). En outre, la version d'origine s'ouvrait automatiquement chaque fois que l'erreur que vous avez mentionnée était déclenchée, ce qui vous permettait de déverrouiller instantanément le fichier et d'effectuer l'opération que vous tentiez.

Néanmoins, UnlockIT est un programme extrêmement utile qui fournit une fonctionnalité de base qui manque cruellement à Windows. C'est l'un des outils standard que j'installe sur tous les ordinateurs Windows sur lesquels je travaille.

Lèse majesté
la source
@ John: Eh bien, il identifie le programme qui a verrouillé un fichier. Et vous pouvez toujours tuer manuellement le processus via le gestionnaire de tâches. Cependant, il est généralement plus simple de simplement déverrouiller le fichier (surtout lorsque c'est l'explorateur qui l'a verrouillé la plupart du temps) au lieu de supprimer le processus qui l'a verrouillé (généralement parce que vous avez accédé au fichier et laissé le gestionnaire de fichiers ouvert. en raison d'un problème de programme).
Lèse majesté
2

Voici ma découverte et solution.

Incidemment, aucune des réponses ci-dessus n'a résolu mon problème.

J'ai même essayé d'utiliser UNLOCKER qui s'est révélé inutile.

Mon problème était celui de Memeo Autosync Backup

Apparemment, ce processus de sauvegarde laisse suffisamment de "fichier fantôme". Ce "fichier ressemblant à un fantôme" s'afficherait chaque fois que j'allais ALT-TAB sur mon ordinateur (Windows Professional XP), c.-à-d. Que je verrais DEUX PROGRAMMES MS Excel s'exécuter, alors que je n'en voyais qu'un, sur ma barre des tâches.

Je suis tombé sur cette solution en pensant qu'il s'agissait peut-être de la protection SYMANTEC Endpoint (anti-virus); et désactivé le programme. Cependant, je continuais à recevoir le message d'erreur:

impossible de supprimer (fichier LARGE.xls): il est utilisé par une autre personne ou un autre programme. Fermez tous les programmes susceptibles d’utiliser ce fichier et réessayez.

Par la suite, j'ai continué à voir la notice de "synchronisation" de Memeo et à QUITTER le programme.

Par la suite, PAS D'ERREUR.

Pour vous, il pourrait s'agir de l'une de ces sauvegardes en arrière-plan.

utilisateur Excel autrefois frustré
la source
2

Si vous ne connaissez pas le programme utilisé par le programme, vous pouvez accéder à Poste de travail; clic-droit; sélectionnez Gérer. Sous Outils système> Dossiers partagés> Fichiers ouverts, vous devriez pouvoir voir l'utilisateur qui a verrouillé le fichier. Vous pouvez fermer le fichier à partir d’ici et ensuite vous pouvez renommer ou supprimer le fichier. J'espère que cela t'aides

Rajesh
la source
1
Cela ne fonctionnera que pour les dossiers partagés.
sweetfa
1

Possibilité supplémentaire, juste pour économiser le temps que je viens de passer:

Dans les anciennes versions de Windows, vous pouvez obtenir le message "Accès refusé - vous ne disposez peut-être pas de droits, ou le fichier est peut-être en cours d'utilisation". Si vous découvrez via Process Explorer que les fichiers ne sont en fait ouverts par personne, il y a de fortes chances pour que la sécurité pose un problème. À l'aide d'un compte d'administrateur, sélectionnez les fichiers dans l'Explorateur, cliquez avec le bouton droit de la souris et sélectionnez Propriétés, Sécurité, Avancé, Propriétaire. Les chances sont que les fichiers appartiennent à un compte qui n'existe plus ou dont l'existence ne peut plus être vérifiée (en raison de la modification des paramètres de confiance Active Directory).

Changez de propriétaire en Administrateurs et vous êtes prêt à partir.

Stu
la source
0

Beaucoup de programmes ici sont obsolètes. J'ai finalement fini par utiliser OpenedFilesView de nirsoft, qui a très bien fonctionné.

Capture d'écran

La meilleure partie est l’intégration du menu de l’explorateur, qui est facile à activer. Comme sur le site

Menu contextuel de l'explorateur

À partir de la version 1.10, vous pouvez lancer OpenedFilesView directement à partir de l'Explorateur Windows et afficher uniquement les descripteurs du fichier ou du dossier que vous souhaitez inspecter. Pour activer cette fonctionnalité, cochez la case "Activer le menu contextuel de l'explorateur" dans le menu Options. Après avoir activé cette fonctionnalité, vous pouvez cliquer avec le bouton droit de la souris sur n’importe quel fichier ou dossier de l’explorateur Windows et choisir l’élément 'OpenedFilesView' dans le menu. Si vous exécutez l'option OpenedFilesView pour un dossier, tous les fichiers ouverts contenus dans ce dossier seront affichés. Si vous exécutez l'option OpenedFilesView pour un fichier, toutes les poignées ouvertes pour ce fichier seront affichées.

menu contextuel

Cet outil fonctionne toujours de manière fiable en 2019

Vijay
la source