Vraag Hoe vind je welk proces een bestand open houdt in Windows?


Een ding dat me rotzooi over Windows maakt, is het oude het delen van overtreding fout. Vaak kun je niet vaststellen wat het open houdt. Meestal is het gewoon een editor of verkenner die naar een relevante map verwijst, maar soms moest ik mijn machine opnieuw opstarten.

Eventuele suggesties voor het vinden van de schuldige?


478
2018-05-01 00:47


oorsprong


Je zou denken dat na al die tijd de Windows-jongens ons een manier zouden geven om dit eenvoudig te doen vanuit Explorer. Ik vraag me af waarom dit niet is gebeurd? - Cawflands
Ik ontdek dat Explorer vaak het probleemproces is dat zonder duidelijke reden vasthoudt aan een bestand. - Eddie
Ik weet dat dit je niet veel helpt, maar ik denk dat ik me herinnerde dat dit een geplande functie was van de volgende Windows-release na vista en 2008-server. of misschien is het een WinFS-ding. niet zeker waar ik dat lees ... - Kip


antwoorden:


Ik heb succes gehad met Sysinternals  Process Explorer. Hiermee kunt u zoeken naar welke processen een bestand openen en kunt u het gebruiken om de handgreep (en) te sluiten als u dat wilt. Het is natuurlijk veiliger om het hele proces te sluiten. Wees voorzichtig en oordeel.

Gebruik de menuoptie om een ​​specifiek bestand te vinden Find->Find Handle or DLL...  Typ een deel van het pad naar het bestand. De lijst met processen verschijnt hieronder.

Als u de voorkeur geeft aan de opdrachtregel, bevat de Sysinternals-suite het opdrachtregelhulpprogramma Handvat, die open handgrepen weergeeft. Een paar voorbeelden van hoe u het kunt gebruiken:

  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\ - vind alle bestanden geopend vanaf station E:
  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question

417
2018-05-01 01:03



Je kunt het handvat sluiten, maar houd in gedachten dat je het tapijt onder een toepassing uittrekt, de resultaten zijn op zijn best onvoorspelbaar. - WaldenL
@Walden: Absoluut. YMMV. Met WinXP heb ik vele malen Explorer een handvat open laten zetten zonder duidelijke reden en weigerden het te sluiten. Wanneer dit gebeurt in een bestand dat je moet verwijderen, kun je ervoor kiezen om de hendel te sluiten of opnieuw op te starten. Tot nu toe heb ik dit tientallen malen gedaan, maar ik heb geen enkel negatief effect gehad. Zoals met elk geavanceerd hulpmiddel, gebruik het met voorzichtigheid en oordeel. - Eddie
Als u de grepen sluit, kan de app het handvat van een ander bestand opnieuw gebruiken en corruptie veroorzaken. Zie Jeff's antwoord hieronder: serverfault.com/a/15695/79266 ... veel veiliger om de toepassing die het bestand openhoudt, te sluiten als u niet opnieuw wilt opstarten. - RichVel
Voor explorer, btw, houd je ctrl-shift ingedrukt en klik je met de rechtermuisknop op een leeg gebied in het startmenu, en krijg je "Exit Explorer" - ps, niet helemaal het antwoord van Jeff .. - Mark Sowul
Het helpt niet voor niet-uitvoerbare bestanden i.g. een tekstbestand. Ik moet weten wie naar een logbestand schrijft. Enig idee? - Xaqron


Voor Windows 7, Windows 8 en Windows 10 kunt u de ingebouwde functie gebruiken Bronmonitor voor deze.

  1. Open Bronmonitor, die kan worden gevonden
    • Door te zoeken naar resmon.exe in het startmenu, of
    • Als een knop op de Prestatie tab in uw Taakbeheer
  2. Schakel het selectievakje naast de Beeld op weg naar de Processen sectie (de gecontroleerde processen zullen hun bestandsgrepen hieronder weergeven.)
  3. Gebruik het zoekveld in de Bijbehorende handgrepen sectie over de processor tab
    • Gericht door de blauwe pijl in onderstaande schermafbeelding

In het geval dat het niet duidelijk is, kunt u het proces identificeren door de kolom Beeld en / of PID te bekijken.

U kunt dan de toepassing sluiten als u daartoe in staat bent, of u klikt met de rechtermuisknop op de rij en u krijgt de mogelijkheid om het proces daar te vernietigen. Makkelijk!

Resource Monitor screenshot

Gekopieerd van mijn oorspronkelijke antwoord: https://superuser.com/a/643312/62


147
2017-09-10 11:48



Het is vermeldenswaard dat het moeilijk kan zijn om dit programma te vinden op Windows 8 - een zoekopdracht naar 'resmon.exe' zou het moeten lokaliseren. - Kylotan
@Kylotan, stop met zoeken naar tijdverspilling. Ren gewoon resmon  rechtstreeks van cmd - Pacerier
@Pacerier: leuk. Ik ben niet gewend dat dingen op het Windows-pad staan. - Kylotan
Dit bevalt me ​​beter dan 'Handle | FindStr 'en' Unlocker 'alternatieven, hoewel ze ook effectief zijn - Marcus Vinicius Pompeu
Nog steeds geldig in Windows 10 en kan worden gevonden met behulp van de knop "Open Resource Monitor" op het tabblad Taakbeheer -> Prestaties. - Norman Breau


Probeer de open bestanden commando.


81
2018-05-01 01:18



+1 voor een ingebouwde opdracht, hoewel ik ProcessExplorer hier meestal voor het grootste deel van de tijd gebruik van maak. - RBerteig
Erg hulpzaam. - marko
FOUT: het doelsysteem moet een 32-bits besturingssysteem hebben. - Bozojoe
werkt niet voor 64 OS! - Jarrod Roberson
Dit lijkt te werken voor Windows 2012R2 64bit, maar je moet de "open lokale tracking" -service inschakelen door te draaien openfiles /local on en opnieuw opstarten. Hierdoor is deze functie niet erg handig. - Guss


Wees heel voorzichtig met het sluiten van handgrepen; het is zelfs gevaarlijker dan je zou denken, vanwege het verwerken van hergebruik - als je de bestandsingang sluit en het programma iets anders opent, kan dat originele bestand dat je hebt afgesloten, worden hergebruikt voor dat 'iets anders'. En raad eens wat er gebeurt als het programma doorgaat, denkend dat het aan het bestand werkt (wiens handvat je hebt gesloten), terwijl in feite die bestandsingang nu naar iets anders verwijst.

zien Het bericht van Raymond Chen over dit onderwerp

Stel dat een zoekindexdienst een bestand open heeft voor indexering maar dat wel heeft   tijdelijk vastgelopen en je wilt het bestand verwijderen, dus jij   (niet verstandig) de hendel gesloten. De zoekindex-service opent zijn   logbestand om wat informatie op te nemen en de handle naar de   verwijderde bestand wordt gerecycled als de handle naar het logbestand. Het zit vast   operatie eindelijk voltooid, en de zoekindex-service eindelijk krijgt   rond om dat handvat te sluiten dat het open had, maar het eindigt onbewust   de greep van het logbestand sluiten.

De zoekindexservice opent een andere   bestand, zeg een configuratiebestand om te schrijven zodat het een aantal kan bijwerken   persistente toestand. De handle voor het logbestand wordt gerecycled als de   handvat voor het configuratiebestand. De zoekindex-service wil   log wat informatie, dus het schrijft naar zijn logbestand. Helaas, de   log file handle was gesloten en de handle hergebruikt voor de configuratie   het dossier. De gelogde informatie gaat in het configuratiebestand,   het corrumperen.

Ondertussen werd een ander handvat dat je geforceerd had gesloten opnieuw gebruikt   als een mutex-handle, die wordt gebruikt om te voorkomen dat data wordt   beschadigd. Wanneer de handgreep van het originele bestand gesloten is, kan de mutex worden gehanteerd   is gesloten en de bescherming tegen gegevensbeschadiging is verloren. De   hoe langer de service wordt uitgevoerd, hoe meer gecorrumpeerd de indexen worden.   Uiteindelijk, iemand merkt dat de index onjuiste resultaten oplevert.   En als u de service opnieuw probeert te starten, mislukt deze omdat deze   configuratiebestanden zijn beschadigd.

U rapporteert het probleem aan de   bedrijf dat de zoekindexdienst maakt en zij bepalen dat   de index is beschadigd, het logbestand is op mysterieuze wijze gestopt   logboekregistratie en het configuratiebestand werd overschreven met garbage. Sommige   arme technicus krijgt de hopeloze taak om uit te zoeken waarom het   service corrumpeert zijn indexen en configuratiebestanden, onbewust dat het   bron van de corruptie is dat je een hendel gedwongen hebt gesloten.


76
2018-05-30 17:04



belangrijke waarschuwing, dit zou dichter bij de top moeten komen - een herstart is waarschijnlijk beter dan een stil beschadigd bestand. - RichVel
+1 Dit zal me zeker doen nadenken over het forceren van gesloten hendels! Het lijkt mij raar dat Windows het nummer van een gesloten greep onmiddellijk opnieuw zou gebruiken, in plaats van door te gaan met het verhogen van het aantal en alleen in te pakken als dat nodig was. Dat zou op zijn minst de kans dat dit probleem zich voordoet aanzienlijk verminderen. - EM0
@RichVel Het beëindigen van het proces van een boosdoener is waarschijnlijk beter dan een volledige herstart. - Dmitry Grigoryev
@DmitryGrigoryev - goed punt, en eigenlijk heb ik dat al genoemd hier - RichVel
Dit is een zeer belangrijke waarschuwing, maar geeft geen antwoord op de vraag Hoe vind je welk proces een bestand open houdt in Windows? - Ploni


Ik heb gebruikt Handvat met succes om dergelijke processen in het verleden te vinden.


27
2018-05-01 00:52



Ik gebruik deze tool de hele tijd. Als ik een USB-station niet kan uitwerpen, typ ik gewoon "handle H:" (of wat de stationsletter ook is). Het beste van alles is dat je het kunt gebruiken om nauwe handvatten te forceren. - Chris Thompson


Wie Lock Me werkt goed en houdt mensen geamuseerd met de naam!


7
2018-05-06 00:43



Werkt niet in 64-bit Windows 8 en 10. - rustyx


Ter verduidelijking: dit is waarschijnlijker het gevolg van het niet goed gebruiken van apps van derden die het CreateFile API-oproep correct dan dat het om iets in Windows zelf gaat. Misschien is het een gevolg van het ontwerp van CreateFile, maar het is klaar en we kunnen niet teruggaan.

Kortom, wanneer u een bestand in een Windows-programma opent, hebt u de mogelijkheid om een ​​vlag op te geven die gedeelde toegang toestaat. Als u de vlag niet opgeeft, krijgt het programma exclusieve toegang tot het bestand.

Nu, als Explorer hier de boosdoener lijkt te zijn, kan het zijn dat dat gewoon aan de oppervlakte is en dat de echte boosdoener iets is dat een shell-extensie installeert die alle bestanden in een map opent voor zijn eigen doeleinden, maar hij is het ook gung-ho daarbij, of dat niet goed opruimt na zichzelf. Symantec AV is iets dat ik eerder heb gezien en ik zou niet verrast zijn als ook andere AV-programma's de schuld kregen. Bronbeheerplug-ins kunnen ook een fout hebben.

Dus niet echt een antwoord, maar slechts een advies om Windows niet altijd de schuld te geven van wat een slecht geschreven programma van derden kan zijn (iets dat ook kan gebeuren op elk ander besturingssysteem met impliciete bestandsvergrendeling, maar elk op Unix gebaseerd besturingssysteem heeft gedeelde toegang door standaard).


7
2017-10-12 14:27



Ik zal een 3rd party-app niet de schuld geven van het feit dat mijn windows-verkenner Thumbs.db-bestanden altijd in de werkdirectory opslaat, maar deze niet altijd ontgrendelt wanneer ik van werkmap verander. Ze zijn tenminste ontgrendeld als ik het raam sluit, ik hoef ALLE ontdekkingsreizigers niet te doden ... - Alexander
@Darth, ben je een marketeer van Microsoft? - Pacerier


Op een externe server, wanneer u een netwerkshare controleert, kan zoiets eenvoudigs als de Computer Management-console deze informatie weergeven en het bestand sluiten.


6
2018-05-01 01:01



Precies, waarom zijn er zulke gecompliceerde antwoorden? - Rohit Gupta


Apropos Explorer houdt een bestand open: "Wanneer dit gebeurt in een bestand dat je moet verwijderen, kun je ervoor kiezen om het handvat te sluiten of opnieuw op te starten."

U kunt Explorer gewoon beëindigen.

Als dit een eenmalig iets is (Explorer houdt dit bestand normaal niet open) dan zou ik veronderstellen dat het afmelden en opnieuw inloggen de juiste oplossing is.

Anders dood je het proces van de desktopverkenner en doe je wat je wilt terwijl het weg is. Start eerst een kopie van cmd.exe (u hebt een gebruikersinterface nodig om uw geplande opschoning uit te voeren). Zorg ervoor dat er geen Explorers zonder desktop actief zijn. Dood vervolgens de laatste Explorer met, bijvoorbeeld, Taakbeheer. Doe wat je wilt in de opdrachtprompt. Voer ten slotte Explorer uit vanaf de opdrachtprompt en het wordt het bureaublad.

Ik vermoed dat er nog enige overblijvende onaangenaamheden zijn als sommige systray-programma's niet kunnen omgaan met het opnieuw opstarten van de shell.


6
2018-06-03 14:01



Dit is veel veiliger dan het sluiten van het handvat, en minder storend dan opnieuw opstarten. Geldt ook voor andere programma's - Ik vind vaak dat een Microsoft Office-programma vergrendelingen van bestanden bevat, zelfs nadat ik ze heb gesloten. - RichVel


Lockhunter (http://lockhunter.com/) werkt op 32- en 64bit-systemen.


6
2017-10-12 13:06





Er is NirSoft's Geopende bestandsweergave ook.


4
2018-05-01 02:12



Persoonlijk vind ik dit beter dan Process Explorer voor deze specifieke taken. - JamesBarnett