当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何解锁被任何进程或系统锁定的文件?

作者:精品下载站 日期:2024-12-15 00:44:15 浏览:15 分类:玩电脑

如何解锁被任何进程或系统锁定的文件?


有时,当您尝试在 Windows 中删除、重命名或移动文件时,您可能会看到一条消息,表明该文件正忙/锁定/被另一个进程使用。通常,保持文件打开的程序的名称显示在文件资源管理器消息窗口中。要解锁文件,只需关闭程序即可。但是,文件或库可能会被未知进程或系统进程使用。那么解锁就更困难了。

许多应用程序以独占模式打开文件。同时,文件被文件系统锁定,防止其他应用程序和进程进行输入输出操作。如果您关闭该应用程序,文件锁定将被释放。

文件锁定消息可能不同。例如,以下屏幕截图显示了文件类型及其关联的应用程序:

File/Folder in Use. The action can’t be completed because the file is open in another program. Close the folder or file and try again.

[玩转系统] 如何解锁被任何进程或系统锁定的文件?

然后您可以轻松了解哪个应用程序锁定了文件并将其关闭。

但是,有时您可能会看到更有趣的消息,即文件被未知或 Windows 系统进程使用。它可能是 Windows 进程,也可能是使用系统权限的其他进程,例如防病毒应用程序、备份代理、MSSQL 数据库等:

The action can’t be completed because the file is open in SYSTEM.
Close the file and try again.

[玩转系统] 如何解锁被任何进程或系统锁定的文件?

让我们尝试找出哪些程序、服务或 Windows 系统进程正在使用某个文件,如何解锁该文件以及是否可以在不关闭父进程的情况下释放该文件。

如果您无法删除共享网络文件夹中的文件夹,则问题可能与该文件夹中包含文件缩略图缓存的thumbs.db 有关,或者该文件被 SMB 文件服务器上的其他用户打开(锁定)。

解锁文件的最简单方法是结束锁定该文件的进程。但这并不总是可能的,尤其是在服务器上。

要查找已锁定文件的进程,通常建议使用Unlocker工具。我不使用 Unlocker,因为它不提供有关锁定文件的进程或进程链的详细信息。您也无法解锁进程使用的文件 - 您必须完全终止应用程序。

另外,它是一个第三方工具,安装时你应该非常小心,因为它建议安装一整套你不需要的程序。

当Windows中的进程打开文件时,文件描述符(句柄)被分配给输入/输出流。该进程及其子进程使用处理程序访问该文件。使用 Windows API,您可以向文件系统发送信号以释放文件句柄并解锁文件。

如果强制关闭文件句柄,可能会导致应用程序或计算机工作不稳定。如果您不确定关闭应用程序的文件句柄后会发生什么,请不要在生产服务器上执行此操作,除非您事先进行了测试。

如何使用 Process Explorer 解锁文件?

ProcessExplorer 是 Sysinternals 套件中的一个免费工具,您可以从 Microsoft 网站 (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer) 下载。让我们尝试找到一个已锁定文件的进程,并通过重置该进程的文件句柄来释放该文件。

  1. 您不需要安装ProcessExplorer:只需下载、解压并以管理员身份运行procexp.exe;

  2. 选择查找->查找句柄或DLL(或按

    Ctrl-F

    );

    [玩转系统] 如何解锁被任何进程或系统锁定的文件?

  3. 指定要解锁的文件名,然后点击搜索

  4. 选择您想要的文件。打开文件的进程将在进程树中突出显示。右键单击它并选择终止进程树来结束该进程。但是,您可以尝试关闭文件句柄而不结束进程。您查找的文件句柄会自动在 Process Explorer 底部面板中突出显示。右键单击手柄并选择关闭手柄。确认关闭文件;

    [玩转系统] 如何解锁被任何进程或系统锁定的文件?

如果包含打开的进程句柄列表的底部面板未显示在 Process Explorer 中,请启用选项视图 -> 下部窗格视图 -> 句柄。

所以你已经关闭了文件句柄而没有结束父进程。然后您可以删除或重命名该文件。

如何使用句柄工具释放文件句柄?

Handle 是 Sysinternals 的另一个命令行工具(您可以在 Microsoft 网站上下载它:https://docs.microsoft.com/en-us/sysinternals/downloads/handle)。它允许您找到锁定文件的进程,并通过释放句柄来释放锁定。

  1. 下载并解压Handle存档;

  2. 以管理员身份打开命令提示符并运行以下命令:

    handle64.exe > listproc.txt

    [玩转系统] 如何解锁被任何进程或系统锁定的文件?

  3. 此命令会将打开的句柄列表保存到 txt 文件中。您可以显示要更改的文件所在目录的句柄:

    Handle64.exe -a “C:\Program Files\App”

    或者对于具体过程:

    handle64.exe -p excel.exe
  4. 在任何文本编辑器中打开 listproc.txt 并找到包含锁定文件名称的行。复制文件句柄ID(十六进制格式)。然后转到显示拥有该句柄的进程的部分并记下其 ID。作为系统运行的进程很可能具有 PID 4。

    [玩转系统] 如何解锁被任何进程或系统锁定的文件?

    对于某些 Windows 系统进程,handle.exe 返回以下消息:

    wininit.exe pid: 732 \<unable to open process>

    。这意味着您无法获取有关这些系统进程的任何信息(即使作为管理员)。要让此类进程打开文件句柄,请以系统身份运行 cmd.exe,然后尝试再次获取句柄列表。

  5. 然后返回命令提示符并通过其 HandleID 和 ProcessID 重置文件句柄。该命令具有以下格式:

    handl64e.exe -c HandleID -p ProcessID

    例如:

    handl64e.exe -c 18C -p 18800

    [玩转系统] 如何解锁被任何进程或系统锁定的文件?

  6. 该工具将提示您确认关闭该进程的文件。按确认

    y -> enter

如果系统对文件关闭做出正确反应,您将解锁文件,而无需结束进程或重新启动服务器/计算机。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯