Jak identifikovat proces, který zamkl soubor v systému Windows

How Identify Process That Has Locked File Windows

otevřené soubory

Když se pokusíte odstranit soubor nebo složku, která je používána procesem, Dialog Používá se soubor Zobrazí se název programu, který soubor uzamkl.



Existují však případy, kdy dialogové okno „Používaný soubor“ nezobrazuje název procesu, který má zámek u souboru, který se pokoušíte smazat. V některých případech se v dialogovém okně zobrazí „akci nelze dokončit, protože soubor je otevřen v jiný proces '.



Zjistěte, který proces uzamkl soubor



Pro zkoumání procesů a uzamčených souborů je Windows Sysinternals Process Explorer pravděpodobně první možností, která většině uživatelů přijde na mysl. Existují však dva integrovaná řešení pro zobrazení aktuálního otevřeného seznamu souborů spolu s odpovídajícími názvy procesů.

Zjistěte, který proces uzamkl soubor, pomocí:

  1. Monitor prostředků (resmon.exe)
  2. Process Explorer od společnosti Microsoft Sysinternals
  3. Rukojeť od společnosti Microsoft Sysinternals
  4. Vestavěný nástroj konzoly Openfiles.exe
  5. OpenedFilesView z Nirsoft.net (třetí strana)

1. Monitor zdrojů

Monitor prostředků (resmon.exe) je vestavěný nástroj, který má mnoho užitečných funkcí. S nástrojem Sledování zdrojů můžete sledovat aktuální využití sítě a internetu , zobrazit související úchyty pro zamčené soubory , stejně jako spravovat procesy stejně, jako byste používali Správce úloh.



Chcete-li najít název procesu, který má zamčený soubor, klepněte na kartu CPU, zadejte název souboru nebo jeho část do textového pole Přidružené popisovače.

Zjistěte, který proces uzamkl soubor

Monitorování zdrojů jsme se zabývali dříve. Podívejte se na tyto články:

2. Průzkumník procesů

Průzkumník procesů nepotřebuje představovat. V Průzkumníku procesů stačí použít funkci Najít a zadat název souboru. Ukazuje proces, který přistupuje k souboru.

Zjistěte, který proces uzamkl soubor

V dolním zobrazení podokna můžete v případě potřeby zavřít popisovač souboru.

Chcete-li spravovat procesy se zvýšeným výkonem, musíte spustit Process Explorer jako správce. Chcete-li vylepšit Průzkumníka procesů, klikněte na nabídku Soubor → Zobrazit podrobnosti pro všechny procesy .

Podívejte se na tyto články související s Process Explorer:

3. Zpracování z Windows Sysinternals

Rukojeť je nástroj od společnosti Microsoft Sysinternals, který zobrazuje informace o otevřených popisovačích pro jakýkoli proces v systému. Můžete jej použít k zobrazení programů, které mají otevřený soubor, nebo k zobrazení typů objektů a názvů všech popisovačů programu. Popisovač je jako verze příkazového řádku Průzkumník procesů .

Poznámka: Rukojeť v4.21 má malá chyba kde vždy hlásí „Nebyly nalezeny žádné odpovídající úchyty“, pokud je písmeno jednotky velkými písmeny. Doufám, že to společnost Microsoft opraví v příští aktualizaci.

Od admin Příkazový řádek v okně použijte syntaxi příkazového řádku k vyhledání procesu, při kterém je soubor otevřen:

handle.exe -a -u název_souboru_s_cesta

Pokud název souboru obsahuje mezery, uzavřete jej do uvozovek.

Příklad:

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

zjistit, který proces uzamčen soubor - sysinternals zpracovat

(Uvedení názvu souboru bez cesty nemusí nutně fungovat v každé situaci. Je vhodné vždy zahrnout celou cestu.)

Výstup zobrazuje název procesu, identifikátor procesu, uživatelské jméno, uzamčený (cílový) název souboru s cestou.

Popisovač Sysinternals: Argumenty příkazového řádku

použití: handle [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [jméno] [-nobanner]
-na Vypsat všechny informace o úchytu.
-l Stačí zobrazit úchyty sekce podporované stránkovacími soubory.
-C Zavře zadaný popisovač (interpretovaný jako šestnáctkové číslo).
Musíte určit proces podle jeho PID. VAROVÁNÍ: Zavírání popisovačů může způsobit nestabilitu aplikace nebo systému.
-Y Nezobrazovat výzvu k potvrzení blízké rukojeti.
-s Počet výtisků každého typu otevřené rukojeti.
-u Při hledání popisovačů zobrazte vlastnící uživatelské jméno.
-p Dump úchyty patřící k procesu (částečný název akceptován).
název Vyhledejte úchyty k objektům pomocí (fragment přijat).
-občan Nezobrazovat úvodní banner a zprávu o autorských právech.

Žádné argumenty nebudou výpis všech odkazů na soubory.

Přidejte popisovač Sysinternals do nabídky pravým tlačítkem

Můžete přidat Sysinternals Handle do nabídky pravým tlačítkem pro soubory, abyste rychle našli program, který soubor uzamkl. Chcete-li jej přidat do místní nabídky, postupujte takto:

  1. Stažení Rukojeť ze stránky Microsoft Sysinternals.
  2. Zkopírujte soubory handle.exe & handle64.exe do složky - např. d: tools
  3. Zkopírujte následující řádky kódu do programu Poznámkový blok a uložte soubor jako find_handle.vbs na trvalé místo.
    'Spustí nástroj Sysinternals Handle.exe s argumentem název souboru. '© Ramesh Srinivasan - https://winhelponline.com/blog' Datum vytvoření: 29. března 2008 'Aktualizováno dne: 11. června 2019' 'Pro všechny verze Windows, včetně Windows 10 Možnost Explicit Dim objShell, WshShell, objFSO, sBaseKey, sFilename Set objShell = CreateObject ('Shell.Application') Set WshShell = CreateObject ('WScript.Shell') Set objFSO = CreateObject ('Scripting.FileSystemObject') If WScript.Arguments.Count = 0 Then sBaseKey = 'HC 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

    Poznámka: Cesta Sysinternals Handle.exe je pevně zakódována jako d: tools handle.exe ve výše uvedeném skriptu. Pokud je program umístěn na jiné cestě, upravte odpovídajícím způsobem cestu ve skriptu. U 64bitového systému Windows můžete použít buď handle.exe nebo handle64.exe

  4. Dvojklik find_handle.vbs pro přidání položky kontextové nabídky do registru. Budete to muset udělat pouze jednou. Pokud však skript přemístíte do jiné složky, budete muset znovu kliknout a aktualizovat cestu v registru.
  5. Uvidíte Najděte rukojeť možnost, když kliknete pravým tlačítkem na soubor. Kliknutím na něj spustíte skript, který zase spustí handle.exe s argumentem název souboru, abyste našli proces, který má soubor uzamčen.

    zjistit, který proces uzamčen soubor - sysinternals zpracovat

Chcete-li odstranit Najděte rukojeť položka kontextové nabídky, spusťte Editor registru ( regedit.exe ) a odstraňte následující klíč:

HKEY_CURRENT_USER  Software  Classes  *  shell  FindHandle

4. OpenFiles.exe - vestavěný nástroj konzoly

Dalším integrovaným nástrojem, který použijeme, je Openfiles.exe, nástroj konzoly, který pro Windows není novinkou. Původně byl představen v roce 2000 jako součást nástrojů Windows Resource Kit 2000/2003. Tento nástroj byl ve výchozím nastavení zahrnut do systému Windows Vista a vyšších (včetně Windows 10). Openfiles zobrazuje aktuálně otevřený seznam souborů z lokálních nebo sdílených složek spolu s ID popisovače a názvem spustitelného procesu. Tento nástroj také umožňuje odpojit jeden nebo více souborů, které jsou otevřeny vzdáleně od sdílené složky.

Poprvé povolte globální příznak „Údržba seznamu objektů“

Chcete-li povolit sledování místních popisovačů souborů, musíte zapnout příznak „udržovat seznam objektů“ spuštěním následujícího příkazu z příkazového řádku správce.

otevřené soubory / místní na

Zobrazí se následující zpráva:

INFO: Globální příznak systému „udržovat seznam objektů“ je aktuálně povolen.

Tento příkaz budete muset spustit pouze poprvé. Poté restartujte Windows, aby se změna projevila.

Zobrazit otevřené soubory a odpovídající názvy procesů

Po restartování systému Windows z admin Příkazový řádek okno, zadejte:

otevřené soubory

Toto uvádí ID souboru / rukojeti, Název procesu a seznam souborů otevřených místně nebo otevřených vzdáleně prostřednictvím místních sdílených bodů ve formátu tabulky.

Chcete-li zobrazit výstup ve formátech List nebo CSV, použijte parametr / query.

openfiles / dotaz / FO LIST openfiles / dotaz / FO CSV

Chcete-li zkopírovat výstup do schránky, připojte výstup do Clip.exe, jak je uvedeno níže. Potom vložte výstup do programu Poznámkový blok nebo do jiného editoru podle vašeho výběru.

otevřené soubory | klip

Zjistěte, který proces uzamkl soubor

otevřené soubory / dotaz / SEZNAM FO | klip otevřené soubory / dotaz / FO CSV | klip

Zjistěte, který proces uzamkl soubor

Další informace o kopírování výstupu příkazového řádku do schránky nebo uložení výstupu do souboru naleznete v článku Jak zkopírovat výstupní text příkazového řádku do schránky nebo uložit do souboru?

Chcete-li zjistit, zda určitý soubor program používá (a zjistit, který program), můžete použít následující příkazový řádek.

otevřené soubory | findstr / i

Příklad:

otevřené soubory | findstr / i eiffel

Výše uvedený příkaz uvádí seznam všech otevřených souborů, které v názvu souboru obsahují slovo „eiffel“. V tomto příkladu má Word 2016 aktuálně zámek nad souborem „The Eiffel Tower.docx“ (ID 4576).

Zjistěte, který proces uzamkl soubor

A dialog „Soubor se používá“ mi říká totéž.

Zjistěte, který proces uzamkl soubor

Odpojte soubory otevřené na dálku od sdílené složky.

Chcete-li odpojit soubory otevřené ze sdílené složky, abyste mohli soubor odstranit, přejmenovat nebo upravit jeho obsah, použijte /odpojit parametr pro přerušení připojení k tomuto souboru. Zde jsou možnosti příkazového řádku.

OPENFILES / Disconnect [/ S system [/ U username [/ P [password]]]] {[/ ID id] [/ A accessedby] [/ O openmode]} [/ OP openfile] Popis: Umožňuje správci odpojit soubory a složky, které byly otevřeny vzdáleně prostřednictvím sdílené složky. Seznam parametrů: / S systém Určuje vzdálený systém, ke kterému se má připojit. / U [doména ] uživatel Určuje kontext uživatele, ve kterém by měl být příkaz spuštěn. / P [heslo] Určuje heslo pro daný kontext uživatele. / ID id Určuje odpojení otevřených souborů podle ID souboru. Lze použít zástupný znak „*“. / A accessedby Určuje odpojení všech otevřených souborů podle hodnoty „accessedby“. Lze použít zástupný znak „*“. / O openmode Určuje odpojení všech otevřených souborů podle hodnoty 'openmode'. Platné hodnoty jsou čtení, zápis nebo čtení / zápis. Lze použít zástupný znak „*“. / OP openfile Určuje odpojení všech otevřených připojení souborů vytvořených konkrétním názvem „otevřeného souboru“. Lze použít zástupný znak „*“. /? Zobrazí tuto nápovědu. Příklady: OPENFILES / Odpojit /? OPENFILES / Odpojit / ID 1 OPENFILES / Odpojit / Uživatelské jméno OPENFILES / Odpojit / O Číst / Zapisovat OPENFILES / Odpojit / OP 'c:  Moje dokumenty  somedoc.doc' / ID 234 OPENFILES / Odpojit / S systém / U uživatelské jméno / ID 5 OPENFILES / Odpojit / S systém / U uživatelské jméno / P heslo / ID *

Openfiles.exe dokonale zvládá výpis všech otevřených souborů spolu s názvy procesů, ale nemůže násilně zabíjet procesy. Tento vynikající (ale přehlížený) vestavěný nástroj konzoly však může být užitečný, když chcete rychle najít název procesu, který používá soubor, nebo odpojit soubor, ke kterému uživatel sítě přistupuje prostřednictvím sdílené složky - bez závislosti na řešení třetí strany.

5. OpenedFilesView

OpenedFilesView od Nirsoft zobrazí seznam všech otevřených souborů ve vašem systému. U každého otevřeného souboru se zobrazují další informace: hodnota zpracování, přístup pro čtení / zápis / mazání, poloha souboru, proces, který soubor otevřel, a další ... Volitelně můžete také zavřít jeden nebo více otevřených souborů nebo zavřít proces, který otevřel tyto soubory.

Zjistěte, který proces uzamkl soubor

Můžete zavřít procesy vybraných souborů nebo zavřít vybrané úchyty souborů. Číslo popisovače je reprezentováno v hexadecimálních hodnotách, zatímco nástroj konzoly openfiles.exe jej zobrazuje v normálním formátu. Tento nástroj také umožňuje přidat možnost kontextové nabídky pro rychlé vyhledání procesu, který aktuálně používá soubor, pomocí nabídky pravého tlačítka myši. Podpora kontextového menu / podpora příkazového řádku, považuji to za jednu z nejužitečnějších funkcí nabízených OpenedFilesView.


Jedna malá žádost: Pokud se vám tento příspěvek líbil, sdílejte ho prosím?

Jedno „malé“ sdílení od vás by vážně hodně pomohlo s růstem tohoto blogu. Několik skvělých návrhů:
  • Připnout!
  • Sdílejte to na svém oblíbeném blogu + Facebook, Reddit
  • Tweetujte to!
Moc vám děkuji za podporu, čtenáři. Nebude to trvat déle než 10 sekund vašeho času. Tlačítka pro sdílení jsou vpravo dole. :)