Finden Sie heraus, welcher Prozess eine Datei oder einen Ordner in Windows sperrt

717

Wie kann ich herausfinden, welcher Prozess eine Datei oder einen Ordner in Windows sperrt?

Wenn Sie beispielsweise versuchen, einen Ordner zu löschen, meldet Windows Folgendes:

Die Aktion kann nicht abgeschlossen werden, da der Ordner in einem anderen Programm geöffnet ist

Das gleiche passiert mit einer Datei, aber wie kann ich herausfinden, welches Programm oder welche Anwendung sie aktuell verwendet, und verhindern, dass ich die Datei oder den Ordner lösche?

leeand00
quelle
5
Siehe diese ServerFault-Frage .
John Fouhy
1
Ist deine Datei ein Video? Sie können feststellen, dass Windows Explorer selbst die Datei "verwendet" ...
DisgruntledGoat
37
Wie ist das ein Duplikat? Er fragt speziell , wie man herausfindet, welcher Prozess eine Datei sperrt, und nicht, wie man eine gesperrte Datei löscht.
b1nary.atr0phy
8
Ich kann hier keine integrierte, einfachere Antwort hinzufügen, da sie fälschlicherweise als Dupe markiert wurde, und ich kann sie auch nicht zum anderen Thread hinzufügen, da dies nur für XP gilt. Bei Windows-Versionen mit Resource Monitor (geben Sie sie in die Suchleiste ein) gehen Sie jedoch zur Registerkarte CPU / Associated Handles und suchen Sie nach der Datei oder dem Ordner.
Jontyc
Ich habe erfahren, dass Windows 10 (und ich vermute schon Windows 7) ein Programm namens Resource Monitor hat, mit dem Sie sehen können, welche Prozesse eine Datei oder einen Ordner sperren
Ryan

Antworten:

67

PowerShell-Methode:

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
}

Für den openfilesBefehl muss Unterstützung für lokale Dateien aktiviert sein, indem er ausgeführt openfiles /local onund neu gestartet wird.

Weitere Details So finden Sie heraus, welcher Prozess eine Datei oder einen Ordner in Windows sperrt

frank
quelle
12
Die Funktion muss zuerst aktiviert werden mitopenfiles /local on
mstrange
6
Leider openfilesscheint auf einem 64-Bit-Windows nicht zu funktionieren:ERROR: The target system must be running a 32 bit OS.
Thomas S.
1
Funktioniert auf Win10 64 für mich
Michael
3
Es sieht so aus, als könntest du es im Grunde in reinem cmd mit erreichen openfiles /query /fo table | find /I "<path>"?
Mwfearnley
1
... Wenn wir bereit sind, neu zu starten, um etwas zu aktivieren, warum würden wir dann nicht einfach neu starten, um auf den Ordner zuzugreifen? Ich verstehe nicht, wie dieses Problem des OP gelöst wurde, wenn "nur Ihr Computer neu gestartet" viel einfacher gewesen wäre und dennoch ein Neustart erforderlich gewesen wäre.
Nic Hartley
694

Sie können die Verwendung Ressourcenmonitor für diese , die kommt in gebaut mit Windows 7, 8 und 10.

  1. Öffnen Sie den Ressourcenmonitor , den Sie finden
    • Durch Suchen nach Resource Monitor oder resmon.exe im Startmenü oder
    • Als Schaltfläche auf der Registerkarte Leistung in Ihrem Task-Manager
  2. Wechseln Sie zur Registerkarte CPU
  3. Verwenden Sie das Suchfeld im Abschnitt Zugehörige Handles
    • Siehe den blauen Pfeil in der Abbildung unten

Wenn Sie das Handle gefunden haben, können Sie den Prozess anhand der Spalte Bild und / oder PID identifizieren.

Sie können dann versuchen, die Anwendung wie gewohnt zu schließen, oder, falls dies nicht möglich ist, einfach mit der rechten Maustaste auf das Handle klicken und den Vorgang direkt von dort aus beenden. Kinderleicht!

Ressourcenmonitor-Screenshot

Svish
quelle
18
Hinweis: Der Ressourcenmonitor hat in meinem Fall keine zugeordneten Handles gefunden, während dies der Prozess-Explorer (wie oben beschrieben ) tat.
ComFreek
15
@ComFreek Nun, ProcessExplorer ist in vielen Fällen möglicherweise leistungsfähiger, aber für mich hat Resource Monitor immer festgestellt, dass die Anwendung die Datei sperrt, mit der ich etwas zu tun versuche. Ich bevorzuge es auch dem Process Explorer, weil es genau dort im Betriebssystem ist. Es ist kein zusätzlicher Download und keine zusätzliche Verknüpfung erforderlich.
6.
8
Ich konnte dies im Prozess-Explorer nicht finden, aber es war einfach, mit diesen Anweisungen im Ressourcen-Manager zu suchen. Vielen Dank.
Tatiana Racheva
6
@ComFreek In meinem Fall war es nur der andere Fall: Process Explorer hat das Handle nicht gefunden, während Resource Monitor dies tat.
Uwe Keim
9
+1 - das funktioniert auch gut unter Windows 10
Matt Innes
390

Ein paar Möglichkeiten:

Microsoft / SysInternals Process Explorer - Gehen Sie zu Suchen> Handle oder DLL suchen . Geben Sie im Textfeld "Handle or DLL substring:" den Pfad zur Datei ein (z. B. "C: \ path \ to \ file.txt") und klicken Sie auf "Search". Alle Prozesse, die ein offenes Handle für diese Datei haben, sollten aufgelistet werden.

WhoLockMe - Explorer-Erweiterung, die eine Rechtsklick- Menüoption hinzufügt

NB WhoLockMe funktioniert anscheinend nicht mit Win 10 (zumindest konnte ich es nicht mit einer der 32- oder 64-Bit-Versionen von regsvr32.exe registrieren).

Shevek
quelle
26
Wenn Sie in Windows 7 versuchen, eine gesperrte Datei zu löschen, wird in der Fehlermeldung angegeben, bei welchem ​​Prozess die Datei gesperrt ist
Garry English,
10
HINWEIS: Unlocker installiert Adware, wenn Sie nicht vorsichtig sind. Von ihrer Website: "Werbefunktion: Voll optionale Delta-Symbolleiste."
Julian Knight
11
@GarryEnglish aus irgendeinem Grund ist dies nicht immer der Fall. Ich musste nur procexp verwenden, um mir mitzuteilen, dass Notepad ++ eine Sperre für einen Ordner hatte. Windows 7 konnte mir den Täter nicht sagen.
GuiSim
4
@ jpmc26 Nein. WhoLockMe funktioniert nicht unter Windows 7.
28.
3
@ GarryEnglish- Wie von GuiSim angegeben, ist dies mit Sicherheit nicht immer der Fall, und meiner Erfahrung nach ist dies selten der Fall.
dgo
196

Schauen Sie sich Process Explorer ( procexp.exe) an.

Von seiner Einführung:

Haben Sie sich jemals gefragt, welches Programm eine bestimmte Datei oder ein bestimmtes Verzeichnis geöffnet hat? Jetzt können Sie es herausfinden.

Gehen Sie folgendermaßen vor, um herauszufinden, welcher Prozess eine bestimmte Datei verwendet:

  1. Gehen Sie zu Find , Find Handle oder DLL .. oder drücken Sie einfach Ctrl+ F.

    Geben Sie hier eine Bildbeschreibung ein

  2. Geben Sie den Namen der Datei ein und drücken Sie Suchen .

    Geben Sie hier eine Bildbeschreibung ein

  3. Der Prozess-Explorer listet alle Prozesse auf, die ein Handle für die geöffnete Datei haben. Klicken Sie auf einen Eintrag, um den Vorgang im Hauptfenster zu fokussieren.

    Geben Sie hier eine Bildbeschreibung ein

  4. Optional können Sie den Griff auch manuell über das untere Fenster schließen ( Ctrl+ L):

    Geben Sie hier eine Bildbeschreibung ein

Eroen
quelle
6
Process Hacker kann das auch.
Benoit
5
Als eine andere Antwort erwähnt, Handle ist ein Kommandozeilen - Tool von Sysinternals , die diese Aufgabe auch erreichen wird.
Heavyd
Ich habe vergessen, dass ein Cmd-Prozess im Ordner geöffnet ist. Der Proces-Explorer hat mir dabei geholfen, ihn zu bemerken.
Davejal
Hinweis für Googler: Die aktuelle Version von PE scheint Close Handle
MickyD
Fehler beim Arbeiten in Win10 64-Bit 1709
K7AAY
30

LockHunter kann alle Handler entsperren, die Ihre Dateien oder Ordner gesperrt haben. Im Gegensatz zu ähnlichen Freeware-Programmen werden sowohl 32- als auch 64-Bit-Windows unterstützt.

Es ist ein kostenloses Tool zum Löschen von Dateien, die von etwas blockiert wurden, das Sie nicht kennen. LockHunter ist nützlich, um Malware und andere Programme zu bekämpfen, die Dateien ohne Grund blockieren. Im Gegensatz zu anderen ähnlichen Tools werden Dateien im Papierkorb gelöscht, sodass Sie sie wiederherstellen können, wenn sie versehentlich gelöscht werden.

  • Zeigt Prozesse an, die eine Datei oder einen Ordner sperren
  • Ermöglicht das Entsperren, Löschen, Kopieren oder Umbenennen einer gesperrten Datei
  • Ermöglicht das Beenden des Sperrvorgangs
  • Ermöglicht das Entfernen von Sperrvorgängen von der Festplatte
  • Wird in das Explorer-Menü integriert
  • Es löscht Dateien im Papierkorb, sodass Sie sie wiederherstellen können, wenn sie versehentlich gelöscht werden
  • Unterstützt sowohl 32- als auch 64-Bit-Windows
Mehper C. Palavuzlar
quelle
5
Die ersten beiden Antworten haben mir nicht geholfen und die nächsten wurden entweder von meiner Firewall blockiert oder von meinem Chrome gewarnt !. LockHunter hat perfekt funktioniert.
User3885927
1
Glücksjäger
Dieser funktioniert.
JDHAO
10

EMCO UnlockIT kann den Prozess identifizieren, der die Datei gesperrt hat, sowie die Datei entsperren, damit Sie sie löschen, bearbeiten oder verschieben können. Das Programm ist völlig kostenlos, obwohl die neuere Version etwas langsamer und aufgeblähter ist als die Originalversion (die eine einfache, nicht enthäutete Benutzeroberfläche hatte, aber ziemlich augenblicklich und ohne lästigen Begrüßungsbildschirm geladen wurde). Außerdem wird die Originalversion automatisch angezeigt, sobald der von Ihnen erwähnte Fehler auftritt. Auf diese Weise können Sie die Datei sofort entsperren und den von Ihnen ausgeführten Vorgang ausführen.

Trotzdem ist UnlockIT ein unglaublich nützliches Programm, das eine grundlegende Funktionalität bietet, die in Windows kritisch fehlt. Es gehört zu den Standard-Dienstprogrammen, die ich auf allen Windows-Computern installiere, auf denen ich arbeite.

Majestätsbeleidigung
quelle
@ John: Nun, es identifiziert das Programm, das eine Datei gesperrt hat. Sie können den Vorgang auch weiterhin manuell über den Task-Manager beenden. In der Regel ist es jedoch einfacher, die Datei nur zu entsperren (insbesondere wenn der Explorer die Datei die meiste Zeit gesperrt hat), anstatt den Prozess abzubrechen, der sie gesperrt hat (normalerweise, weil er auf die Datei zugegriffen und den Datei-Handler geöffnet hat) aufgrund eines Programmfehlers).
Lèse majesté
2

Hier war meine Entdeckung und Lösung.

Im Übrigen hat keine der obigen Antworten mein Problem gelöst.

Ich habe sogar versucht, UNLOCKER zu verwenden, was sich als wertlos erwies.

Mein Problem war das von Memeo Autosync Backup

Anscheinend hinterlässt dieser Sicherungsvorgang genug von einer "geisterhaften Datei". Diese "ghost like file" wurde angezeigt, wenn ich meinen Computer (Windows Professional XP) mit ALT-TAB betätigte, dh ZWEI MS Excel-Programme auf meiner AUFGABENLEISTE liefen, wenn nur EIN einziges sichtbar war.

Ich bin auf diese Lösung gestoßen, als ich dachte, es könnte sich um den SYMANTEC Endpoint (Anti-Virus) -Schutz handeln. und deaktivierte das Programm. Ich erhielt jedoch immer wieder die Fehlermeldung:

kann nicht gelöscht werden (LARGE.xls-Datei): Sie wird von einer anderen Person oder einem anderen Programm verwendet. Schließen Sie alle Programme, die diese Datei möglicherweise verwenden, und versuchen Sie es erneut.

Anschließend wurde in Memeo die Meldung "Synchronisierung" angezeigt und das Programm beendet.

Anschließend KEIN FEHLER.

Für Sie könnte es JEDER dieser Hintergrundspeicher sein.

ehemals frustrierter Excel-User
quelle
2

Wenn Sie das Programm, das die Datei verwendet, nicht kennen, können Sie zu Arbeitsplatz gehen. Rechtsklick; Wählen Sie Verwalten. Unter Systemprogramme> Freigegebene Ordner> Dateien öffnen sollte der Benutzer sichtbar sein, der die Datei gesperrt hat. Sie können die Datei von hier aus schließen und dann die Aufgabe des Umbenennens oder Löschens der Datei ausführen. Hoffe das hilft

Rajesh
quelle
1
Dies funktioniert nur für freigegebene Ordner.
Sweetfa
1

Zusätzliche Möglichkeit, nur um den Leuten die Zeit zu ersparen, die ich gerade verbracht habe:

In älteren Windows-Versionen wird möglicherweise "Zugriff verweigert - Sie haben möglicherweise keine Rechte oder die Datei wird verwendet" angezeigt. Wenn Sie über Process Explorer feststellen, dass die Dateien tatsächlich von niemandem geöffnet werden, besteht die Wahrscheinlichkeit, dass ein Sicherheitsproblem vorliegt. Wählen Sie unter Verwendung eines Administratorkontos die Dateien im Explorer aus, klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften, Sicherheit, Erweitert, Besitzer. Wahrscheinlich gehören die Dateien einem Konto, das nicht mehr vorhanden ist oder dessen Existenz nicht mehr überprüft werden kann (da die Active Directory-Vertrauenseinstellungen geändert wurden).

Ändern Sie den Besitzer in Administratoren und Sie können loslegen.

Stu
quelle
0

Viele der Programme hier sind veraltet. Schließlich habe ich OpenedFilesView von nirsoft verwendet, was sehr gut funktioniert hat.

Bildschirmfoto

Das Beste ist jedoch die einfach zu aktivierende Explorer-Menü-Integration. Laut Webseite

Explorer-Kontextmenü

Ab Version 1.10 können Sie OpenedFilesView direkt über Windows Explorer starten und nur die Punkte der Datei oder des Ordners anzeigen, die Sie überprüfen möchten. Um diese Funktion zu aktivieren, aktivieren Sie das Kontextmenü des Explorers im Menü "Optionen". Nachdem Sie diese Funktion aktiviert haben, können Sie im Windows Explorer mit der rechten Maustaste auf eine beliebige Datei oder einen Ordner klicken und im Menü den Eintrag "OpenedFilesView" auswählen. Wenn Sie die OpenedFilesView-Option für einen Ordner ausführen, werden alle geöffneten Dateien in diesem Ordner angezeigt. Wenn Sie die Option OpenedFilesView für eine Datei ausführen, werden alle geöffneten Handles für diese Datei angezeigt.

Kontextmenü

Dieses Tool funktioniert auch 2019 noch zuverlässig

Vijay
quelle