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

例如您下载源代码的zip文件尝试一下后,每个文件都会在文件属性的安全设置中显示此文件。


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


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

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

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

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

评论

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

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

第二坏。第一个最糟糕的情况是在新发现的媒体上自动运行,这就是造成这种混乱的原因。
@Thomas作为答案之一,您可以通过设置注册表项HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Attachments \ SaveZoneInformation = 1来执行此操作。更多信息:support.microsoft.com/kb/883260

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

#1 楼

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

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

评论


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

–汤姆·基德(Tom Kidd)
09年9月9日在16:03

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

–威尔·比克福德
09年9月9日在18:19

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

–托马斯·爱德(Thomas Eyde)
2010-09-16 11:29

我希望我可以不止一次投票。

–戴夫·蒂本
2011年6月1日19:57

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

–查理
2013年9月4日19:11

#2 楼

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

dir c:\mydir -Recurse | Unblock-File

取消阻止文件doc

评论


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

– Ken Hiatt
13年7月13日在20:12

优秀的!我提取了一个大的zip包,却忘记先取消对其进行解锁,然后删除了该zip包以节省空间。这节省了我再次下载它或手动工作的负担:)

–丹尼·特彭尼(Danny Tuppeny)
2014年6月1日12:49

这对我有用,但没有在cmd行提供任何反馈。我也做了一些微调,如果您已经在文件夹中,则可以执行dir -Recurse |取消阻止文件

–user36088
2014年9月12日在2:44

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

– Chuck Conway
2015年2月19日在7:25

完善。这应该是公认的答案。如果您记得它,则对zip进行解锁可以很好并且很花哨,但是这种同时处理一堆文件的方法很棒。

–巴斯
17年5月11日在11:20

#3 楼

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

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


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


streams -s -d目录


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

评论


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

–harrymc
09-09-9 15:41

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

– Caliban
09-09-9 15:46

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

– Caliban
09-09-9 15:54

您为什么认为这些文件没有记录? (msdn.microsoft.com/zh-cn/library/aa364404(VS.85).aspx)

–鲁本
09年9月9日在16:12

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

–伊恩·博伊德(Ian Boyd)
09年12月15日在20:51

#4 楼

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

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



评论


有另一种工具可以实现此目的-ZoneIDTrimmer

–itsho
2014年3月3日在7:08



@ZoneIDTrimmer-不确定我是否理解。还有什么其他工具?

–user66001
2014年5月11日20:36

ZoneIDTrimmer是工具的名称,而不是人员的别名。

–蛇
2014年5月11日在21:13

#5 楼

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

评论


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

–RomanSt
2015年11月9日14:53

#6 楼

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

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


将SaveZoneInformation更改为1。

注意:


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


评论


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

– AndrejaKo
2010-12-31 11:41

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

– JohnZaj
2011年6月13日11:22



@ user61000-我是否怀疑这只会改变IE的行为,而不会改变Firefox(或其他)浏览器的功能(因为我发现现在已使用最新版本)?

–user66001
2014年5月11日19:55

需要管理员权限:(

–四进制
15年1月8日在10:11

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

–泰国语
15年8月15日在19:39

#7 楼

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

假设您的问题与文件,而不是文件的大小,那么最简单的方法可能是将文件移动(而不是复制)到FAT格式的驱动器,然后再将它们移回到NTFS驱动器(几乎每个USB记忆棒都被格式化为FAT32,因此做得很好),然后将那些文件移回您想要的位置。

我想从下载文件的整个目录中删除被阻止的标志之前就已经做到了正是我需要的。

#8 楼


下载Sysinternals Streams实用程序。
解压缩stream.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年5月11日19:56

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

–奥利维尔·雅科特·德ombes
2014年9月27日下午16:21

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

– Trenten
16年7月28日在18:28

#9 楼

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

#10 楼

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


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

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

对我来说,这是MSDN Magazine发行的.chm格式的问题,但我认为文件类型不重要。

#11 楼

ZoneIDTrimmer看起来是为此提供的最用户友好的工具:



#12 楼

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

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


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

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

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


#13 楼

我有一个USB外部硬盘驱动器,非常适合删除块...我做了一个小分区,并以FAT32格式进行了格式化..当我想从某个块中删除块时,我只是将其移至该驱动器,然后再移回:-)

评论


这当然是一个很好的方法,但是GAThrawn的答案中已经提到了它。

–丹尼斯
13年2月18日在3:54

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

–user66001
2014年5月11日19:58

#14 楼

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

在您的情况下,请takeown /f *.* /r递归到所有子目录并取消阻止*.*。如有必要,请使用该图案。

takeown /?了解更多使用说明。

评论


那将有什么帮助?

–温纳·亨泽(Werner Henze)
2014年1月22日上午10:28

#15 楼

还有另一种简单的方法。只需选择文件或文件夹,右键单击它,然后选择“属性”⇨“安全性”⇨“编辑”,然后单击“完全控制”。

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

评论


Windows不在这里存储文件来自另一台计算机的信息。

–温纳·亨泽(Werner Henze)
2014年1月22日上午10:30

同意Werner Henze。但是,可惜-就像shreyas用unicode箭头所做的努力。

–user66001
2014年5月11日20:22