“此文件来自另一台计算机...” - 如何取消阻止文件夹中的所有文件而不必单独取消阻止?

Tom*_*idd 192 windows security ntfs

Windows XP SP2 和 Windows Vista 有这样的协议,其中区域信息保存在下载到 NTFS 分区的文件中,这样它会阻止某些应用程序中的某些文件,直到您“取消阻止”这些文件。

因此,例如,如果您下载源代码的 zip 文件进行尝试,则每个文件都会在文件属性的安全设置中显示此内容

“此文件来自另一台计算机,可能会被阻止以帮助保护这台计算机”

以及“取消阻止”按钮。有些程序不在乎,但 Visual Studio 将拒绝加载解决方案中的项目,直到它们被解除阻塞。

虽然转到每个项目文件并单独解锁它并不是非常困难,但它很痛苦。并且您似乎无法同时取消阻止多个选定的文件。

有没有办法取消阻止目录中的所有文件而不必单独访问它们?

我知道您可以为所有新文件全局关闭此功能,但假设我不想这样做

Jay*_*uzi 196

如果您下载.ZIP并解压缩它,单个文件将被标记为与.ZIP. 几乎每次我都有一个充满“被阻止”文件的文件夹时,我就是这样得到它们的。

在解压缩之前,单击.ZIP.

  • 实际上,没有。我下载 zip 文件以使用内容,并让浏览器自动打开 zip 文件。从那里我调用“提取所有文件”。没有选项可以从这些位置取消阻止,并且在下载文件夹或更糟糕的临时文件夹中查找 zip 文件是*非常*乏味的。 (3认同)

小智 96

PowerShell 可在此处获得,它有一个Unblock-Filecmdlet 可以为您完成此任务。要取消阻止目录中的所有文件,您需要发出以下命令。

dir c:\mydir -Recurse | Unblock-File

取消阻止文件文档

  • 这对我有用,但没有在 cmd 行提供任何反馈。我还稍微调整了一下,如果您已经在文件夹中,那么您可以执行`dir -Recurse | 取消阻止文件` (3认同)
  • 像冠军一样工作。这应该是公认的答案。 (3认同)
  • 不再只是 Beta,它已经发布并且运行良好。 (2认同)
  • 完美的。这应该是公认的答案。如果您还记得的话,解锁 zip 是很好的方法,但是这种同时对一堆文件进行解锁的方法非常棒。 (2认同)

cal*_*ban 65

这很简单,NTFS 在刚从 Internet 下载文件时将数据流(即 ID“不安全文件”)附加到文件中。

为所有文件递归删除此流,请按照下列步骤操作:

  1. 从 Microsoft下载Streams CLI 可执行文件
  2. 将streams.exe 可执行文件放在您的Windows 目录(或系统可以找到它的任何地方)
  3. 在命令行中运行这一行:

流 -s -d目录

然后它将递归地从目录中的所有文件中删除所有数据流 - 您现在已成功取消阻止所有文件。

  • 为什么你认为他们没有记录?(http://msdn.microsoft.com/en-us/library/aa364404(VS.85).aspx) (22认同)
  • 可能很危险。Windows 也将流用于其他目的。 (9认同)
  • 非常罕见 - 数据流几乎不用于任何事情,因为它是一个未记录的功能。如果正如 schnapple 所说的那样,这将是安全的 - 他只是想取消阻止某个目录中的文件,这些文件已知是通过 Internet 接收的文档。我在任何时候都不建议他做 _streams -s -d C:\_ :) (6认同)
  • 刚刚与某些人检查过(因为 Streams 是一项未公开的功能,因此很难验证),他们认为一旦文档通过 Internet 传输或通过 NTFS 以外的任何其他内容,它会丢失所有流数据。因此,当您第一次从 Internet 下载某些内容时,您将拥有的唯一数据流就是“不安全文件”数据流。 (6认同)
  • 不要盲目删除所有备用数据流,除非您有这些 NTFS 加密文件的备份副本。 (6认同)
  • 虽然这会起作用,但只是说 Office 2007 文档使用流并且文件属性存储为流。我建议谨慎使用“streams -d”。 (2认同)
  • 连接源区域的不是 NTFS。它是下载/复制文件时的浏览器或资源管理器。文件系统不在乎。 (2认同)

Sna*_*ark 31

AlternateStreamView可以列出目录(以及子目录,如果需要)中文件的所有备用 NTFS 流。

删除所选文件的所有标记为“ :Zone.Identifier:$DATA ”的流以摆脱安全块。

在此处输入图片说明

  • ZoneIDTrimmer 是工具的名称,而不是人的别名。 (7认同)

小智 13

一个非常简单的解决方法与第一个答案有关,假设您有大约 1000 个文件全部被阻止,只需获取所有文件,并将它们放在桌面上的新文件夹中(或您正在使用的任何文件夹目录)他们右键单击该文件夹,然后单击发送到,然后从选项中单击压缩(zipped)文件夹,然后删除您的原始文件并解压缩 .ZIP 文件夹和 Viola !!! 您的所有文件都已解锁:D,工作对我来说 XP Pro SP3,所以有点假设它也适用于 vista


小智 10

要在下载文件时禁用阻止,请打开以下注册表项:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments\SaveZoneInformation
Run Code Online (Sandbox Code Playgroud)

将 SaveZoneInformation 更改为 1。

笔记:

  • 0 = 未配置
  • 1 = 启用
  • 2 = 禁用

  • 我在 Windows 7 上没有这个选项,文章只提到 XP。不过,看起来很有趣。 (2认同)

GAT*_*awn 8

正如另一位发帖人所说,不安全文件标志存储在 NTFS 数据流中。这意味着有一种非常简单的方法可以删除此数据流,只需将文件移动到不支持 NTFS 数据流的驱动器即可。

假设您的问题更多地与文件数量而不是文件大小有关,那么最简单的方法可能是将文件移动(而不是复制)到 FAT 格式的驱动器,然后将它们移回 NTFS驱动器(几乎每个 U 盘都格式化为 FAT32,所以会很好),然后将这些文件移回您想要的位置。

当我想从下载文件的整个目录中去除被阻止的标志时,我已经这样做了,它完全符合我的需要。


小智 7

  • 下载Sysinternals Streams实用程序。
  • 解压缩并将streams.exe 复制到\Windows\System32。
  • 创建一个新的文本文件并将其重命名为“unblocker.reg”。
  • 将以下注册表脚本复制到其中:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\*\shell\unblockfile]
    @="Unblock file"
    
    [HKEY_CLASSES_ROOT\*\shell\unblockfile\command]
    @="cmd /c streams -d \"%1\""
    
    [HKEY_CLASSES_ROOT\Directory\shell\unblockallthefiles]
    @="Unblock the files inside"
    
    [HKEY_CLASSES_ROOT\Directory\shell\unblockallthefiles\command]
    @="cmd /c streams.exe -d -s \"%1\""
    
    Run Code Online (Sandbox Code Playgroud)
  • 保存文件。

  • 双击保存的文件将其合并到注册表中。

此后,无论何时右键单击文件,都可以在上下文菜单中选择“取消阻止文件”,也可以右键单击文件夹并选择“在此处取消阻止文件”。

来源


小智 5

AlternateStreamView 很棒。另一种方法是将文件存档到 .RAR、7z 或 .ZIP 。删除原始文件,然后重新提取文件。