前言
最近不少朋友遇到了这样一个困扰:在 Windows 文件资源管理器中开启预览窗格后,无论是从招聘网站下载的 PDF 简历,还是通过 SMB 共享访问的 NAS 文件,都无法正常预览,取而代之的是一条令人摸不着头脑的警告:
“你尝试预览的文件可能对你的计算机有害。如果你信任此文件以及其来源,请打开此文件以查看其内容。”
本文将从技术原理出发,深入剖析这一问题的根源,并提供从临时解决到一劳永逸的完整方案。
一、为什么会弹出这个警告?
1.1 根源:2025年10月的安全更新
从 2025年10月14日 及之后发布的 Windows 安全更新(如 KB5070960 / KB5066791)开始,微软对文件资源管理器的预览功能进行了一项重要的安全调整。
这项变更并非故障或 Bug,而是微软为封堵一个严重安全漏洞而采取的主动措施。
1.2 漏洞原理:NTLM 哈希泄露风险
问题的核心在于一个 NTLM 哈希泄露漏洞。当用户预览一个包含特定 HTML 标签(如 <link>、<src> 等)的恶意文件时,这些标签可能引用外部路径。文件资源管理器在渲染预览时会尝试加载这些外部资源,导致用户的 NTLM 哈希值(一种用于网络身份验证的敏感凭据)在用户毫不知情的情况下被发送到攻击者的服务器。
攻击者获取 NTLM 哈希后,可以通过破解或“中间人”攻击等方式窃取用户凭据,进而威胁系统安全。
1.3 识别机制:Mark of the Web(MOTW)
Windows 通过一种名为 “Web 标记”(Mark of the Web,简称 MOTW) 的机制来识别文件的来源。
当用户通过浏览器、邮件客户端等网络渠道下载文件时,Windows 会自动在文件中嵌入一个不可见的标记,记录该文件来源于“Internet 区域”。更新后的文件资源管理器一旦检测到文件带有 MOTW 标记,便会默认禁用预览功能,从根源上切断了上述漏洞的攻击路径。
1.4 两种典型场景
预览警告会在以下两种场景中出现:
二、解决方案:针对 SMB/网络共享文件
如果你通过 SMB 共享访问 NAS 或公司服务器上的文件时遇到预览警告,问题在于 Windows 将你的共享路径识别为“Internet 区域”而非“本地 Intranet”。
方案一:通过 Internet 选项添加信任(推荐)
这是最直接的方法——告诉 Windows“这个网络位置是安全的,请允许预览”。
操作步骤:
按下
Win + R,输入inetcpl.cpl,回车打开 Internet 选项。切换到 “安全” 标签页。
点击 “本地 Intranet”,然后点击下方的 “站点” 按钮。
点击 “高级”,在输入框中添加你的共享路径:
通过 IP 访问:
\\192.168.1.xxx\共享文件夹名称通过计算机名访问:
\\电脑名称\共享文件夹名称
点击 “添加”,然后一路点击“确定”保存。
重启文件资源管理器(在任务管理器中重启
explorer.exe进程)即可生效。
注意:此方案会降低该共享路径下所有文件的安全检查级别,请确保你信任该共享源。
方案二:通过注册表添加信任(进阶)
如果你的共享路径通过域名访问(如 \\company.local\share),或希望通过注册表精确控制,可以使用以下方法。
通过域名访问:
text
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\company.local]
"file"=dword:00000001通过 IP 地址访问:
text
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range1]
"file"=dword:00000001
":Range"="192.168.0.10"将
company.local替换为你的实际域名,192.168.0.10替换为你的实际 IP 地址。
三、解决方案:针对从互联网下载的文件
对于从招聘网站、邮件等渠道下载的 PDF、Word 等文件,问题根源是文件自带的 MOTW 标记。以下是几种解决方案。
方案一:批量解锁(PowerShell 命令)
适合需要一次性处理大量文件的场景。
解锁“下载”文件夹中所有 PDF:
powershell
Get-ChildItem "C:\Users\你的用户名\Downloads\*.pdf" | Unblock-File解锁整个文件夹及其子文件夹中的所有文件:
powershell
Get-ChildItem "C:\Users\你的用户名\Downloads" -Recurse | Unblock-File解锁整个 D 盘(慎用,耗时较长):
powershell
Get-ChildItem "D:\" -Recurse | Unblock-File方案二:全局设置——让新下载的文件不再被标记
如果你不想每次下载后都手动或批量解锁,可以通过修改注册表让 Windows 不再给新下载的文件添加 MOTW 标记。
⚠️ 重要提示:此方案仅对未来新下载的文件生效,已下载的旧文件仍需通过上述方案一或方案二解锁。同时,此操作会降低系统对恶意文件的一道重要防线,请确保你完全信任自己的下载源。
操作步骤(Win11 家庭版/专业版通用):
按下
Win + R,输入regedit,回车打开注册表编辑器。在顶部地址栏粘贴以下路径并回车:
text
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments如果找不到
Attachments文件夹,右键点击Policies→ 新建 → “项”,命名为Attachments。在右侧空白处右键 → 新建 → DWORD (32位) 值,命名为
SaveZoneInformation。双击该值,将数值数据改为
1,点击“确定”。关闭注册表编辑器,重启电脑使修改生效。
关于
SaveZoneInformation=1的含义:该设置指示 Windows“不保存区域信息”,即不再给新下载的文件添加“来自 Internet”的标签。这样一来,新下载的文件就不会再被预览功能拦截。
方案三:组策略方案(仅限专业版/企业版)
如果你使用的是 Windows 专业版或企业版,可以通过组策略更规范地管理此设置。
按下
Win + R,输入gpedit.msc,回车。依次展开:用户配置 → 管理模板 → Windows 组件 → 附件管理器。
在右侧找到 “不保留文件附件的区域信息”,双击打开。
选择 “已启用” → 点击“应用”和“确定”。
四、关于 SaveZoneInformation 的特别说明
需要特别指出的是,微软官方文档明确表示,SaveZoneInformation 注册表修改是一个高级的变通方案(advanced workaround),并非官方完全支持或保证生效的解决方案。
部分用户在修改后反映该设置并未生效。这是因为 Windows 对带有 MOTW 标记的文件禁用预览是安全更新的既定行为(by design),并不完全由 SaveZoneInformation 控制。
微软官方目前仅正式推荐以下三种方式来解除预览限制:
单个文件手动解除锁定
PowerShell 批量解除锁定(移除 MOTW)
将网络位置添加至受信任区域
五、总结与建议
最佳实践建议
对于大多数普通用户,最稳妥的组合方案是:
SMB 共享文件:使用 Internet 选项将共享路径添加至本地 Intranet 区域。
下载的文件:定期在“下载”文件夹中运行 PowerShell 批量解锁命令。
极个别重要文件:使用右键属性手动解锁。
如果追求极致便利且下载源高度可信,可以尝试注册表修改方案,但请务必了解其可能失效和降低安全性的双重风险。
🛠️ 懒人版脚本:关闭新下载文件的预览拦截(全局设置)
这个脚本会自动创建 SaveZoneInformation=1,让以后所有新下载的文件不再被标记为“来自互联网”,从而彻底告别预览警告。
📄 脚本内容(保存为 DisablePreviewBlock.bat)
batch
@echo off
title 解除 Windows 预览安全警告(全局设置)
echo ==============================================
echo 本脚本将修改注册表,使新下载的文件不再被
echo 标记为“来自互联网”,从而允许预览窗格正常显示。
echo.
echo 注意:此修改仅对未来新下载的文件生效,
echo 已存在的旧文件不受影响。
echo.
echo 按任意键继续,或关闭窗口取消...
pause > nul
:: 检查管理员权限
net session >nul 2>&1
if %errorlevel% neq 0 (
echo [错误] 请以管理员身份运行此脚本!
echo 右键点击本文件 -> 选择“以管理员身份运行”
pause
exit /b
)
:: 创建或修改注册表键值
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments" /v SaveZoneInformation /t REG_DWORD /d 1 /f >nul
if %errorlevel% equ 0 (
echo [成功] 注册表修改完成!
echo [提示] 请重启文件资源管理器或重启电脑使改动生效。
) else (
echo [失败] 注册表修改出错,请检查权限或手动尝试。
)
echo.
echo 按任意键退出...
pause > nul🚀 使用方法
在桌面上新建一个文本文档,把上面的代码全部复制进去。
点击“文件” -> “另存为”,文件名写
DisablePreviewBlock.bat,保存类型选“所有文件”,编码选 ANSI(避免中文乱码)。右键点击这个
.bat文件,选择 “以管理员身份运行”。按提示按任意键,完成后重启电脑(或重启资源管理器)即可生效。
Windows 文件预览安全警告全解析:从原理到解决
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法