我怎样才能让 Windows 认为某个文件“来自另一台计算机”?

我怎样才能让 Windows 认为某个文件“来自另一台计算机”?

答案在“此文件来自另一台计算机...” - 我怎样才能解除对文件夹中所有文件的阻止,而不必单独解除对它们的阻止?解释如何“解除阻止”来自远程源的文件。出于测试目的,我想完成相反的操作。如何设置文件的区域标识符以便 Windows 将其“阻止”?

我偏向于使用 PowerShell 解决方案,但其他机制也是可以接受的。

答案1

当文件下载到 NTFS 文件系统时,您可能会注意到文件属性对话框中有一个Security带有复选框的附加部分Unblock在此处输入图片描述

有关该文件的附加数据存储在备用数据流 (ADS)。该文件通常在下载结束时由浏览器进程写入。例如 Chrome.exe、Msedge.exe 等。可以使用文件系统监视工具观察此操作,例如进程监控

进程监视器跟踪显示 Chrome.exe 正在写入 Zone.Identifier 流以将“mark-of-the-web”添加到文件

通过公共符号,完整堆栈揭示了 Chromium 项目中添加此信息的代码,如下所示:https://source.chromium.org/chromium/chromium/src/+/main:components/services/quarantine/quarantine_win.cc;l=225

可以使用多种方式查看备用数据流,例如但现在使用 PowerShell 更加方便。

例如,要查看文件的所有流,可以使用以下 PowerShell 命令:

Get-Item -Path Autologon.exe -Stream *

输出如下:

PSPath        : Microsoft.PowerShell.Core\FileSystem::C:\ads\Autologon.exe::$DATA
PSParentPath  : Microsoft.PowerShell.Core\FileSystem::C:\ads
PSChildName   : Autologon.exe::$DATA
PSDrive       : C
PSProvider    : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName      : C:\ads\Autologon.exe
Stream        : :$DATA
Length        : 138920

PSPath        : Microsoft.PowerShell.Core\FileSystem::C:\ads\Autologon.exe:Zone.Identifier
PSParentPath  : Microsoft.PowerShell.Core\FileSystem::C:\ads
PSChildName   : Autologon.exe:Zone.Identifier
PSDrive       : C
PSProvider    : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName      : C:\ads\Autologon.exe
Stream        : Zone.Identifier
Length        : 26

就这个问题而言,Zone.Identifier我们感兴趣的是流。继续使用 PowerShell,我们可以使用 get-content 命令查看它:

Get-Content .\Autologon.exe:zone.identifier

[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://live.sysinternals.com/
HostUrl=https://live.sysinternals.com/Autologon.exe

要手动添加或更新Zone.Identifier命名流并设置流的值,我们可以运行以下 PowerShell 命令:

Set-Content -Path .\file.exe -Stream Zone.Identifier -Value '[ZoneTransfer]','ZoneId=3'

其中ZoneId指定可以是下列值之一:

0 = "Local machine"
1 = "Local intranet"
2 = "Trusted sites"
3 = "Internet"
4 = "Restricted sites"

笔记:要从ZoneTransfer文件中删除流并因此执行与从文件属性对话框解除文件阻止相同的操作,您可以运行以下任一命令:

  • Unblock-File -path .\file.exe
  • Remove-Item -Path .\file.exe -Stream Zone.Identifier

相关内容