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

[玩转系统] Windows 如何确定文件是从 Internet 下载的

作者:精品下载站 日期:2024-12-14 22:47:57 浏览:15 分类:玩电脑

Windows 如何确定文件是从 Internet 下载的


在之前的一篇文章中,我们提到,当尝试打开从 Internet 下载的可执行文件时,Windows 会显示运行潜在危险内容的安全警告(有关详细信息,请参阅如何在 Windows 中禁用安全警告)。系统如何判断文件是从网上下载的呢?让我们尝试找出答案。

[玩转系统] Windows 如何确定文件是从 Internet 下载的

在浏览器中从互联网下载的所有可执行文件都会有一个特殊的标记。此规则不仅受 Internet Explorer 支持,还受其他流行浏览器支持,例如 Mozilla Firefox 和 Google Chrome。将文件复制、重命名或移动到另一个 NTFS 分区时,标记仍然保留。

此标记是替代 NTFS 文件流

注意替代 NTFS 数据流允许为每个 NTFS 文件创建多个额外的数据(元数据)流。默认情况下,所有文件数据都存储在主流中,但可以为一个文件创建一个或多个附加流,它们的大小甚至可能超过主文件流的大小。大多数应用程序(包括 Windows 资源管理器)仅使用标准流,无法从替代 NTFS 数据流读取数据。

要确保为从 Internet 下载的文件分配了特殊标记,请使用以下命令显示包含发行版的目录的文件列表:

dir /r

[玩转系统] Windows 如何确定文件是从 Internet 下载的

正如我们所看到的,替代流 Zone.Identifier 已分配给可执行文件,例如 install_flash_player_16_active_x.exe:Zone.Identifier

在记事本中打开替代流:

Notepad.exe install_flash_player_16_active_x.exe:Zone.Identifier

[玩转系统] Windows 如何确定文件是从 Internet 下载的

我们可以看到该流是一个包含 [ZoneTransfer] 部分的文件,其中指定了传输区域 ID (ZoneId)。 (这些是可以在 IE 设置中找到的安全区域。)传输区域 ID 可以包含从 0 到 4 的五个值之一。

  1. ZoneId=0:本地机器

  2. ZoneId=1:本地内网

  3. ZoneId=2:受信任的站点

  4. ZoneId=3:互联网

  5. ZoneId=4:受限站点

[玩转系统] Windows 如何确定文件是从 Internet 下载的

当您从安全区域下载文件时,浏览器会为其分配相应的 ZoneId。当尝试在其替代 NTFS 流中运行 ZoneId 等于 3 或 4 的文件时,系统根据此 ID 检测到文件是从 Internet 或不受信任的来源下载的。自 Windows XP SP2 以来,Windows 一直在检查可执行文件的此标记。

要手动删除此标记(替代流),您只需单击文件属性中的取消阻止即可。

[玩转系统] Windows 如何确定文件是从 Internet 下载的

确保该文件现在没有替代流。

[玩转系统] Windows 如何确定文件是从 Internet 下载的

提示。为了防止为下载的文件分配标记,您可以将从 Internet 下载的文件保存到与 NTFS 不同的文件系统,如 FAT、exFat 等。

实际上,Windows 没有任何工具来处理替代数据流。例如,如果您必须一次从多个文件中删除它们,您最好使用 Mark Rusinovich 开发的第三方控制台工具 - streams

例如,要递归删除 c:\Download\ 中所有可执行文件的替代流,请运行以下命令:

c:\TOOLS\streams.exe -s -d c:\Download\*.exe

在命令提示符中,您可以看到文件的替代流已被删除:Deleted :Zone.Identifier:$DATA

重要。 Streams 删除指定文件的所有替代流,并且不允许定位特定流。因此,请勿以 streams.exe -s -d c:\*.exe 的形式运行 streams 命令,因为在删除备用 NTFS 流中包含的重要信息后,它可能会导致系统故障。

[玩转系统] Windows 如何确定文件是从 Internet 下载的

Get-ChildItem -Recurse | Get-Item -Stream Zone.Identifier -ErrorAction SilentlyContinue | Select-Object FileName

该属性被删除如下:

Remove-Item .\install-file.exe -Stream Zone.Identifier

在 Windows PowerShell 4.0 中,您可以使用单独的 cmdlet 删除 Zone.Identifier:

Unblock-File install-file.exe

您可以手动运行此命令将标记分配给任何文件:

notepad.exe install_flash_player_16_active_x.exe:Zone.Identifier

由于没有流,系统提示创建新文件。同意并将以下文本复制到记事本窗口:

[ZoneTransfer]
ZoneId=3

[玩转系统] Windows 如何确定文件是从 Internet 下载的

[玩转系统] Windows 如何确定文件是从 Internet 下载的

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

取消回复欢迎 发表评论:

关灯