Sådan identificeres den proces, der har låst en fil i Windows

Når du forsøger at slette en fil eller mappe, som er i brug af en proces, vises dialogboksen Fil i brug, der viser navnet på det program, der har låst filen.

Der er dog tilfælde, hvor dialogboksen "Fil i brug" ikke viser navnet på den proces, der har en lås på den fil, du forsøger at slette. I nogle tilfælde vil dialogen vise "handlingen kan ikke fuldføres, fordi filen er åben i en anden proces“.

Find hvilken proces der har låst en fil

Til at undersøge processer og låste filer er Windows Sysinternals Process Explorer sandsynligvis den første mulighed, der kommer til at tænke på for de fleste brugere. Der er dog to indbyggede løsninger for at vise den aktuelle åbne filliste sammen med tilsvarende procesnavne.

Find hvilken proces der har låst en fil ved at bruge:

  1. Resource Monitor (resmon.exe)
  2. Process Explorer fra Microsoft Sysinternals
  3. Håndtag fra Microsoft Sysinternals
    • Find filhåndtaget via højrekliksmenuen
  4. Openfiles.exe indbygget konsolværktøj
    • Aktiver sporing af lokale filhåndtag
    • Se åbne filer og de tilsvarende procesnavne
    • Afbryd forbindelsen mellem åbnede filer fra delte mapper
  5. OpenedFilesView fra Nirsoft.net (3. part)

1. Ressourcemonitor

Resource Monitor (resmon.exe) er et indbygget værktøj, der har mange nyttige funktioner. Med Resource Monitor kan du spore nuværende netværk og internetbrug, se tilhørende håndtag for låste filer, samt administrere processer, ligesom du ville bruge Task Manager.

For at finde procesnavnet, der har en fil låst, skal du klikke på CPU-fanen, skrive filnavnet eller en del af det i tekstboksen Associated Handles.

Find hvilken proces der har låst en fil

Vi har tidligere dækket Resource Monitor. Tjek disse artikler:

  • Hvordan man bruger ressourcemonitor til at finde hvilken proces der har låst en fil?
  • Hvilket program bruger hele din internetbåndbredde? Brug Resource Monitor til at finde den

2. Process Explorer

Process Explorer behøver ingen introduktion. I Process Explorer skal du blot bruge funktionen Find og indtaste filnavnet. Dette viser processen, der får adgang til filen.

Find hvilken proces der har låst en fil

Fra den nederste rudevisning kan du lukke filhåndtaget, hvis det er nødvendigt.

Du skal køre Process Explorer som administrator for at administrere processer, der kører forhøjet. For at hæve Process Explorer skal du klikke på menuen Filer → Vis detaljer for alle processer.

Tjek disse Process Explorer-relaterede artikler:

  • Sådan sletter du en genstridig, ikke-sletbar fil eller mappe i Windows?
  • Find hvilket program der bruger dit webcam i øjeblikket
  • Sådan finder du hvilket program der forårsagede en ukendt fejlmeddelelse?
  • Hvad betyder Mislykket at opregne objekter i containeren?

3. Håndtag fra Windows Sysinternals

Håndtere er et værktøj fra Microsoft Sysinternals, der viser information om åbne håndtag for enhver proces i systemet. Du kan bruge den til at se de programmer, der har en fil åben, eller til at se objekttyperne og navnene på alle håndtagene i et program. Handle er som en kommandolinjeversion af Process Explorer.

Bemærk: Håndtag v4.21 har en lille fejl hvor den altid rapporterer "Ingen matchende håndtag fundet", hvis drevbogstavet er med stort bogstav. Håber Microsoft løser det i næste opdatering.

Fra en admin kommandoprompt vindue, skal du bruge kommandolinjesyntaksen til at finde processen, der har filen åben:

handle.exe -a -u filnavn_med_sti

Hvis filnavnet indeholder mellemrum, skal du sætte det i dobbelte anførselstegn.

Eksempel:

handle.exe -a -u "c:\users\ramesh\desktop\Mandate-form.pdf"
find hvilken proces låst fil - sysinternals håndtere

(At nævne filnavnet uden stien fungerer muligvis ikke nødvendigvis i alle situationer. Det er tilrådeligt at inkludere hele stien altid.)

Outputtet viser procesnavnet, procesidentifikationen, brugernavnet, det låste (mål) filnavn med sti.

Sysinternals-håndtag: Kommandolinjeargumenter

brug: håndtag [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [navn] [-nobanner]
-en Dump alle håndtagsoplysninger.
-l Bare vis sidefil-understøttede sektionshåndtag.
-c Lukker det angivne håndtag (fortolket som et hexadecimalt tal).
Du skal specificere processen ved dens PID. ADVARSEL: Lukkehåndtag kan forårsage applikations- eller systemustabilitet.
-y Spørg ikke om bekræftelse af tæt håndtag.
-s Udskriv antallet af hver type åbent håndtag.
-u Vis ejerens brugernavn, når du søger efter håndtag.
-s Dumpehåndtag tilhørende proces (delvis navn accepteret).
navn Søg efter håndtag til objekter med (fragment accepteret).
-nobanner Vis ikke startbanneret og copyright-meddelelsen.

Ingen argumenter vil dumpe alle filreferencer.

Tilføj Sysinternals Handle til højrekliksmenuen

Du kan tilføje Sysinternals Handle til højrekliksmenuen for filer for hurtigt at finde det program, der har låst filen. Følg disse trin for at tilføje det til kontekstmenuen:

  1. Hent Håndtere fra Microsoft Sysinternals websted.
  2. Kopier filerne handle.exe & handle64.exe til en mappe – f.eks. d:\værktøjer
  3. Kopier følgende kodelinjer til Notesblok, og gem filen som find_handle.vbs til et permanent sted.
    'Kører Sysinternals Handle.exe-værktøjet med filnavnsargument. '© Ramesh Srinivasan -- https://winhelponline.com/blog. 'Oprettelsesdato: 29. marts 2008. 'Opdateret dato: 11. juni 2019. 'For alle versioner af Windows, inklusive Windows 10 Option Explicit. Dim objShell, WshShell, objFSO, sBaseKey, sFilename. Indstil objShell = CreateObject("Shell. Ansøgning") Indstil WshShell = CreateObject("WScript. Skal") Indstil objFSO = CreateObject("Scripting. FileSystemObject") Hvis WScript. Argumenter. Antal = 0 Derefter sBaseKey = "HKCU\Software\Klasser\*\shell\" WshShell. RegWrite sBaseKey & "FindHandle\", "Find Handle", "REG_SZ" WshShell. RegWrite sBaseKey & "FindHandle\command\", "wscript.exe" & & _ WScript. ScriptFuldnavn & & " " & & "%1" &, "REG_SZ" Else If objFSO.FileExists (WScript. Argumenter (0)) = Sand Derefter sFilename = lcase (WScript. Argumenter (0)) objShell. ShellExecute "cmd.exe", "/k d:\tools\handle.exe -a -u " & _ & sFilename &, "", "runas", 1 End If. Afslut Hvis

    Bemærk: Sysinternals Handle.exe-stien er hårdkodet som d:\tools\handle.exe i ovenstående script. Hvis programmet er placeret på en anden sti, skal du ændre stien i scriptet i overensstemmelse hermed. Til 64-bit Windows kan du bruge enten handle.exe eller handle64.exe

  4. Dobbeltklik find_handle.vbs for at tilføje kontekstmenuindgangen i registreringsdatabasen. Du skal kun gøre dette én gang. Men hvis du flytter scriptet til en anden mappe, skal du dobbeltklikke på det igen for at opdatere stien i registreringsdatabasen.
  5. Du vil se Find håndtag mulighed, når du højreklikker på en fil. Hvis du klikker på det, startes scriptet, som igen kører handle.exe med filnavnargumentet for at finde processen, som har filen låst.find hvilken proces låst fil - sysinternals håndtere

For at fjerne Find håndtag genvejsmenuindgang, start registreringseditoren (regedit.exe) og slet følgende nøgle:

HKEY_CURRENT_USER\Software\Classes\*\shell\FindHandle

4. OpenFiles.exe — et indbygget konsolværktøj

Et andet indbygget værktøj, vi skal bruge, er Openfiles.exe, et konsolværktøj, der ikke er nyt for Windows. Det blev oprindeligt introduceret i 2000 som en del af Windows Resource Kit 2000/2003-værktøjerne. Dette værktøj blev derefter inkluderet som standard i Windows Vista og nyere (inklusive Windows 10). Openfiles viser den aktuelt åbne filliste fra lokale eller delte mapper sammen med Handle ID og Process eksekverbar navn. Dette værktøj giver dig også mulighed for at frakoble en eller flere filer, der er fjernåbnet, fra en delt mappe.

Aktiver "Vedligehold objektliste" globalt flag for første gang

For det første, for at aktivere sporing af lokale filhåndtag, skal du aktivere flaget 'vedligehold objektliste' ved at køre følgende kommando fra admin kommandoprompt.

openfiles /local på

Du får vist følgende besked:

INFO: Systemets globale flag 'vedligehold objektliste' er i øjeblikket aktiveret.

Du skal kun køre denne kommando for første gang. Genstart derefter Windows for at ændringen træder i kraft.

Se åbne filer og de tilsvarende procesnavne

Efter genstart af Windows, fra en admin kommandoprompt vindue, skriv:

åbne filer

Dette viser fil-/håndtag-id'et, procesnavnet og listen over filer, der er åbnet lokalt eller åbnet eksternt via lokale delepunkter, i et tabelformat.

For at se outputtet i liste- eller CSV-formater skal du bruge parameteren /query.

openfiles /query /FO LIST. openfiles /query /FO CSV

For at kopiere output til udklipsholder, skal du overføre output til Clip.exe som nedenfor. Indsæt derefter output i Notesblok eller en anden editor efter eget valg.

åbne filer |klip
Find hvilken proces der har låst en fil
openfiles /query /FO LIST |klip. openfiles /query /FO CSV |klip
Find hvilken proces der har låst en fil

For mere information om kopiering af kommandoprompt-output til udklipsholder eller gemme output til en fil, tjek artiklen Hvordan kopierer man kommandoprompt-outputtekst til udklipsholder eller gem til fil?

For at finde ud af, om en bestemt fil er i brug af et program (og for at vide hvilket program), kan du bruge følgende kommandolinje.

åbne filer | findstr /i 

Eksempel:

åbne filer | findstr /i eiffel

Ovenstående kommando viser alle åbne filer, der indeholder ordet "eiffel" i filnavnet. I dette eksempel har Word 2016 i øjeblikket låsen over filen "The Eiffel Tower.docx" (ID 4576).

Find hvilken proces der har låst en fil

Og dialogboksen "Fil i brug" fortæller mig det samme.

Find hvilken proces der har låst en fil

Frakobl filer, der er åbnet eksternt, fra delt mappe.

For at afbryde filer åbnet fra delt mappe, så du kan slette, omdøbe filen eller ændre indholdet, skal du bruge /disconnect parameter for at afbryde forbindelser til den fil. Her er kommandolinjeindstillingerne.

OPENFILES /Afbryd [/S system [/U brugernavn [/P [adgangskode]]]] {[/ID id] [/A tilgås af] [/O åben tilstand]} [/OP åben fil] Beskrivelse: Gør det muligt for en administrator at afbryde forbindelsen mellem filer og mapper, der er blevet fjernåbnet gennem en delt folder. Parameterliste: /S system Specificerer det fjernsystem, der skal oprettes forbindelse til. /U [domæne\]bruger Angiver den brugerkontekst, som kommandoen skal udføres under. /P [adgangskode] Angiver adgangskoden for den givne brugerkontekst. /ID id Angiver at afbryde forbindelsen mellem åbne filer efter fil-id. Jokertegnet "*" kan bruges. /A accessedby Specificerer at frakoble alle åbne filer med "accessedby" værdi. Jokertegnet "*" kan bruges. /O openmode Specificerer at frakoble alle åbne filer med "openmode" værdi. Gyldige værdier er Læs, Skriv eller Læs/Skriv. Jokertegnet "*" kan bruges. /OP openfile Angiver at afbryde alle åbne filforbindelser, der er oprettet af et specifikt "åben fil"-navn. Jokertegnet "*" kan bruges. /? Viser denne hjælpemeddelelse. Eksempler: OPENFILES /Disconnect /? OPENFILES /Disconnect /ID 1 OPENFILES /Disconnect /A brugernavn OPENFILES /Disconnect /O Læs/Skriv OPENFILES /Disconnect /OP "c:\My Dokumenter\somedoc.doc" /ID 234 OPENFILES /Afbryd /S system /U brugernavn /ID 5 OPENFILES /Afbryd /S system /U brugernavn /P adgangskode /ID *

Openfiles.exe udfører perfekt opgaven med at liste alle åbne filer sammen med procesnavnene, men det kan ikke med magt dræbe processer. Dette fremragende (men oversete) indbyggede konsolværktøj kan dog være praktisk, når du hurtigt vil finde et procesnavn, der bruger en fil, eller for at afbryde forbindelsen til en fil, som en netværksbruger får adgang til via en delt mappe - uden at være afhængig af en tredjepart opløsning.

5. Åbnede FilesView

Åbnede FilesView fra Nirsoft viser listen over alle åbne filer på dit system. For hver åbnet fil vises yderligere information: håndteringsværdi, læse-/skrive-/sletadgang, filposition, processen der åbnede filen, og mere... Du kan eventuelt også lukke en eller flere åbnede filer eller lukke processen, der åbnede disse filer.

Find hvilken proces der har låst en fil

Du kan lukke processer for valgte filer eller lukke valgte filhåndtag. Håndtagsnummeret er repræsenteret i hex-værdier, mens openfiles.exe-konsolværktøjet viser det i det normale format. Dette værktøj lader dig også tilføje en kontekstmenuindstilling for hurtigt at finde den proces, der i øjeblikket bruger en fil, via højrekliksmenuen. Kontekstmenuindstillingen / kommandolinjeunderstøttelse, mener jeg, er en af ​​de mest nyttige funktioner, der tilbydes af OpenedFilesView.


En lille anmodning: Hvis du kunne lide dette opslag, så del venligst dette?

En "lille" andel fra dig ville virkelig hjælpe meget med væksten af ​​denne blog. Nogle gode forslag:
  • Fastgør det!
  • Del det på din yndlingsblog + Facebook, Reddit
  • Tweet det!
Så mange tak for din støtte, min læser. Det tager ikke mere end 10 sekunder af din tid. Del-knapperne er lige nedenfor. :)

Ezoicrapporter denne annonce