Windows 10 hosts 文件被另一个进程使用

Windows 10 hosts 文件被另一个进程使用

还有其他几个同名的问题,但它们不能解决我的问题,所以我又提出了一个。

  • 我已将“hosts”文件的权限设置为当前用户的完全访问权限。我甚至已取得所有权。当前用户属于管理员组。

  • 我已经关闭 UAC。

  • 我已删除该文件的只读权限。

    C:\Windows\System32\drivers\etc>attrib hosts
    A            C:\Windows\System32\drivers\etc\hosts
    
  • 我已禁用 Panada Antivirus。我还从服务面板中停止了 3 个 panda 服务。

  • 我打开提升的命令行(以管理员身份运行)。运行记事本并更改文件。当我尝试保存文件时,收到以下错误:

    “该进程无法访问该文件,因为该文件正在被另一个进程使用。

  • 我使用“Unlocker”检查该文件,软件说该文件上没有活动锁。

有人可以帮忙吗?

答案1

我的etc\hosts文件已被 ZoneAlarm 防火墙锁定

开锁,我不得不取消选中ZoneAlarm 防火墙设置菜单中的“锁定主机文件”

在此处输入图片描述

答案2

刚刚遇到并解决了这个问题,经过一番折腾,我想提供一些说明。

我用了SysInternals 进程浏览器以管理员身份运行,找到锁定文件的进程(通过使用Find > Find Handle or DLL)。请注意,当我以非管理员权限运行它时,它无法看到系统级WRSA进程。

在我的情况下是WRSA.exe,即 Webroot Secure Anywhere。禁用保护会解锁文件,我可以轻松覆盖它。在某些版本的 webroot 中,您必须打开“高级设置 > 防护”,然后取消选中阻止编辑 hosts 文件的选项。

当然,防病毒软件应该保护诸如此类的文件hosts,这是完全正确的。恶意软件喜欢这种东西。

答案3

我最终找到了罪魁祸首。是一个名为“Tiny Firewall”(Windows 防火墙规则管理软件)的程序导致了这个问题。

我不太清楚它对 hosts 文件做了什么,因为没有可用的软件可以显示文件上的锁定。我可以使用进程监视器 (Sysinternals) 发现它以某种方式与文件有关。我退出 UI 并停止了该进程(不允许停止,终止进程树并设置为手动服务)。

PS:这是 Tiny Firewall(保护 hosts 文件)的一项功能,您可以直接从其设置中将其关闭。

答案4

根据@gloschtla 的回答,我编写了一个小批处理文件。它大约需要 15 分钟的执行时间。它的作用是尝试重命名 hosts 文件,如果失败,它会等待一秒钟并再次尝试。

@echo off
:start
timeout /t 1
ren hosts hosts.old
if errorlevel 1 goto start
echo done! 

相关内容