題 找出在Windows中鎖定文件或文件夾的進程


如何找出在Windows中鎖定文件或文件夾的進程?

例如,在嘗試刪除文件夾時,Windows會報告:

無法完成操作,因為該文件夾在另一個程序中打開

與文件相同但是如何找出當前正在使用它的程序或應用程序並阻止我刪除文件或文件夾?


554
2018-03-09 14:05


起源


看到 這個ServerFault問題。 - John Fouhy
重複: superuser.com/questions/13291/how-do-i-delete-a-locked-file - heavyd
你的文件是視頻嗎?您可能會發現Windows資源管理器本身正在“使用”該文件... - DisgruntledGoat
這怎麼重複?他是 特別 詢問如何找出鎖定文件的進程,而不是如何刪除鎖定的文件。 - b1nary.atr0phy
我不能在這裡添加一個內置的,更簡單的答案,因為它被錯誤地標記為欺騙,也不能將其添加到其他線程,因為這僅適用於XP。但無論如何,對於帶有資源監視器的Windows版本(在搜索欄中鍵入它),請轉到CPU選項卡/關聯句柄,然後搜索文件或文件夾。 - jontyc


答案:


PowerShell方法:

IF((Test-Path -Path $FileOrFolderPath) -eq $false) {
    Write-Warning "File or directory does not exist."       
}
Else {
    $LockingProcess = CMD /C "openfiles /query /fo table | find /I ""$FileOrFolderPath"""
    Write-Host $LockingProcess
}

openfiles 命令需要通過運行來啟用對本地文件的支持 openfiles /local on 並重新啟動。

更多細節 如何找出在Windows中鎖定文件或文件夾的進程


38
2018-04-26 02:59



出於某種原因,這只是為我返回一個空字符串。我也在管理員模式下運行PS ISE。 - Dib
必須首先啟用該功能 openfiles /local on - mstrange
不幸, openfiles 似乎不適用於64位Windows: ERROR: The target system must be running a 32 bit OS. - Thomas S.
適用於Win10 64 - Michael
運行這個給了我相同的Access是我原來得到的拒絕錯誤,然後總是打印出不存在的錯誤消息。但是,下面的答案給了我所需的信息 - IIS正在鎖定我需要更改的目錄。 - Chris Thompson


對於Windows 7,8和10,您可以使用內置的 資源監控 為了這。

  1. 打開 資源監控,可以找到
    • 通過搜索 resmon.exe 在開始菜單中,或
    • 作為一個按鈕 性能 你的標籤 任務管理器
  2. 打開 中央處理器 選項卡並使用中的搜索字段 相關句柄 部分
    • 在下面的屏幕截圖中用藍色箭頭指向

如果不是很明顯,當您找到句柄時,可以通過查看圖像和/或PID列來識別該過程。

然後,如果能夠執行此操作,則可以關閉該應用程序,或者只需右鍵單擊該行,您就可以選擇在此處終止該進程。十分簡單!

Resource Monitor screenshot


482
2017-09-10 11:43



注意:資源監視器在我的情況下沒有找到任何關聯的句柄,而Process Explorer(如 如上所述)做了。 - ComFreek
@ComFreek嗯,ProcessExplorer在很多情況下可能會更強大,但對我來說,資源監視器總是發現應用程序鎖定了我正在嘗試做的事情。我也更喜歡它來處理Explorer,因為它就在操作系統中。無需額外下載和額外的快捷方式。 - Svish
我在Process Explorer中找不到這個,但在資源管理器中很容易找到這些說明。謝謝。 - Tatiana Racheva
@ComFreek在我的情況下,它只是另一種情況:Process Explorer沒有找到句柄,而資源監視器卻沒有。 - Uwe Keim
+1 - 這在Windows 10上也可以正常工作 - Matt Innes


有兩種選擇:

Microsoft / SysInternals Process Explorer  - 轉到查找>查找句柄或DLL。在“句柄或DLL子字符串:”文本框中,鍵入文件的路徑(例如“C:\ path \ to \ file.txt”),然後單擊“搜索”。應列出對該文件具有打開句柄的所有進程。

WhoLockMe  - Explorer擴展,添加了右鍵單擊菜單選項

注: WhoLockMe似乎無法與Win 10一起使用(至少我無法使用32位或64位版本的regsvr32.exe註冊它)。


372
2018-03-09 14:22



在Windows 7中,如果您嘗試刪除已鎖定的文件,則錯誤消息將告訴您哪個進程已鎖定 - Garry English
注意:如果您不小心,Unlocker會安裝廣告軟件。從他們的網站:“促銷功能:完全可選的Delta工具欄。” - Julian Knight
@GarryEnglish出於某種原因並非總是這樣。我只需要使用procexp告訴我記事本++對文件夾有鎖定。 Windows 7無法告訴我罪魁禍首。 - GuiSim
@ jpmc26不,WhoLockMe在Windows 7上不起作用。 - ceving
@GarryEnglish-如GuiSim所述,這肯定並非總是如此,根據我的經驗,情況很少如此。 - dgo


看一下 Process Explorer (procexp.exe)。

從介紹:

有沒有想過哪個程序有特定的文件或目錄打開?現在你可以找到答案。

要找出使用特定文件的進程,請按照下列步驟操作:

  1. 查找句柄或DLL .. 或者直接按 按Ctrl+F

    Enter image description here

  2. 輸入文件名,然後按 搜索

    Enter image description here

  3. Process Explorer將列出具有打開文件句柄的所有進程。單擊條目以將過程集中在主窗口中。

    Enter image description here

  4. 或者,您甚至可以通過下部窗格手動關閉手柄(按Ctrl+大號):

    Enter image description here


181
2018-03-12 03:35



Process Hacker也可以做到。 - Benoit
如 另一個答案 提及, 處理 是SysInternals的命令行工具,它也將完成此任務。 - heavyd
我忘了在文件夾中打開一個cmd進程,過程瀏覽器幫助我注意到它。 - davejal
對於Google員工,請注意當前版本的PE似乎不再支持 關閉處理 - MickyD
無法在Win10 64位1709中工作 - K7AAY


LockHunter 可以解鎖任何可能鎖定您的文件或文件夾的處理程序。與類似的免費軟件不同,它支持32位和64位Windows。

它是一個免費工具,用於刪除被您不知道的內容阻止的文件。 LockHunter對於抵禦惡意軟件和其他無理由阻止文件的程序非常有用。與其他類似工具不同,它會將文件刪除到回收站中,以便在錯誤刪除時恢復它們。

  • 顯示鎖定文件或文件夾的進程
  • 允許解鎖,刪除,複製或重命名鎖定的文件
  • 允許殺死鎖定進程
  • 允許從硬盤驅動器中刪除鎖定進程
  • 集成到Explorer菜單中
  • 它會將文件刪除到回收站中,因此如果錯誤刪除,您可以將其還原
  • 支持32位和64位Windows

23
2018-03-13 22:06



前兩個答案對我不起作用,下一個受歡迎的答案要么被我的防火牆阻止,要么警告不要去我的Chrome! LockHunter工作得很好。 - user3885927
當其他人沒有時,運氣獵人為我工作 - SheldonH


EMCO UnlockIT 可以識別鎖定文件的過程以及解鎖文件,以便您可以刪除/編輯/移動它。該程序是完全免費的,雖然較新的版本比原版(它有一個普通的,無紋理的GUI,但是幾乎瞬間加載,沒有惱人的閃屏)加載得更慢,更臃腫。此外,原始版本用於在觸發您提到的錯誤時自動彈出,允許您立即解鎖文件並執行您嘗試的操作。

儘管如此,UnlockIT是一個非常有用的程序,它提供了Windows中嚴重缺失的基本功能。它是我在我工作的所有Windows計算機上安裝的標準工具包之一。


10
2018-03-12 03:37



@John:嗯,它確實識別了鎖定文件的程序。您仍然可以通過任務管理器手動終止進程。但是,解鎖文件通常更簡單(特別是當它是大多數時間鎖定文件的資源管理器時)而不是殺死鎖定它的進程(通常是因為訪問了文件並使文件處理程序保持打開狀態)由於程序故障)。 - Lèse majesté


這是我的發現和解決方案。

順便說一下,上述答案都沒有解決我的問題。

我甚至嘗試使用UNLOCKER,這被證明是毫無價值的。

我的問題是Memeo Autosync Backup

顯然,這個備份過程留下了足夠的“幽靈般的文件”。每當我ALT-TAB我的計算機(Windows Professional XP)時,這個“幽靈般的文件”就會出現,也就是說,當我的任務欄上只有一個可見時,我會看到兩個MS Excel程序正在運行。

當我認為它可能是SYMANTEC端點(反病毒)保護時,我遇到了這個解決方案;並禁用該程序。但是,我一直收到錯誤消息:

無法刪除(LARGE.xls文件):它正由另一個人或程序使用。關閉可能正在使用此文件的所有程序,然後重試。

我隨後一直看到Memeo關於“同步”的通知並退出程序。

隨後,沒有錯誤。

對你而言,它可能是任何這些背景保存。


2
2017-10-13 09:43





如果您不知道該程序所使用的文件,那麼您可以轉到我的電腦;右鍵點擊;選擇管理。在“系統工具”>“共享文件夾”>“打開文件”下,您應該能夠看到鎖定文件的用戶。您可以從此處關閉文件,然後您可以執行重命名或刪除文件的任務。希望這可以幫助


2
2018-02-01 06:42



這僅適用於共享文件夾。 - sweetfa