Ko poskušate izbrisati datoteko ali mapo, ki jo uporablja proces, se prikaže pogovorno okno Datoteka v uporabi, ki prikazuje ime programa, ki je zaklenil datoteko.
Vendar pa obstajajo primeri, ko pogovorno okno »Datoteka v uporabi« ne prikaže imena procesa, ki ima zaklepanje datoteke, ki jo poskušate izbrisati. V nekaterih primerih bo v pogovornem oknu prikazano »dejanja ni mogoče dokončati, ker je datoteka odprta v drug proces“.
![Poiščite, kateri proces je zaklenil datoteko](/f/c33ebd7b892a1c69cb8cbd1609bafc44.png)
Za raziskovanje procesov in zaklenjenih datotek je Windows Sysinternals Process Explorer verjetno prva možnost, ki pride na misel večini uporabnikov. Vendar pa obstajata dva vgrajene rešitve za prikaz trenutnega seznama odprtih datotek skupaj z ustreznimi imeni procesov.
Poiščite, kateri proces je zaklenil datoteko z:
- Nadzornik virov (resmon.exe)
- Process Explorer iz Microsoft Sysinternals
-
Ročaj iz Microsoft Sysinternals
- Poiščite ročaj datoteke prek menija z desnim klikom
-
Openfiles.exe vgrajeno konzolno orodje
- Omogoči sledenje lokalnim ročicam datotek
- Oglejte si odprte datoteke in ustrezna imena procesov
- Prekinite povezavo z datotekami, odprtimi iz map v skupni rabi
- OpenedFilesView iz Nirsoft.net (tretja oseba)
1. Nadzornik virov
Resource Monitor (resmon.exe) je vgrajeno orodje, ki ima veliko uporabnih funkcij. Z nadzornikom virov lahko spremljati trenutno uporabo omrežja in interneta, ogled povezanih ročajev za zaklenjene datoteke, kot tudi upravljanje procesov tako, kot bi uporabljali upravitelja opravil.
Če želite poiskati ime procesa, pri katerem je datoteka zaklenjena, kliknite zavihek CPE, vnesite ime datoteke ali njen del v besedilno polje Povezani ročaji.
Prej smo obravnavali Resource Monitor. Oglejte si te članke:
- Kako uporabiti Nadzornik virov za iskanje, kateri proces je zaklenil datoteko?
- Kateri program uporablja vso vašo internetno pasovno širino? Za iskanje uporabite Nadzornik virov
2. Raziskovalec procesov
Raziskovalec procesov ne potrebuje predstavitve. V Process Explorerju morate samo uporabiti funkcijo Najdi in vnesti ime datoteke. To prikazuje postopek, ki dostopa do datoteke.
V pogledu spodnjega podokna lahko po potrebi zaprete ročaj datoteke.
Za upravljanje procesov, ki se izvajajo s povišanimi vrednostmi, morate zagnati Process Explorer kot skrbnik. Če želite povišati Process Explorer, kliknite meni Datoteka → Prikaži podrobnosti za vse procese.
Oglejte si te članke, povezane s Process Explorerjem:
- Kako izbrisati trmasto neizbrisno datoteko ali mapo v sistemu Windows?
- Poiščite, kateri program trenutno uporablja vašo spletno kamero
- Kako ugotoviti, kateri program je povzročil neznano sporočilo o napaki?
- Kaj pomeni ni uspelo našteti objektov v vsebniku?
3. Ročaj iz sistema Windows Sysinternals
Ročaj je pripomoček podjetja Microsoft Sysinternals, ki prikazuje informacije o odprtih ročajih za kateri koli proces v sistemu. Z njim lahko vidite programe, ki imajo odprto datoteko, ali pa si ogledate vrste objektov in imena vseh ročic programa. Handle je kot različica ukazne vrstice Raziskovalec procesov.
Opomba: Ročaj v4.21 ima majhna napaka kjer vedno poroča »Ni najdenih ujemajočih se ročajev«, če je črka pogona velika. Upam, da bo Microsoft to popravil v naslednji posodobitvi.
Od an admin ukazni poziv okno, uporabite sintakso ukazne vrstice, da poiščete proces, ki odpira datoteko:
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"
(Navedba 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.
Sysinternals Handle: argumenti ukazne vrstice
uporaba: ročaj [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [ime] [-nobanner]
-a | Odstranite vse podatke o ročaju. |
-l | Samo pokaži ročke razdelkov, podprtih s stranskimi datotekami. |
-c | Zapre določeno ročko (tolmačeno kot šestnajstiško število). Postopek morate podati s PID.OPOZORILO: Zapiranje ročajev lahko povzroči nestabilnost aplikacije ali sistema. |
-y | Ne zahtevajte potrditve zaprtega ročaja. |
-s | Število tiska za vsako vrsto odprtega ročaja. |
-u | Pri iskanju ročajev pokažite lastno uporabniško ime. |
-str | Ročke za izpis, ki pripadajo procesu (delno ime je sprejeto). |
ime | Poiščite ročke za predmete z |
-nobanner | Ne prikazujte zagonske pasice in sporočila o avtorskih pravicah. |
Noben argument ne bo izpisal vseh referenc datotek.
Dodajte Sysinternals Handle v meni z desnim klikom
Sysinternals Handle lahko dodate v meni z desno tipko miške za datoteke, da hitro najdete program, ki je zaklenil datoteko. Če ga želite dodati v kontekstni meni, sledite tem korakom:
- Prenesi Ročaj s spletnega mesta Microsoft Sysinternals.
- Kopirajte datoteke handle.exe & handle64.exe v mapo – npr.
d:\orodja
- Kopirajte naslednje vrstice kode v beležnico in shranite datoteko 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 Explicit. Dim objShell, WshShell, objFSO, sBaseKey, sFilename. Nastavi objShell = CreateObject("Shell. Aplikacija") Nastavite WshShell = CreateObject("WScript. lupina") Nastavite objFSO = CreateObject("Skriptiranje. FileSystemObject") Če WScript. Argumenti. Count = 0 Potem 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" Sicer Če objFSO.FileExists (WScript. Argumenti (0)) = True Potem sFilename = lcase (WScript. Argumenti (0)) objShell. ShellExecute "cmd.exe", "/k d:\tools\handle.exe -a -u " & _ & sFilename &, "", "runas", 1 Konec Če. Konec Če
Opomba: Pot Sysinternals Handle.exe je trdo kodirana kot
d:\tools\handle.exe
v zgornjem scenariju. Če se program nahaja na drugi poti, ustrezno spremenite pot v skriptu. Za 64-bitni Windows lahko uporabite katero koli handle.exe oz handle64.exe - Dvojni klik
find_handle.vbs
da dodate vnos kontekstnega menija 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. - Videli boste Najdi Ročaj možnost, ko z desno tipko miške kliknete datoteko. Če kliknete nanj, se zažene skript, ki požene handle.exe z argumentom imena datoteke, da poišče proces, ki ima datoteko zaklenjeno.
Za odstranitev Najdi Ročaj vnos v kontekstnem meniju, zaženite urejevalnik registra (regedit.exe
) in izbrišite naslednji ključ:
HKEY_CURRENT_USER\Software\Classes\*\shell\FindHandle
4. OpenFiles.exe — vgrajeno konzolno orodje
Drugo vgrajeno orodje, ki ga bomo uporabili, je Openfiles.exe, konzolno orodje, ki ni novo za Windows. Prvotno je bil predstavljen leta 2000 kot del orodij Windows Resource Kit 2000/2003. Ta pripomoček je bil nato privzeto vključen v operacijski sistem Windows Vista in novejše (vključno z operacijskim sistemom Windows 10). Openfiles prikaže seznam trenutno odprtih datotek iz lokalnih map ali map v skupni rabi, skupaj z ID-jem ročaja in imenom izvedljive datoteke procesa. To orodje vam omogoča tudi prekinitev povezave ene ali več datotek, ki so odprte na daljavo iz mape v skupni rabi.
Prvič omogočite globalno zastavo »Vzdrževanje seznama predmetov«.
Prvič, če želite omogočiti sledenje lokalnim ročicam datotek, morate vklopiti zastavico »vzdrževanje seznama predmetov« tako, da zaženete naslednji ukaz iz ukaznega poziva skrbnika.
openfiles /local on
Videli boste naslednje sporočilo:
INFORMACIJE: Sistemska globalna zastavica 'vzdrževanje seznama objektov' je trenutno omogočena.
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, tip:
odprtih datotek
To navaja ID datoteke/ročka, ime procesa in seznam datotek, odprtih lokalno ali odprtih na daljavo prek lokalnih točk skupne rabe, v obliki tabele.
Če si želite ogledati izhod v obliki seznama ali CSV, uporabite parameter /query.
openfiles /query /FO LIST. openfiles /query /FO CSV
Če želite kopirati izhod v odložišče, ga prenesite v Clip.exe, kot je prikazano spodaj. Nato prilepite izhod v beležnico ali kateri koli drug urejevalnik po vaši izbiri.
odprte datoteke | posnetek
openfiles /query /FO LIST |posnetek. openfiles /query /FO CSV |posnetek
Za več informacij o kopiranju izhoda ukaznega poziva v odložišče ali shranjevanju izhoda 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 da veste, 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 zaklepanje datoteke »Eifflov stolp.docx« (ID 4576).
In pogovorno okno »Datoteka v uporabi« mi pove isto.
Prekinite povezavo z datotekami, odprtimi na daljavo, iz mape v skupni rabi.
Če želite prekiniti povezavo z datotekami, odprtimi iz mape v skupni rabi, tako da lahko izbrišete, preimenujete datoteko ali spremenite vsebino, uporabite /disconnect
parameter za prekinitev povezav s to datoteko. Tukaj so možnosti ukazne vrstice.
OPENFILES /Prekini povezavo [/S sistem [/U uporabniško ime [/P [geslo]]]] {[/ID id] [/A dostopa] [/O openmode]} [/OP openfile] Opis: omogoča skrbniku, da prekine povezavo z datotekami in mapami, ki so bile odprte na daljavo prek skupne rabe mapo. Seznam parametrov: /S sistem Določa oddaljeni sistem za povezavo. /U [domain\]user Določa uporabniški kontekst, v katerem naj se ukaz izvede. /P [geslo] Določa geslo za dani uporabniški kontekst. /ID id Določa prekinitev povezave med odprtimi datotekami z ID-jem datoteke. Uporabite lahko nadomestni znak "*". /A accessedby Določa prekinitev povezave z vsemi odprtimi datotekami z vrednostjo "accessedby". Uporabite lahko nadomestni znak "*". /O openmode Določa prekinitev povezave z vsemi odprtimi datotekami z vrednostjo "openmode". Veljavne vrednosti so Read, Write ali Read/Write. Uporabite lahko nadomestni znak "*". /OP openfile Določa prekinitev vseh povezav odprtih datotek, ustvarjenih z določenim imenom "odprte datoteke". Uporabite lahko nadomestni znak "*". /? Prikaže to sporočilo pomoči. Primeri: OPENFILES /Prekini povezavo /? OPENFILES /Prekini /ID 1 OPENFILES /Prekini /A uporabniško ime OPENFILES /Prekini /O Branje/Pisanje OPENFILES /Prekini povezavo /OP "c:\My Documents\somedoc.doc" /ID 234 OPENFILES /Prekini povezavo /S sistem /U uporabniško ime /ID 5 OPENFILES /Prekini /S sistem /U uporabniško ime /P geslo /ID *
Openfiles.exe odlično opravi nalogo navajanja vseh odprtih datotek skupaj z imeni procesov, vendar procesov ne more na silo ubiti. Vendar pa vam lahko to odlično (vendar spregledano) vgrajeno konzolno orodje pride prav, ko želite hitro najti ime procesa, ki uporablja datoteko ali prekiniti povezavo z datoteko, do katere omrežni uporabnik dostopa prek mape v skupni rabi – ne da bi bil odvisen od tretje osebe rešitev.
5. OpenedFilesView
OpenedFilesView iz Nirsofta prikaže seznam vseh odprtih datotek v vašem sistemu. Za vsako odprto datoteko se prikažejo dodatne informacije: vrednost ročice, dostop za branje/pisanje/brisanje, položaj datoteke, postopek ki je odprlo datoteko, in še več… Po želji lahko zaprete tudi eno ali več odprtih datotek ali zaprete postopek, ki je odprl te datoteke.
Lahko zaprete procese izbranih datotek ali zaprete ročke za izbrane datoteke. Številka ročice je predstavljena v šestnajstiških vrednostih, medtem ko jo konzolno orodje openfiles.exe prikazuje v običajni obliki. To orodje vam omogoča tudi dodajanje možnosti kontekstnega menija za hitro iskanje procesa, ki trenutno uporablja datoteko, prek menija z desnim klikom. Menim, da je možnost kontekstnega menija / podpora ukazne vrstice ena izmed najbolj uporabnih funkcij, ki jih ponuja OpenedFilesView.
Ena majhna prošnja: če vam je bila objava všeč, jo delite?
En "droben" vaš delež bi resno pomagal pri rasti tega bloga. Nekaj odličnih predlogov:- Pripnete!
- Delite ga na svoj najljubši blog + Facebook, Reddit
- Tweetajte!
![ezoik](/f/e21ab1194daa0428d27d48cfeefe4507.png)