我正在使用备用数据流 (ADS) 元数据在 Windows 10 上试验一种奇怪的行为。我从 Internet 下载了一个可执行文件,当它被下载到 NTFS 分区时,它的相应 ADS 文件被标记为Zone 3。
当我尝试运行它时,Windows 会警告我文件出处,至少它发生在 Windows 7、8 和 8.1 上。预期的行为是什么。
在 Windows 10 上发生了一些奇怪的事情。当我尝试运行它时,第一次尝试时,Windows 会删除此 ADS 文件,并且不会警告我有关文件出处的信息。由于此文件不再存在,因此在以后的运行中不会发出警告。这种行为出现在我能够尝试的所有 Windows 10 上(大约 5 个)。
这是正常行为吗?如果我需要警告,是否可以启用它?
更新:使用Process Monitor我能够检测到Explorer.exe打开 ADS 文件Delete Desire Access,这会产生文件删除。这样一来,我现在的问题应该是:为什么Explorer.exe会删除ADS文件?有可能避免吗?
更新 2:我发现这个问题在我收到警告的 Windows 10 版本 1607 上无法重现。它存在于版本 1703 上。
来自 Process Monitor 的相关行
4:28:27.4451881 PM Explorer.EXE 7120 CreateFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier SUCCESS Desired Access: Read Attributes, Delete, Disposition: Open, Options: Non-Directory File, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
4:28:27.4454276 PM Explorer.EXE 7120 QueryAttributeTagFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier SUCCESS Attributes: A, ReparseTag: 0x0
4:28:27.4454961 PM Explorer.EXE 7120 SetDispositionInformationFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier SUCCESS Delete: True
4:28:27.4455650 PM Explorer.EXE 7120 CloseFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier SUCCESS
4:28:42.0470995 PM Explorer.EXE 7120 CreateFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier NAME NOT FOUND Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
完整的日志在这里。时间不会太长。