Kako prepoznati postopek, ki je zaklenil datoteko v sistemu Windows

How Identify Process That Has Locked File Windows

openfiles

Ko poskušate izbrisati datoteko ali mapo, ki jo postopek uporablja, se Pogovorno okno »Datoteka v uporabi« se prikaže ime programa, ki je zaklenil datoteko.



Vendar obstajajo primeri, da pogovorno okno »Datoteka v uporabi« ne prikaže imena postopka, ki ima zaklenjeno datoteko, ki jo želite izbrisati. V nekaterih primerih se v pogovornem oknu prikaže »dejanja ni mogoče dokončati, ker je datoteka odprta v drug postopek '.



Poiščite, kateri postopek je zaklenil datoteko



Za preiskovanje procesov in zaklenjenih datotek je verjetno prva možnost, ki si jo večina uporabnikov omisli Windows Sysinternals Process Explorer. Vendar sta dva vgrajene rešitve za prikaz trenutnega seznama odprtih datotek skupaj z ustreznimi imeni procesov.

Poiščite, kateri postopek je zaklenil datoteko, s pomočjo:

  1. Nadzornik virov (resmon.exe)
  2. Process Explorer podjetja Microsoft Sysinternals
  3. Ročaj iz Microsoft Sysinternals
  4. Vgrajeno orodje za konzolo Openfiles.exe
  5. OpenedFilesView s strani Nirsoft.net (tretja oseba)

1. Nadzornik virov

Nadzornik virov (resmon.exe) je vgrajeno orodje s številnimi uporabnimi funkcijami. Z Nadzornikom virov lahko sledenje trenutni uporabi omrežja in interneta , si oglejte povezane ročice za zaklenjene datoteke , kot tudi upravljanje procesov, tako kot bi uporabljali upravitelja opravil.



Če želite poiskati ime procesa, v katerem je datoteka zaklenjena, kliknite jeziček CPU, v besedilno polje Associated Handles vnesite ime datoteke ali njen del.

Poiščite, kateri postopek je zaklenil datoteko

Že prej smo obravnavali Resource Monitor. Oglejte si te članke:

2. Raziskovalec procesov

Process Explorer ne potrebuje uvoda. V Raziskovalcu procesov morate samo uporabiti funkcijo Najdi in vnesti ime datoteke. To prikazuje postopek dostopa do datoteke.

Poiščite, kateri postopek je zaklenil datoteko

V pogledu spodnjega podokna lahko po potrebi zaprete ročaj datoteke.

Za upravljanje procesov, ki se izvajajo povišano, morate zagnati Raziskovalec procesov kot skrbnik. Za dvig Raziskovalca procesov kliknite meni Datoteka → Pokaži podrobnosti za vse procese .

Oglejte si te članke, povezane z Process Explorerjem:

3. Upravljajte s sistemom Windows Sysinternals

Ročaj je pripomoček podjetja Microsoft Sysinternals, ki prikazuje informacije o odprtih ročajih za kateri koli postopek v sistemu. Uporabite ga lahko za ogled programov, ki imajo odprto datoteko, ali za ogled vrst predmetov in imen vseh ročajev programa. Handle je kot različica ukazne vrstice Process Explorer .

Opomba: Ročaj v4.21 ima a majhna napaka kjer vedno poroča »Ni najdenih ujemajočih se ročajev«, če je črka pogona v velikih črkah. Upam, da jo bo Microsoft popravil v naslednji posodobitvi.

Iz an admin Ukazni poziv v sintaksi ukazne vrstice poiščite postopek, v katerem je datoteka odprta:

handle.exe -a -u ime_datoteke_s_potjo

Če ime datoteke vsebuje presledke, jo zaprite v dvojne narekovaje.

Primer:

handle.exe -a -u 'c:  users  ramesh  desktop  Mandate-form.pdf'

poiščite, kateri postopek je zaklenjena datoteka - ročaj sysinternals

(Omenitev imena datoteke brez poti morda ne bo delovala v vsaki situaciji. Priporočljivo je, da vedno vključite celotno pot.)

Izhod prikazuje ime procesa, identifikator procesa, uporabniško ime, ime zaklenjene (ciljne) datoteke s potjo.

Ročaj Sysinternals: Argumenti ukazne vrstice

uporaba: ročaj [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [ime] [-nobanner]
-do Izbriši vse informacije o ročajih.
-l Pokažite samo ročaje odsekov, ki jih podpirajo datoteke datotek.
-c Zapre navedeni ročaj (razlaga se kot šestnajstiško število).
Postopek morate določiti s PID. OPOZORILO: Ročaji za zapiranje lahko povzročijo nestabilnost aplikacije ali sistema.
-in Ne zahtevajte potrditve natančnega ročaja.
-s Število izpisov vsake vrste odprtega ročaja.
-u Pri iskanju ročajev pokažite lastniško uporabniško ime.
-p Ročaji za odlaganje, ki pripadajo procesu (delno ime je sprejeto).
ime Poiščite ročaje za predmete s (fragment sprejet).
-nobanner Ne prikazujte zagonske pasice in sporočila o avtorskih pravicah.

Noben argument ne bo izpisal vseh sklicev na datoteke.

Dodajte Sysinternals Handle v meni z desnim klikom

Sysinternals Handle lahko dodate v meni z desnim klikom za datoteke, da hitro najdete program, ki je datoteko zaklenil. Če ga želite dodati v kontekstni meni, sledite tem korakom:

  1. Prenesi Ročaj s spletnega mesta Microsoft Sysinternals.
  2. Kopirajte datoteke handle.exe & handle64.exe v mapo - npr. d: orodja
  3. Kopirajte naslednje vrstice kode v Beležnico in datoteko shranite kot find_handle.vbs na stalno lokacijo.
    'Zažene pripomoček Sysinternals Handle.exe z argumentom imena datoteke. '© Ramesh Srinivasan - https://winhelponline.com/blog' Datum ustvarjanja: 29. marec 2008 'Datum posodobitve: 11. junij 2019' Za vse različice sistema Windows, vključno z možnostjo Windows 10 Izrecno Dim objShell, WshShell, objFSO, sBaseKey, sFilename Nastavi objShell = CreateObject ('Shell.Application') Set WshShell = CreateObject ('WScript.Shell') Set objFSO = CreateObject ('Scripting.FileSystemObject') If WScript.Arguments.Count = 0 Potem sBaseKCE  0 Software  Classes  *  shell  'WshShell.RegWrite sBaseKey &' FindHandle  ',' Find Handle ',' REG_SZ 'WshShell.RegWrite sBaseKey &' FindHandle  command  ',' wscript.exe '&' '' '& _ WScript.ScriptFullName & '' '' & '' & '' '' & '% 1' & '' '', 'REG_SZ' Else If objFSO.FileExists (WScript.Arguments (0)) = True then sFilename = lcase (WScript.Arguments (0)) objShell.ShellExecute 'cmd.exe', '/kd:	oolshandle.exe -a -u' & _ '' '' & sFilename & '' '', '', ' runas ', 1 End If End If

    Opomba: Pot Sysinternals Handle.exe je trdo kodirana kot d: tools handle.exe v zgornjem skriptu. Če se program nahaja na drugi poti, ustrezno spremenite pot v skriptu. Za 64-bitni Windows lahko uporabite katero koli handle.exe ali handle64.exe

  4. Dvojni klik find_handle.vbs da dodate vnos v kontekstni meni v register. To boste morali storiti samo enkrat. Če pa skript prestavite v drugo mapo, ga boste morali znova dvoklikniti, da posodobite pot v registru.
  5. Videli boste Najdi ročaj možnost, ko z desno miškino tipko kliknete datoteko. Če kliknete nanjo, se zažene skript, ki nato zažene handle.exe z argumentom imena datoteke, da poišče postopek, v katerem je datoteka zaklenjena.

    poiščite, kateri postopek je zaklenjena datoteka - ročaj sysinternals

Če želite odstraniti Najdi ročaj vnos v kontekstni meni, zaženite urejevalnik registra ( regedit.exe ) in izbrišite naslednji ključ:

HKEY_CURRENT_USER  Software  Classes  *  shell  FindHandle

4. OpenFiles.exe - vgrajeno orodje za konzolo

Drugo vgrajeno orodje, ki ga bomo uporabili, je Openfiles.exe, orodje za konzolo, ki v sistemu Windows ni novo. Prvotno je bil predstavljen leta 2000 kot del orodij Windows Resource Kit 2000/2003. Ta pripomoček je bil nato privzeto vključen v sistem Windows Vista in novejše različice (vključno z operacijskim sistemom Windows 10). Openfiles prikaže trenutno odprt seznam datotek iz lokalnih map ali map v skupni rabi, skupaj z ID-jem obdelave in izvedljivim imenom Process. S tem orodjem lahko prekinete povezavo ene ali več datotek, ki se na daljavo odprejo iz mape v skupni rabi.

Prvič omogočite globalno zastavico »Vzdrževanje seznama predmetov«

Najprej, da omogočite sledenje lokalnim ročicam datotek, morate vklopiti zastavico »vzdrževanje seznama predmetov«, tako da iz ukaznega poziva skrbnika zaženete naslednji ukaz.

openfiles / lokalno na

Videli boste naslednje sporočilo:

INFO: Trenutno je omogočena sistemska globalna zastava „vzdrževanje seznama predmetov“.

Ta ukaz boste morali zagnati samo prvič. Nato znova zaženite Windows, da bo sprememba začela veljati.

Oglejte si odprte datoteke in ustrezna imena procesov

Po ponovnem zagonu sistema Windows iz admin Ukazni poziv okno, vnesite:

openfiles

Tu so v obliki tabele navedeni ID datoteke / ročaja, ime procesa in seznam datotek, odprtih lokalno ali odprtih na daljavo prek lokalnih točk skupne rabe.

Če si želite ogledati rezultate v oblikah seznama ali CSV, uporabite parameter / query.

openfiles / poizvedba / FO LIST openfiles / poizvedba / FO CSV

Če želite kopirati izhod v odložišče, izhod usmerite v Clip.exe, kot je prikazano spodaj. Nato prilepite izhod v Beležnico ali kateri koli drug urejevalnik po vaši izbiri.

openfiles | posnetek

Poiščite, kateri postopek je zaklenil datoteko

openfiles / query / FO LIST | clip openfiles / query / FO CSV | clip

Poiščite, kateri postopek je zaklenil datoteko

Če želite več informacij o kopiranju izhoda ukaznega poziva v odložišče ali shranite izhod v datoteko, si oglejte članek Kako kopirati izhodno besedilo ukaznega poziva v odložišče ali shraniti v datoteko?

Če želite ugotoviti, ali določeno datoteko uporablja program (in vedeti, kateri program), lahko uporabite naslednjo ukazno vrstico.

odprte datoteke | findstr / i

Primer:

odprte datoteke | findstr / i eiffel

Zgornji ukaz navaja vse odprte datoteke, ki vsebujejo besedo 'eiffel' v imenu datoteke. V tem primeru ima Word 2016 trenutno ključavnico nad datoteko »Eifflov stolp.docx« (ID 4576).

Poiščite, kateri postopek je zaklenil datoteko

In pogovorno okno »Datoteka v uporabi« mi pove isto.

Poiščite, kateri postopek je zaklenil datoteko

Prekinite povezavo datotek, odprtih na daljavo, iz mape v skupni rabi.

Če želite prekiniti povezavo datotek, odprtih iz mape v skupni rabi, tako da jih lahko izbrišete, preimenujete ali spremenite vsebino, uporabite / odklopi parameter za rezanje povezav do te datoteke. Tu so možnosti ukazne vrstice.

OPENFILES / Prekini [/ S sistem [/ U uporabniško ime [/ P [geslo]]]] {[/ ID id] [/ A dostop do] [/ O openmode]} [/ OP openfile] Opis: Skrbniku omogoči, da odklopi datoteke in mape, ki so bile odprte na daljavo prek mape v skupni rabi. Seznam parametrov: / S system Določa oddaljeni sistem, na katerega se želite povezati. / U [domena ] uporabnik Določa uporabniški kontekst, v katerem naj se ukaz izvede. / P [geslo] Določi geslo za dani uporabniški kontekst. / ID ID Določa prekinitev povezave med odprtimi datotekami po ID-ju datoteke. Lahko se uporabi nadomestni znak '*'. / A accessedby Določa, da prekinete povezavo vseh odprtih datotek z vrednostjo »accessedby«. Lahko se uporabi nadomestni znak '*'. / O openmode Določa odklop vseh odprtih datotek z vrednostjo 'openmode'. Veljavne vrednosti so Read, Write ali Read / Write. Lahko se uporabi nadomestni znak '*'. / OP openfile Določa za prekinitev vseh povezav odprtih datotek, ustvarjenih z določenim imenom „odprta datoteka“. Lahko se uporabi nadomestni znak '*'. /? Prikaže to sporočilo o pomoči. Primeri: OPENFILES / Disconnect /? OPENFILES / Disconnect / ID 1 OPENFILES / Disconnect / Uporabniško ime OPENFILES / Disconnect / O Read / Write OPENFILES / Disconnect / OP 'c:  My Documents  somedoc.doc' / ID 234 OPENFILES / Disconnect / S system / U username / ID 5 OPENFILES / Prekini / S sistem / U uporabniško ime / P geslo / ID *

Openfiles.exe odlično opravi nalogo, da navede vse odprte datoteke skupaj z imeni procesov, vendar ne more prisilno ubiti procesov. Vendar pa je to izvrstno (vendar prezrto) vgrajeno orodje za konzolo lahko priročno, če želite hitro najti ime procesa, ki uporablja datoteko, ali odklopiti datoteko, do katere dostopa omrežni uporabnik prek mape v skupni rabi - ne glede na to na neodvisni rešitvi.

5. OpenedFilesView

OpenedFilesView iz Nirsofta prikaže seznam vseh odprtih datotek v vašem sistemu. Za vsako odprto datoteko so prikazane dodatne informacije: vrednost vrednosti, dostop do branja / pisanja / brisanja, položaj datoteke, postopek, ki je odprl datoteko, in še več ... Po želji lahko zaprete tudi eno ali več odprtih datotek ali zaprete postopek, ki odprl te datoteke.

Poiščite, kateri postopek je zaklenil datoteko

Zaprete lahko procese izbranih datotek ali zaprete izbrane ročice datotek. Številka ročice je predstavljena v šestnajstiških vrednostih, medtem ko jo orodje konzole openfiles.exe prikazuje v običajni obliki. To orodje vam omogoča tudi dodajanje možnosti kontekstnega menija za hiter postopek, ki trenutno uporablja datoteko, prek menija z desnim klikom. Možnost kontekstnega menija / podpora ukazne vrstice je po mojem mnenju ena najbolj uporabnih funkcij, ki jih ponuja OpenedFilesView.


Ena majhna prošnja: če vam je bila ta objava všeč, jo prosim delite?

Ena vaša 'drobna' delnica bi resno pomagala pri rasti tega spletnega dnevnika. Nekaj ​​odličnih predlogov:
  • Pripnete!
  • Delite ga s svojim najljubšim blogom + Facebook, Reddit
  • Cvrkujte!
Torej najlepša hvala za vašo podporo, moj bralec. Ne bo trajalo več kot 10 sekund vašega časa. Gumbi za skupno rabo so spodaj. :)