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


186

Windows XP SP2和Windows Vista具有这种处理方式,其中区域信息保留在已下载文件的NTFS分区中,因此它会阻止某些应用程序中的某些文件,直到您“取消阻止”这些文件为止。

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

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

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

虽然转到每个项目文件并分别解除阻止并不十分困难,但这是一个痛苦。而且它似乎没有显示您可以同时取消阻止多个选定的文件。

有什么方法可以取消阻止目录中的所有文件,而不必单独访问它们?

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


30
如何在全球范围内关闭此功能?请链接?:)谢谢
underskor

19
是的,有史以来最糟糕的Windows“功能” ...
Brian Knoblauch

16
第二坏。第一个最糟糕的情况是在新发现的媒体上自动运行,这是造成这种混乱的原因。
kmarsh,2009年

6
@Thomas作为答案之一,您可以通过设置注册表项HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Attachments \ SaveZoneInformation = 1来执行此操作。更多信息:support.microsoft.com/kb/883260
jamiebarrow13年

3
我在Google Chrome浏览器中的下载内容被标记了,因此必须取消阻止它们。@jamiebarrow具有正确的信息,可通过注册表在全局禁用此信息,或者您可以使用本地组策略编辑器(gpedit.msc)并在“用户配置”>“管理模板”>“ Windows组件”>“附件管理器”>“不保留区域信息”中更改设置。在文件附件>已启用中。
鲍达德2014年

Answers:


180

如果下载a .ZIP并解压缩,则各个文件将被标记为与相同的区域.ZIP。几乎每次我有一个充满“被阻止”文件的文件夹时,这就是我得到它们的方式。

解压缩之前,请单击上的取消阻止按钮.ZIP


1
这绝对是最简单的-您赢了
Tom Kidd

+1我得出的相同结论-一种以非NTFS方式打包文件的简便方法-通过在Google中搜索以下术语发现了这一点:取消阻止xp目录中的所有文件。
Will Bickford

3
其实没有 我下载zip文件以使用内容,然后让浏览器自动打开zip文件。从那里我调用“提取所有文件”。无法取消阻止这些位置,并且在下载文件夹(甚至更糟的是temp文件夹)中搜索zip文件非常繁琐。
Thomas Eyde

我希望我可以不止一次投票。
dave thieben 2011年

仅当您尚未修改ZIP文件中的文件时,此解决方案才有效。
查理

90

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

dir c:\mydir -Recurse | Unblock-File

解锁文件文档


2
它不再只是Beta版本,它已经发布并且运行良好。
Ken Hiatt

优秀的!我提取了一个大的zip包,却忘记先取消阻止它,然后删除了该zip包以节省空间。这省了我重新下载它或手动工作的负担:)
Danny Tuppeny 2014年

3
这对我有用,但没有在cmd行上提供任何反馈。我也做了些微调整,如果您已经在文件夹中,那么您可以做dir -Recurse | Unblock-File
user36088 2014年

3
像冠军一样工作。这应该是公认的答案。
Chuck Conway

1
完善。这应该是公认的答案。如果您记得它,则解除阻止zip既好又花哨,但是这种同时处理一堆文件的方法很棒。
巴斯

64

很简单,当从Internet下载文件时,NTFS会将数据流(ID为“不安全文件”)附加到该文件。

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

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

stream -s -d 目录

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


9
可能很危险。Windows还将流用于其他目的。
harrymc

6
非常罕见-数据流几乎没有用于任何用途,因为它是未记录的功能。如schnapple所说,这将是安全的-他只是想取消阻止某个目录中的文件,这些文件被称为是通过Internet接收的文档。我绝对不建议他做_streams -s -d C:_ :)
caliban

6
刚与某些人一起检查过(由于Streams是一个未记录的功能,尽管很难验证),他们相信一旦文档通过Internet传输或经过NTFS以外的任何其他内容,它将丢失所有流数据。结果,当您首次从Internet下载某些内容时,唯一的数据流就是该“不安全文件”数据流。
caliban

22
您为什么认为这些文件没有记录?(msdn.microsoft.com/en-us/library/aa364404(VS.85).aspx
鲁本

6
除非您拥有这些NTFS加密文件的备份副本,否则不要盲目删除所有备用数据流。
伊恩·博伊德


11

一个很简单的解决方法是将第一个答案联系起来,例如,如果您有大约1000个被阻止的文件,则只需将所有文件放入到桌面上的新文件夹(或您正在使用的任何文件夹目录)中他们右键单击所说的文件夹,然后单击“发送到”,然后从选项中单击“压缩(压缩)文件夹”,然后删除您的原始文件并解压缩.ZIP文件夹和Viola !!!所有文件都被解除阻止:D,正常工作XP Pro SP3上对我来说,所以有点假设它也可以在Vista上使用


迄今为止最少的工作量。真好!
RomanSt 2015年

9

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

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments\SaveZoneInformation

将SaveZoneInformation更改为1。

注意:

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

2
我在Windows 7上没有该选项,文章仅提及XP。不过,看起来很有趣。
AndrejaKo 2010年

您可以添加密钥以启用/禁用吗?仅仅因为您没有用户策略密钥,就意味着它不是用这种方式设置的。您仍然可以使用它。
JohnZaj 2011年

@ user61000-我是否怀疑这只会改变IE的行为,而不会改变Firefox(或其他)浏览器的功能(因为我发现这是通过最新版本完成的)?
user66001 2014年

需要管理员权限:(
困惑

1
这也适用于Windows 7和8(可能还有10)。更新的链接:support.microsoft.com/en-us/kb/883260。这也会影响Chrome和我认为的Firefox。
Thaimin 2015年

8

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

假设您的问题与文件数量而不是文件大小有关,那么最简单的方法可能是将文件移动(而不是复制)到FAT格式的驱动器,然后将其移回到NTFS驱动器(几乎每个USB记忆棒都格式化为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\""
    
  • 保存文件。

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

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

资源


+1很棒的主意,可以减少此过程的时间。
user66001 2014年

在我以8.3格式添加streams.exe的路径后,它为我工作了:@="cmd /c C:\PROGRA~2\Sysinternals\streams.exe -d -s \"%1\""
Olivier Jacot-Descombes

我知道这是一个老话题,但是谢谢。互联网上有多个相同的reg脚本版本,其中大多数不起作用。我可以补充一点,这在Windows 7 Professional 64bit上对我有效。
trenten

5

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


2

我遇到了同样的问题,并且解除阻止文件的方式是:

  • 我将所有被阻止的文件添加到RAR存档中(我使用WinRAR)
  • 我删除了原始文件
  • 我从存档中提取了所有文件

现在,所有文件都被解除阻止。

对我来说,某些MSDN Magazine问题采用.chm格式,但是我认为文件类型并不重要。



1

我正在寻找一种批处理方法(不使用powershell),阅读这篇文章后,我想到了这个简单的解决方案

echo. > .\filename.zip:Zone.Identifier

这不会删除Zone.Identifier数据流,但清除它的内容似乎可以正常工作。

另一个解决方案(这将清除所有数据流并使用一个临时文件)

type filename.zip > filename.zip.tmp
move /y filename.zip.tmp filename.zip

0

我有一个USB外部硬盘驱动器,非常适合删除块...我做了一个小分区,并以FAT32格式进行了格式化。 :-)


这当然是一个很好的方法,但是GAThrawn的答案已经提到了
丹尼斯

在提供的解决方法中,可能是风险最小/步骤最密集的步骤。
user66001 2014年

-4

是。在命令提示符下,takeown /f <name of file>

就您而言,takeown /f *.* /r要递归到所有子目录并取消阻塞*.*。如有必要,请演奏该图案。

takeown /? 有关更多使用说明。


1
那将有什么帮助?
Werner Henze 2014年

-5

还有另一种简单的方法。只需选择文件或文件夹,右键单击它并选择Properties⇨Security⇨Edit,然后单击Full Control即可

之后,您只需单击[Save]并退出。


2
Windows并不是在其中存储文件来自另一台计算机的信息的地方。
Werner Henze 2014年

同意Werner Henze。但是,可惜-就像shreyas用unicode箭头所做的努力。
user66001 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.