需以管理员权限修改hosts文件:一、用记事本以管理员身份打开并保存;二、用powershell命令覆盖或追加内容;三、取消hosts文件只读属性;四、用vs code等第三方编辑器以管理员身份运行后编辑保存。

如果您尝试修改 Windows 系统中的 hosts 文件但无法保存更改,则可能是由于该文件受系统保护且需要管理员权限才能写入。以下是完成此操作的具体步骤:
一、使用记事本以管理员身份编辑 hosts 文件
hosts 文件位于系统受保护目录下,普通用户权限无法直接覆盖保存。必须通过以管理员身份运行的文本编辑器进行修改,否则会提示“权限不足”或“拒绝访问”。
1、按下 Win + R 打开“运行”对话框。
2、输入 notepad 并按住 Ctrl + Shift 同时点击“确定”,弹出用户账户控制(UAC)提示时点击“是”。
3、在已以管理员身份运行的记事本中,点击菜单栏“文件”→“打开”,在地址栏粘贴路径:C:\Windows\System32\drivers\etc\。
4、将文件类型下拉菜单从“文本文件”改为“所有文件”,选中 hosts 并点击“打开”。
5、在文件末尾添加所需映射条目,例如:127.0.0.1 example.com。
6、点击“文件”→“另存为”,在“另存为”窗口中确认“保存位置”仍为 C:\Windows\System32\drivers\etc\,“文件名”仍为 hosts,“编码”选择 UTF-8 或 ANSI(推荐 ANSI),点击“保存”。
二、使用 PowerShell 以管理员权限覆盖写入 hosts 文件
PowerShell 可绕过图形界面编辑器的路径识别限制,直接通过命令行强制写入,适用于 hosts 文件被只读属性锁定或记事本保存失败的情况。
1、右键点击“开始”按钮,选择“Windows PowerShell(管理员)”或“终端(管理员)”。
2、执行命令清空当前 hosts 内容并写入新内容:Set-Content -Path "C:\Windows\System32\drivers\etc\hosts" -Value "127.0.0.1 example.com`n127.0.0.1 test.local"(注意:`n 表示换行)。
3、如需追加而非覆盖,改用:Add-Content -Path "C:\Windows\System32\drivers\etc\hosts" -Value "`n127.0.0.1 new.site"。
4、验证写入是否成功:Get-Content "C:\Windows\System32\drivers\etc\hosts"。
三、临时解除 hosts 文件只读属性后编辑
某些安全软件或系统策略会将 hosts 文件设为只读,导致即使以管理员身份运行编辑器也无法保存。需先移除该属性再操作。
1、打开文件资源管理器,导航至 C:\Windows\System32\drivers\etc\。
2、右键单击 hosts 文件,选择“属性”。
3、在“常规”选项卡中,取消勾选“只读”复选框,点击“应用”→“确定”。
4、若提示“你需要提供管理员权限才能更改此属性”,点击“继续”并确认 UAC 提示。
5、随后可使用任意文本编辑器(如记事本、VS Code)正常打开、编辑并保存该文件。
四、使用第三方编辑器(如 VS Code)以管理员身份保存
VS Code 默认不以管理员权限运行,但可通过快捷方式或命令行显式提升权限,避免因权限缺失导致保存失败。
1、右键桌面空白处,选择“新建”→“快捷方式”。
2、在位置栏输入:cmd /c start "" /b "C:\Users\%USERNAME%\AppData\Local\Programs\Microsoft VS Code\Code.exe" --new-window "C:\Windows\System32\drivers\etc\hosts"(请根据实际 VS Code 安装路径调整)。
3、点击“下一步”,命名为“VS Code hosts 编辑器”,点击“完成”。
4、右键新建的快捷方式,选择“属性”→“快捷方式”选项卡→点击“高级”→勾选“以管理员身份运行”→“确定”。
5、双击该快捷方式启动 VS Code,编辑完成后直接按 Ctrl + S 即可保存到原始位置。











