Kā identificēt procesu, kas bloķējis failu sistēmā Windows

Mēģinot izdzēst failu vai mapi, ko izmanto process, tiek parādīts dialoglodziņš Fails tiek izmantots, un tiek parādīts tās programmas nosaukums, kura ir bloķējusi failu.

Tomēr ir gadījumi, kad dialoglodziņā “Fails tiek lietots” netiek parādīts tā procesa nosaukums, kuram ir bloķēts fails, kuru mēģināt dzēst. Dažos gadījumos dialoglodziņā tiks parādīts “darbība nevar tikt pabeigta, jo fails ir atvērts cits process“.

Atrodiet, kurš process ir bloķējis failu

Lai izpētītu procesus un bloķētos failus, Windows Sysinternals Process Explorer, iespējams, ir pirmā iespēja, kas ienāk prātā lielākajai daļai lietotāju. Tomēr ir divi iebūvētie risinājumi lai parādītu pašreizējo atvērto failu sarakstu kopā ar atbilstošo procesu nosaukumiem.

Atrodiet, kurš process ir bloķējis failu, izmantojot:

  1. Resursu pārraudzītājs (resmon.exe)
  2. Process Explorer no Microsoft Sysinternals
  3. Rokturis no Microsoft Sysinternals
    • Atrodiet faila turi, izmantojot labās pogas izvēlni
  4. Openfiles.exe iebūvētais konsoles rīks
    • Iespējot vietējo failu rokturu izsekošanu
    • Skatiet atvērtos failus un atbilstošo procesu nosaukumus
    • Atvienojiet failus, kas atvērti no koplietotajām mapēm
  5. OpenedFilesView no Nirsoft.net (trešā puse)

1. Resursu monitors

Resursu pārraugs (resmon.exe) ir iebūvēts rīks, kam ir daudz noderīgu funkciju. Izmantojot Resource Monitor, jūs varat izsekot pašreizējam tīkla un interneta lietojumam, skatiet saistītos rokturus bloķēti faili, kā arī pārvaldīt procesus tāpat kā izmantojot uzdevumu pārvaldnieku.

Lai atrastu procesa nosaukumu, kuram ir bloķēts fails, noklikšķiniet uz cilnes CPU, tekstlodziņā Saistītie rokturi ierakstiet faila nosaukumu vai tā daļu.

Atrodiet, kurš process ir bloķējis failu

Mēs jau iepriekš esam aplūkojuši Resursu monitoru. Apskatiet šos rakstus:

  • Kā izmantot resursu monitoru, lai atrastu, kurš process ir bloķējis failu?
  • Kura programma izmanto visu jūsu interneta joslas platumu? Izmantojiet Resource Monitor, lai to atrastu

2. Process Explorer

Process Explorer nav nepieciešams ievads. Programmā Process Explorer viss, kas jums jādara, ir jāizmanto funkcija Atrast un jāievada faila nosaukums. Tas parāda procesu, kas piekļūst failam.

Atrodiet, kurš process ir bloķējis failu

Ja nepieciešams, apakšējā rūts skatā varat aizvērt faila turi.

Process Explorer ir jāpalaiž kā administratoram, lai pārvaldītu procesus, kas darbojas paaugstinātā līmenī. Lai paaugstinātu Process Explorer, noklikšķiniet uz izvēlnes Fails → Rādīt visu procesu informāciju.

Apskatiet šos ar Process Explorer saistītos rakstus:

  • Kā izdzēst spītīgu neizdzēšamu failu vai mapi sistēmā Windows?
  • Atrodiet, kura programma pašlaik izmanto jūsu tīmekļa kameru
  • Kā atrast, kura programma izraisīja nezināmu kļūdas ziņojumu?
  • Ko nozīmē neizdevās uzskaitīt objektus konteinerā?

3. Rokturis no Windows Sysinternals

Rokturis ir Microsoft Sysinternals utilīta, kas parāda informāciju par atvērtiem rokturiem jebkuram sistēmas procesam. Varat to izmantot, lai skatītu programmas, kurām ir atvērts fails, vai skatītu objektu tipus un visu programmas rokturu nosaukumus. Rokturis ir kā komandrindas versija Process Explorer.

Piezīme: Rokturim v4.21 ir a maza kļūda kur tas vienmēr ziņo "Nav atrasts atbilstošs rokturis", ja diska burts ir ar lielo burtu. Cerams, ka Microsoft to izlabos nākamajā atjauninājumā.

No an admin komandu uzvedne logā izmantojiet komandrindas sintaksi, lai atrastu procesu, kurā tiek atvērts fails:

hand.exe -u faila nosaukums_ar_ceļu

Ja faila nosaukumā ir atstarpes, ievietojiet to pēdiņās.

Piemērs:

hand.exe -a -u "c:\users\ramesh\desktop\Manndate-form.pdf"
atrodiet, kurš process ir bloķēts fails - sysinternals rokturis

(Faila nosaukuma pieminēšana bez ceļa var nebūt piemērota katrā situācijā. Ieteicams vienmēr iekļaut pilnu ceļu.)

Izvade parāda procesa nosaukumu, procesa identifikatoru, lietotāja vārdu, bloķētā (mērķa) faila nosaukumu ar ceļu.

Sysinternals rokturis: komandrindas argumenti

lietojums: rokturis [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [vārds] [-nobanner]
-a Izdzēst visu roktura informāciju.
-l Vienkārši parādiet sadaļu rokturus, kuru pamatā ir lapas fails.
-c Aizver norādīto rokturi (interpretē kā heksadecimālu skaitli).
Process ir jānorāda pēc tā PID. BRĪDINĀJUMS: rokturu aizvēršana var izraisīt lietojumprogrammas vai sistēmas nestabilitāti.
-y Neprasiet apstiprināt roktura aizvēršanu.
-s Katra atvērtā roktura veida izdruku skaits.
-u Meklējot rokturus, parādiet īpašnieka lietotājvārdu.
-lpp Izgāztuves rokturi, kas pieder procesam (pieņemts daļējs nosaukums).
nosaukums Meklēt objektu rokturus ar (fragments pieņemts).
- no baneris Nerādiet palaišanas reklāmkarogu un autortiesību ziņojumu.

Neviens arguments neizdzēsīs visas failu atsauces.

Pievienojiet Sysinternals rokturi ar peles labo pogu noklikšķiniet uz izvēlnes

Varat pievienot Sysinternals Handle failu labās pogas noklikšķināšanas izvēlnei, lai ātri atrastu programmu, kas ir bloķējusi failu. Lai to pievienotu konteksta izvēlnei, veiciet šīs darbības:

  1. Lejupielādēt Rokturis no Microsoft Sysinternals vietnes.
  2. Kopējiet failus rokturis.exe & hand64.exe uz mapi, piemēram, d:\rīki
  3. Kopējiet šīs koda rindiņas Notepad un saglabājiet failu kā find_handle.vbs uz pastāvīgu atrašanās vietu.
    "Palaiž Sysinternals Handle.exe utilītu ar faila nosaukuma argumentu. © Ramesh Srinivasan - https://winhelponline.com/blog. Izveidošanas datums: 2008. gada 29. marts. Atjaunināšanas datums: 2019. gada 11. jūnijs. 'Visām Windows versijām, tostarp Windows 10 Option Explicit. Dim objShell, WshShell, objFSO, sBaseKey, sFilename. Set objShell = CreateObject ("Apvalks. Pieteikums") Iestatīt WshShell = CreateObject ("WScript. Apvalks") Iestatīt objFSO = CreateObject("Skriptēšana. FileSystemObject") Ja WScript. Argumenti. Skaits = 0 Tad sBaseKey = "HKCU\Software\Classes\*\shell\" WshShell. RegWrite sBaseKey & "FindHandle\", "Find Handle", "REG_SZ" WshShell. RegWrite sBaseKey & "FindHandle\command\", "wscript.exe " & & _ WScript. ScriptFullName & & " " & & "%1" &, "REG_SZ" Citādi Ja objFSO.FileExists (WScript. Argumenti (0)) = patiess, tad sFilename = lcase (WScript. Argumenti (0)) objShell. ShellExecute "cmd.exe", "/k d:\tools\handle.exe -a -u " & _ & sFilename &, "", "runas", 1 Beigas If. Beigas Ja

    Piezīme: Sysinternals Handle.exe ceļš ir iekodēts kā d:\tools\handle.exe iepriekš minētajā skriptā. Ja programma atrodas citā ceļā, attiecīgi modificējiet ceļu skriptā. Operētājsistēmā Windows 64 bitu varat izmantot jebkuru no tām rokturis.exe vai hand64.exe

  4. Dubultklikšķi find_handle.vbs lai reģistrā pievienotu konteksta izvēlnes ierakstu. Jums tas būs jādara tikai vienu reizi. Taču, ja pārvietojat skriptu uz citu mapi, jums būs vēlreiz jāveic dubultklikšķis uz tā, lai atjauninātu ceļu reģistrā.
  5. Jūs redzēsiet Atrodiet rokturi opciju, kad ar peles labo pogu noklikšķiniet uz faila. Noklikšķinot uz tā, tiks palaists skripts, kas savukārt palaiž hand.exe ar faila nosaukuma argumentu, lai atrastu procesu, kurā fails ir bloķēts.atrodiet, kurš process ir bloķēts fails - sysinternals rokturis

Lai noņemtu Atrodiet rokturi konteksta izvēlnes ierakstu, startējiet reģistra redaktoru (regedit.exe) un izdzēsiet šo atslēgu:

HKEY_CURRENT_USER\Software\Classes\*\shell\FindHandle

4. OpenFiles.exe — iebūvēts konsoles rīks

Vēl viens iebūvētais rīks, ko izmantosim, ir Openfiles.exe — konsoles rīks, kas operētājsistēmā Windows nav jauns. Sākotnēji tas tika ieviests 2000. gadā kā daļa no Windows Resource Kit 2000/2003 rīkiem. Šī utilīta pēc noklusējuma tika iekļauta operētājsistēmā Windows Vista un jaunākās versijās (tostarp Windows 10). Openfiles parāda pašlaik atvērto failu sarakstu no vietējām vai koplietotajām mapēm, kā arī roktura ID un procesa izpildāmā nosaukumu. Šis rīks arī ļauj atvienot vienu vai vairākus failus, kas tiek atvērti attālināti no koplietotās mapes.

Pirmo reizi iespējojiet globālo karogu “Maintain Objects List”.

Pirmkārt, lai iespējotu vietējo failu rokturu izsekošanu, jums ir jāieslēdz karodziņš “uzturēt objektu sarakstu”, izpildot šādu komandu no administratora komandu uzvednes.

openfiles /local ieslēgts

Jūs redzēsit šādu ziņojumu:

INFORMĀCIJA: pašlaik ir iespējots sistēmas globālais karodziņš “uzturēt objektu sarakstu”.

Šī komanda būs jāpalaiž tikai pirmo reizi. Pēc tam restartējiet Windows, lai izmaiņas stātos spēkā.

Skatiet atvērtos failus un atbilstošo procesu nosaukumus

Pēc Windows restartēšanas no an admin komandu uzvedne logs, ierakstiet:

atvērtos failus

Šeit tabulas formātā ir norādīts faila/roktura ID, procesa nosaukums un lokāli atvērto vai attālināti, izmantojot vietējos koplietošanas punktus atvērto failu saraksts.

Lai skatītu izvadi saraksta vai CSV formātā, izmantojiet parametru /query.

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

Lai kopētu izvadi starpliktuvē, ievadiet izvadi uz Clip.exe, kā norādīts tālāk. Pēc tam ielīmējiet izvadi Notepad vai jebkurā citā jūsu izvēlētā redaktorā.

openfiles |klips
Atrodiet, kurš process ir bloķējis failu
openfiles /query /FO LIST |klips. openfiles /query /FO CSV |klips
Atrodiet, kurš process ir bloķējis failu

Lai iegūtu papildinformāciju par komandu uzvednes izvades kopēšanu starpliktuvē vai izvades saglabāšanu failā, skatiet rakstu Kā kopēt komandu uzvednes izvades tekstu starpliktuvē vai saglabāt failā?

Lai noskaidrotu, vai programma izmanto noteiktu failu (un lai uzzinātu, kura programma), varat izmantot šo komandrindu.

atvērtie faili | findstr /i 

Piemērs:

atvērtie faili | findstr /i eiffel

Iepriekš minētajā komandā ir uzskaitīti visi atvērtie faili, kuru faila nosaukumā ir vārds “eiffel”. Šajā piemērā programmai Word 2016 pašlaik ir bloķēts fails “The Eiffel Tower.docx” (ID 4576).

Atrodiet, kurš process ir bloķējis failu

Un dialoglodziņš “Fails lietošanā” man saka to pašu.

Atrodiet, kurš process ir bloķējis failu

Atvienojiet attāli atvērtos failus no koplietotās mapes.

Lai atvienotu failus, kas atvērti no koplietotās mapes un varētu dzēst, pārdēvēt failu vai modificēt saturu, izmantojiet /disconnect parametrs, lai pārtrauktu savienojumus ar šo failu. Šeit ir komandrindas opcijas.

OPENFILES /Atvienot [/S sistēmu [/U lietotājvārds [/P [parole]]]] {[/ID id] [/A accessedby] [/O openmode]} [/OP openfile] Apraksts: ļauj administratoram atvienot failus un mapes, kas ir attālināti atvērti, izmantojot koplietotu mapi. Parametru saraksts: /S sistēma Norāda attālo sistēmu, ar kuru izveidot savienojumu. /U [domēns\]lietotājs Norāda lietotāja kontekstu, kurā komanda jāizpilda. /P [parole] Norāda paroli dotajam lietotāja kontekstam. /ID id Norāda atvērto failu atvienošanu pēc faila ID. Var izmantot aizstājējzīmi “*”. /A accessedby Norāda atvienot visus atvērtos failus pēc vērtības "accessedby". Var izmantot aizstājējzīmi “*”. /O openmode Norāda atvienot visus atvērtos failus pēc "openmode" vērtības. Derīgās vērtības ir Read, Write vai Read/Write. Var izmantot aizstājējzīmi “*”. /OP openfile Norāda, lai atvienotu visus atvērtos failu savienojumus, kas izveidoti ar noteiktu "atvērtā faila" nosaukumu. Var izmantot aizstājējzīmi “*”. /? Parāda šo palīdzības ziņojumu. Piemēri: OPENFILES /Atvienot /? OPENFILES /Atvienot /ID 1 OPENFILES /Atvienot /Lietotājvārds OPENFILES /Atvienot /O Lasīt/rakstīt OPENFILES /Atvienot /OP "c:\My Documents\somedoc.doc" /ID 234 OPENFILES /Atvienot /S sistēmu /U lietotājvārds /ID 5 OPENFILES /Atvienot /S sistēmu /U lietotājvārds /P parole /ID*

Openfiles.exe lieliski veic visu atvērto failu sarakstu kopā ar procesu nosaukumiem, taču tas nevar piespiedu kārtā iznīcināt procesus. Tomēr šis lieliskais (bet aizmirstais) iebūvētais konsoles rīks var noderēt, ja vēlaties ātri atrast procesa nosaukumu, kas izmanto failu vai atvienot failu, kuram tīkla lietotājs piekļūst, izmantojot koplietotu mapi — bez atkarības no trešās puses risinājums.

5. OpenedFilesView

OpenedFilesView no Nirsoft parāda visu jūsu sistēmā atvērto failu sarakstu. Par katru atvērto failu tiek parādīta papildu informācija: roktura vērtība, lasīšanas/rakstīšanas/dzēšanas piekļuve, faila pozīcija, process kas atvēra failu, un vēl... Ja vēlaties, varat arī aizvērt vienu vai vairākus atvērtos failus vai aizvērt procesu, ar kuru šie faili tika atvērti. failus.

Atrodiet, kurš process ir bloķējis failu

Varat aizvērt atlasīto failu procesus vai aizvērt atlasīto failu rokturus. Roktura numurs ir attēlots hex vērtībās, savukārt konsoles rīks openfiles.exe to parāda parastajā formātā. Šis rīks arī ļauj pievienot konteksta izvēlnes opciju, lai ātri atrastu procesu, kurā pašlaik tiek izmantots fails, izmantojot labās pogas izvēlni. Konteksta izvēlnes opcija / komandrindas atbalsts, manuprāt, ir viena no visnoderīgākajām OpenedFilesView piedāvātajām funkcijām.


Viens neliels lūgums: ja jums patika šis ieraksts, lūdzu, kopīgojiet to?

Viena "niecīga" daļa no jums nopietni palīdzētu šī emuāra izaugsmei. Daži lieliski ieteikumi:
  • Piespraud to!
  • Kopīgojiet to savā iecienītākajā emuārā + Facebook, Reddit
  • Tvīto to!
Tāpēc liels paldies par atbalstu, mans lasītāj. Tas neaizņems vairāk par 10 sekundēm jūsu laika. Kopīgošanas pogas atrodas tieši zemāk. :)

Ezoicziņot par šo sludinājumu