锁定hosts文件写入权限需三步:一、在安全选项卡中禁用继承并仅保留trustedinstaller和管理员账户的读取权限;二、勾选“只读”和“隐藏”属性;三、用管理员powershell执行icacls和attrib命令固化保护,彻底阻止非法写入。

Windows 11 中 hosts 文件被第三方程序悄悄篡改,会导致域名劫持、广告注入、安全更新失效等严重问题。你刚手动加了一行 127.0.0.1 example.test,重启后发现被删了,或者多出几行指向钓鱼 IP 的记录——这说明某个进程正绕过你的操作权限持续写入。
锁定 hosts 文件写入权限(核心防护)
这一步直接切断绝大多数恶意软件的修改通道,不依赖杀毒软件扫描,从系统层拒绝非法写入。
打开文件资源管理器,在地址栏粘贴:C:\Windows\System32\drivers\etc → 回车 → 找到无扩展名的 hosts 文件 → 右键 → “属性” → 切换到“安全”选项卡 → 点击“高级”。
点击右上角“禁用继承” → 在弹出窗口中选择“将继承的权限转换为此对象的显式权限” → 点击“确定”。此时所有 inherited 权限条目将变为灰色不可编辑状态。
在权限列表中,逐个选中非必要的用户或组(如 Users、ALL APPLICATION PACKAGES、Everyone),点击“删除”按钮 → 对每个被删项确认操作。
仅保留 【TrustedInstaller】 和你当前登录的管理员账户(如 DESKTOP-XXX\YourName),并确保该账户只勾选“读取”和“读取和执行”,【绝对不要勾选“写入”或“修改”】。
点击“确定”保存设置 → 若弹出 UAC 提示,输入密码确认 → 关闭属性窗口。
添加只读属性并隐藏系统属性
这是对权限锁定的双重保险,防止部分低权限工具通过属性开关绕过 ACL 限制。
回到 C:\Windows\System32\drivers\etc 目录 → 右键 hosts 文件 → “属性” → 在“常规”选项卡中,勾选“只读”和“隐藏”两个复选框 → 点击“应用” → 点击“确定”。
注意:若提示“您没有权限更改此文件夹的属性”,说明上一步权限未生效,请先返回前一节完成 ACL 清理再试。
用命令行永久固化保护(管理员 PowerShell)
图形界面可能被某些伪装成合法软件的进程干扰,命令行方式更底层、更难绕过。
右键“开始”按钮 → 选择“终端(管理员)” → 输入以下命令并回车:
icacls "$env:windir\System32\drivers\etc\hosts" /inheritance:r /grant:r "NT AUTHORITY\SYSTEM:(R)" /grant:r "BUILTIN\Administrators:(R)" /grant:r "NT SERVICE\TrustedInstaller:(F)"
这条命令强制清除所有继承权限,并仅授予 SYSTEM(读)、Administrators(读)、TrustedInstaller(完全控制)三项权限,其他任何账户或服务均无法写入。
接着执行:
attrib +R +S +H "$env:windir\System32\drivers\etc\hosts"
该命令为文件添加只读(R)、系统(S)、隐藏(H)三重属性,普通进程调用 CreateFile API 时会直接失败。











