Frage Wie finden Sie, welcher Prozess eine Datei in Windows geöffnet hält?


Eine Sache, die mich an Windows nervös macht, ist die alte Verletzung teilen Error. Oft können Sie nicht herausfinden, was es offen hält. Normalerweise ist es nur ein Editor oder ein Explorer, der nur auf ein relevantes Verzeichnis verweist, aber manchmal musste ich meinen Rechner neu starten.

Irgendwelche Vorschläge, wie man den Täter findet?


478
2018-05-01 00:47


Ursprung


Sie würden denken, dass nach all dieser Zeit die Windows-Jungs uns eine Möglichkeit geben würden, dies leicht aus dem Explorer heraus zu tun. Ich frage mich, warum das nicht passiert ist? - Cawflands
Ich finde, dass Explorer oft der Problemprozess ist, der sich ohne ersichtlichen Grund an einer Datei festhält. - Eddie
Ich weiß, das hilft dir nicht viel, aber ich denke, ich erinnerte mich daran, dass dies eine geplante Funktion der nächsten Windows-Version nach Vista und 2008 Server war. oder vielleicht ist es ein WinFS-Ding. nicht sicher, wo ich das gelesen habe ... - Kip


Antworten:


Ich hatte Erfolg mit Sysinternals  Process Explorer. Mit diesem können Sie suchen, um zu finden, welche Prozesse eine geöffnete Datei haben, und Sie können es verwenden, um die Handle (s) zu schließen, wenn Sie möchten. Natürlich ist es sicherer, den gesamten Prozess zu schließen. Vorsicht und Urteilsvermögen.

Um eine bestimmte Datei zu finden, verwenden Sie die Menüoption Find->Find Handle or DLL...  Geben Sie einen Teil des Pfades zur Datei ein. Die Liste der Prozesse wird unten angezeigt.

Wenn Sie eine Befehlszeile bevorzugen, enthält die Sysinternals-Suite ein Befehlszeilen-Tool Griff, die offene Handles auflistet. Ein paar Beispiele, wie man es benutzt:

  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\ - Finden Sie alle Dateien von Laufwerk E:
  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question

417
2018-05-01 01:03



Sie können den Griff schließen, aber denken Sie daran, Sie ziehen die Decke aus einer Anwendung heraus, Ergebnisse sind bestenfalls unvorhersehbar. - WaldenL
@Walden: Absolut. YMMV. Mit WinXP hatte ich Explorer oft einen Griff öffnen, ohne ersichtlichen Grund und weigere mich, es zu schließen. Wenn dies bei einer Datei geschieht, die Sie löschen müssen, haben Sie die Wahl, den Griff zu schließen oder neu zu starten. Bis jetzt, nachdem ich das Dutzende Male getan habe, habe ich keine negativen Auswirkungen gehabt. Wie bei jedem fortgeschrittenen Werkzeug, verwenden Sie mit Vorsicht und Urteilskraft. - Eddie
Das Schließen der Handles kann dazu führen, dass die App das Handle einer anderen Datei erneut verwendet, was zu Korruption führt - siehe Jeffs Antwort unten: serverfault.com/a/15695/79266 ... viel sicherer, die Anwendung zu beenden, die die Datei geöffnet hat, wenn Sie nicht neu starten möchten. - RichVel
Für Explorer, btw, halten Sie Strg-Shift und klicken Sie mit der rechten Maustaste auf einen leeren Bereich des Startmenüs, und Sie erhalten "Exit Explorer" - PS, nicht ganz Jeffs Antwort .. - Mark Sowul
Es hilft nicht für nicht exekutive Datei i.g. eine Textdatei Ich muss wissen, wer in eine Protokolldatei schreibt. Irgendeine Idee? - Xaqron


Unter Windows 7, Windows 8 und Windows 10 können Sie das integrierte Tool verwenden Ressourcenmonitor dafür.

  1. Öffnen Ressourcenmonitor, die gefunden werden können
    • Auf der Suche nach resmon.exe im Startmenü oder
    • Als ein Knopf auf der Performance Tab in Ihrem Taskmanager
  2. Aktivieren Sie das Kontrollkästchen neben dem Bild auf dem Weg Prozesse Abschnitt (Die überprüften Prozesse zeigen ihre Dateigriffe unten an.)
  3. Verwenden Sie das Suchfeld in der Zugehörige Griffe Abschnitt über die Zentralprozessor Tab
    • Auf den blauen Pfeil im Screenshot unten gezeigt

Wenn es nicht offensichtlich ist, wenn Sie das Handle gefunden haben, können Sie den Prozess identifizieren, indem Sie auf die Spalte Bild und / oder PID schauen.

Sie können dann die Anwendung schließen, wenn Sie dazu in der Lage sind, oder Sie klicken einfach mit der rechten Maustaste auf die Zeile und Sie erhalten die Möglichkeit, den Prozess direkt dort zu beenden. Kinderleicht!

Resource Monitor screenshot

Von meiner ursprünglichen Antwort kopiert: https://superuser.com/a/643312/62


147
2017-09-10 11:48



Es ist erwähnenswert, dass es schwierig sein kann, dieses Programm unter Windows 8 zu finden - eine Suche nach "resmon.exe" sollte es finden. - Kylotan
@Kyltan, hör auf Zeit mit der Suche zu verschwenden. Renn einfach resmon  direkt von cmd - Pacerier
@ Pacerier: Nett. Ich bin nicht daran gewöhnt, dass Dinge im Windows-Pfad sind. - Kylotan
Das passt mir besser als 'Handle | FindStr 'und' Unlocker 'Alternativen, obwohl sie auch wirksam sind - Marcus Vinicius Pompeu
In Windows 10 immer noch gültig und kann mit der Schaltfläche "Open Resource Monitor" im Task-Manager -> Registerkarte Leistung gefunden werden. - Norman Breau


Probieren Sie die OpenFiles Befehl.


81
2018-05-01 01:18



+1 für einen eingebauten Befehl, obwohl ich persönlich den ProcessExplorer für die meiste Zeit verwende. - RBerteig
Wirklich hilfreich. - marko
FEHLER: Das Zielsystem muss ein 32-Bit-Betriebssystem ausführen. - Bozojoe
funktioniert nicht für 64 OS! - Jarrod Roberson
Dies scheint für Windows 2012R2 64bit zu funktionieren, aber Sie müssen den Dienst "Open Local Tracking" aktivieren, indem Sie ausgeführt werden openfiles /local on und neu starten. Dies macht diese Funktion nicht sehr nützlich. - Guss


Sei nur sehr vorsichtig mit den Schließgriffen; Es ist sogar noch gefährlicher, als Sie denken würden, wegen des Handle-Recyclings - wenn Sie den Datei-Handle schließen und das Programm etwas anderes öffnet, kann die ursprüngliche Datei, die Sie geschlossen haben, für dieses "etwas anderes" wiederverwendet werden. Und nun raten Sie mal, was passiert, wenn das Programm weiterläuft und denkt, dass es an der Datei arbeitet (deren Handle Sie geschlossen haben), obwohl dieses Datei-Handle nun auf etwas anderes zeigt.

sehen Raymond Chens Post Zu diesem Thema

Angenommen, ein Suchindexdienst verfügt über eine Datei, die für die Indizierung geöffnet ist, jedoch über eine   vorübergehend stecken geblieben und du willst die Datei löschen, also du   (unklug) den Griff schließen. Der Suchindexdienst öffnet seinen   Protokolldatei, um einige Informationen aufzuzeichnen, und das Handle auf die   Die gelöschte Datei wird als Handle für die Protokolldatei wiederverwendet. Das Feststecken   Die Operation wird abgeschlossen, und der Suchindexdienst wird schließlich verfügbar   um zu schließen, dass der Griff offen war, aber es endet unwissentlich   Schließen des Protokolldatei-Handles

Der Suchindexdienst öffnet einen anderen   Datei, sagen Sie eine Konfigurationsdatei zum Schreiben, damit sie einige aktualisieren kann   anhaltender Zustand. Das Handle für die Protokolldatei wird als das wiederverwendet   Handle für die Konfigurationsdatei. Der Suchindexdienst möchte   protokollieren einige Informationen, so dass es in seine Protokolldatei schreibt. Leider   Protokolldatei-Handle wurde geschlossen und der Handle für seine Konfiguration wiederverwendet   Datei. Die geloggten Informationen gehen in die Konfigurationsdatei,   es korrumpieren.

In der Zwischenzeit wurde ein anderer Griff, den Sie geschlossen haben, wiederverwendet   als Mutex-Handle, mit dem Daten verhindert werden   beschädigt. Wenn das ursprüngliche Dateihandle geschlossen ist, wird das Mutex-Handle ausgeführt   ist geschlossen und der Schutz vor Datenkorruption geht verloren. Das   Je länger der Dienst läuft, desto korrupter werden seine Indizes.   Irgendwann bemerkt jemand, dass der Index falsche Ergebnisse zurückgibt.   Und wenn Sie versuchen, den Dienst neu zu starten, scheitert es, weil es   Konfigurationsdateien wurden beschädigt.

Sie melden das Problem an die   Unternehmen, das den Suchindexdienst erstellt und das bestimmt sie   Der Index wurde beschädigt, die Protokolldatei wurde auf mysteriöse Weise gestoppt   Protokollierung, und die Konfigurationsdatei wurde mit Müll überschrieben. Etwas   Deutsch:. Englisch: www.mjfriendship.de/en/index.php?op...39&Itemid=32 Der arme Techniker hat die hoffnungslose Aufgabe, herauszufinden, warum   Service verdirbt seine Indizes und Konfigurationsdateien, nicht bewusst, dass die   Quelle der Korruption ist, dass Sie einen Griff geschlossen haben.


76
2018-05-30 17:04



wichtige Warnung, sollte dies näher an die Spitze gehen - ein Neustart ist wahrscheinlich besser als eine stillgelegte Datei. - RichVel
+1 Das wird mich sicherlich dazu bringen, zweimal über das Schließen von Griffen nachzudenken! Es erscheint mir merkwürdig, dass Windows die Nummer eines geschlossenen Handle sofort wieder verwendet, anstatt die Nummer weiter zu erhöhen und nur bei Bedarf zu umbrechen. Das würde die Wahrscheinlichkeit, dass dieses Problem auftritt, zumindest stark reduzieren. - EM0
@RichVel Das Beenden des Täterprozesses ist wahrscheinlich besser als ein vollständiger Neustart. - Dmitry Grigoryev
@ DmitryGrigoryev - guter Punkt, und in der Tat habe ich bereits erwähnt Hier - RichVel
Dies ist eine sehr wichtige Warnung, aber beantwortet die Frage nicht Wie finden Sie, welcher Prozess eine Datei in Windows geöffnet hält? - Ploni


Ich habe gebraucht Griff mit Erfolg, solche Prozesse in der Vergangenheit zu finden.


27
2018-05-01 00:52



Ich benutze dieses Tool die ganze Zeit. Wenn ich ein USB-Laufwerk nicht auswerfen kann, tippe ich einfach "handle H:" (oder was auch immer der Laufwerksbuchstabe). Das Beste von allem ist, dass Sie damit enge Griffe erzwingen können. - Chris Thompson


Wer sperrt mich? funktioniert gut und hält die Leute amüsiert mit dem Namen!


7
2018-05-06 00:43



Funktioniert nicht in 64-Bit Windows 8 und 10. - rustyx


Nur um dies zu verdeutlichen, ist dies eher eine Folge von sich schlecht benehmenden Apps von Drittanbietern, die das Programm nicht nutzen Erstelle Datei API-Aufruf korrekt als es in Windows selbst sein soll. Vielleicht ist es eine Konsequenz des Designs von CreateFile, aber fertig ist es und wir können nicht zurückgehen.

Grundsätzlich haben Sie beim Öffnen einer Datei in einem Windows-Programm die Möglichkeit, ein Flag anzugeben, das den gemeinsamen Zugriff zulässt. Wenn Sie das Flag nicht angeben, verwendet das Programm exklusiven Zugriff auf die Datei.

Nun, wenn der Explorer hier der Übeltäter zu sein scheint, kann es sein, dass das nur oberflächlich ist und dass der wahre Schuldige etwas ist, das eine Shell-Erweiterung installiert, die alle Dateien in einem Ordner für eigene Zwecke öffnet, aber auch Gung-ho dabei, oder das reinigt sich nicht richtig nach. Symantec AV ist etwas, das ich schon einmal gesehen habe, und ich wäre nicht überrascht, wenn andere AV-Programme auch dafür verantwortlich wären. Source-Control-Plug-Ins können ebenfalls fehlerhaft sein.

Also nicht wirklich eine Antwort, aber nur ein Ratschlag, um nicht immer Windows dafür verantwortlich zu machen, was ein schlecht geschriebenes 3rd-Party-Programm ist (etwas, das auch auf jedem anderen Betriebssystem mit impliziter Dateisperrung vorkommen kann, aber auf jedem unix-basierten Betriebssystem hat Standard).


7
2017-10-12 14:27



Ich werde eine 3rd-Party-App nicht dafür verantwortlich machen, dass mein Windows-Explorer immer Thumbs.db-Dateien in seinem Arbeitsverzeichnis sperrt, aber nicht immer entsperrt, wenn ich das Arbeitsverzeichnis ändere. Zumindest sind sie freigeschaltet, wenn ich das Fenster schließe, ich muss nicht ALLE Forscher töten ... - Alexander
@Darth, Sind Sie ein Vermarkter von Microsoft? - Pacerier