題 “此文件來自另一台計算機......” - 如何解鎖文件夾中的所有文件而無需單獨取消阻止?


Windows XP SP2和Windows Vista有這樣的協議,其中區域信息在下載的文件中保留到NTFS分區,這樣它就會阻止某些應用程序中的某些文件,直到您“解鎖”文件。

因此,例如,如果您下載源代碼的zip文件以嘗試一些內容,則每個文件都會在文件屬性的安全設置中顯示

“此文件來自另一台計算機,可能會被阻止以幫助保護此計算機”

以及“取消阻止”按鈕。有些程序並不關心,但Visual Studio將拒絕在解決方案中加載項目,直到它們被解除阻塞。

雖然轉到每個項目文件並單獨取消阻止並不是非常困難,但這很痛苦。並且您似乎無法同時取消阻止多個所選文件。

有沒有辦法解除阻止目錄中的所有文件,而無需單獨進行所有文件?

我知道你可以全局關閉所有新文件,但是我要說我不想這樣做


182
2017-09-09 15:23


起源


如何在全球範圍內解決這個問題?鏈接好嗎? :) 謝謝 - tkf144
是的,有史以來最糟糕的Windows“功能”...... - Brian Knoblauch
第二差。第一個最糟糕的是在新發現的媒體上自動運行,這就是開始這個爛攤子的原因。 - kmarsh
@Thomas正如其中一個答案所指出的,您可以通過設置註冊表項HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Attachments \ SaveZoneInformation = 1來完成此操作。更多信息: support.microsoft.com/kb/883260 - jamiebarrow
我在谷歌瀏覽器中的下載得到了標記,我必須取消阻止它們。 @jamiebarrow具有通過註冊表全局禁用此功能的正確信息,或者您可以使用本地組策略編輯器(gpedit.msc)並更改用戶配置>管理模板> Windows組件>附件管理器中的設置>不保留區域信息在文件附件中>已啟用。 - Baodad


答案:


如果你下載一個 .ZIP 並解壓縮,單個文件將被標記為與。相同的區域 .ZIP。幾乎每次我有一個裝滿“被阻止”文件的文件夾,這就是我得到它們的方式。

在解壓縮之前,單擊上的“取消阻止”按鈕 .ZIP


178



這個絕對是最簡單的 - 你贏了 - Tom Kidd
我得到了同樣的結論 - 一種以非NTFS方式打包文件的簡單方法 - 通過在Google上搜索這些術語來發現這一點:取消阻止目錄xp中的所有文件。 - Will Bickford
實際上,沒有。我下載zip文件以使用內容,我讓我的瀏覽器自動打開zip文件。從那裡我調用“提取所有文件”。沒有選項可以從這些位置取消阻止,並蒐索下載文件夾中的zip文件,或者更糟糕的是,臨時文件夾, 非常 乏味。 - Thomas Eyde
我希望我能不止一次地贊成這一點。 - dave thieben
此解決方案僅在您未修改ZIP文件中的文件時才有效。 - Charlie


PowerShell,可用 這裡,有一個 Unblock-File 將為您執行此任務的cmdlet。要取消阻止目錄中的所有文件,您將發出以下命令。

dir c:\mydir -Recurse | Unblock-File

取消阻止文件doc


86



不再只是Beta,它已經發布並且運行良好。 - Ken Hiatt
優秀!我提取了一個大拉鍊並忘記先解鎖它,然後刪除了拉鍊以節省空間。這節省了我再次下載或手動工作:) - Danny Tuppeny
這對我有用,但沒有在cmd線提供任何反饋。我也稍微調整了一下,如果你已經在文件夾中那麼你就可以做到 dir -Recurse | Unblock-File - user36088
像冠軍一樣工作。這應該是公認的答案。 - Chuck Conway
完善。這應該是公認的答案。如果你記得它,解鎖zip是很好的花花公子,但這種方法同時為一堆文件做這個很好。 - Bas


這很簡單,當NTFS從Internet上下載時,NTFS將一個數據流(ID“不安全文件”)附加到該文件中。

以遞歸方式刪除所有文件的此流,請按照下列步驟操作:

  1. 下載 Streams CLI可執行文件 來自微軟
  2. 將streams.exe可執行文件放在Windows目錄中(或系統可以找到它的任何位置)
  3. 在命令行中運行此行:

streams -s -d 目錄

然後它將從目錄中遞歸刪除所有文件中的所有數據流 - 您現在已成功取消阻止所有文件。


64



可能很危險。 Windows還將流用於其他目的。 - harrymc
非常罕見 - 數據流幾乎不用於任何東西,因為它是一個未記錄的功能。如果正如schnapple所說的那樣,那將是安全的 - 他只想取消阻止某個目錄中的文件,這些文件已知是通過互聯網接收的文件。在任何時候我都不建議他做_streams -s -d C:_ :) - caliban
剛剛檢查過(因為Streams是一個未記錄的功能,但很難對其進行驗證),他們認為,一旦文檔通過Internet傳輸或通過NTFS之外的其他任何內容,它就會丟失所有流數據。因此,當您首次從Internet下載內容時,您將擁有的唯一數據流是“不安全文件”數據流。 - caliban
為什麼你認為他們沒有記錄? (msdn.microsoft.com/en-us/library/aa364404(VS.85).aspx) - Reuben
除非您擁有這些NTFS加密文件的備份副本,否則不要盲目刪除所有備用數據流。 - Ian Boyd


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

刪除標記為“的所有流:Zone.Identifier:$ DATA“為選定的文件擺脫安全塊。

enter image description here


31



還有另一種用於此目的的工具 - ZoneIDTrimmer - itsho
@ZoneIDTrimmer - 不確定我理解。還有什麼工具? - user66001
ZoneIDTrimmer是工具的名稱,而不是人員的別名。 - Snark


這種方法的一個非常簡單的解決方法是第一個答案,比如你有大約1000個被阻止的文件只需要獲取所有文件,並將它們放在桌面上的新文件夾中(或者你正在使用的任何文件夾目錄)他們右鍵單擊所述文件夾,然後單擊發送到然後選擇單擊壓縮(zipped)文件夾,然後刪除原始文件並解壓縮.ZIP文件夾和Viola !!!所有文件都被解鎖:D,工作對於我在XP專業版SP3上,所以有點假設它也適用於Vista


11



到目前為止工作量最少。太好了! - RomanSt


要在下載文件時禁用阻止,請打開以下註冊表​​項:

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

將SaveZoneInformation更改為1。

注意: 

  • 0 =未配置
  • 1 =已啟用
  • 2 =已禁用

9



我在Windows 7上沒有這個選項,文章只提到了XP。不過,看起來很有趣。 - AndrejaKo
你可以添加啟用/禁用密鑰嗎?僅僅因為你沒有用戶策略密鑰只意味著它沒有這樣設置;你仍然可以使用它。 - JohnZaj
@ user61000 - 我懷疑這只會改變IE的行為,而不是(因為我發現現在已經完成了最新版本的)Firefox(或其他)瀏覽器? - user66001
需要管理員權限:( - Quandary
這適用於Windows 7和8(可能還有10個)。更新鏈接: support.microsoft.com/en-us/kb/883260。這也影響Chrome,我認為Firefox。 - thaimin


正如另一張海報所說,不安全的文件標誌存儲在NTFS數據流中。這意味著有一種非常簡單的方法可以刪除此數據流,只需將文件移動到不支持NTFS數據流的驅動器即可。

假設你的問題與文件數量有關,而不是它們的大小,那麼最簡單的方法就是移動 (不是複制) 文件到FAT格式化的驅動器,然後將它們移回NTFS驅動器(幾乎每個USB棒都格式化為FAT32,所以會很好),然後將這些文件移回你想要的位置。

之前我已經完成了這項工作,因為我想從已下載文件的整個目錄中刪除被阻止的標誌,它完全符合我的需要。


8





  • 下載 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\""
    
  • 保存文件。

  • 雙擊保存的文件以將其合併到註冊表中。

在此之後,無論何時右鍵單擊文件,都可以在上下文菜單中選擇“取消阻止文件”,也可以右鍵單擊文件夾並選擇“在此處取消阻止文件”。

資源


7



+1很棒的想法讓這個過程不那麼耗時。 - user66001
在我以8.3格式添加streams.exe的路徑後,它對我有用: @="cmd /c C:\PROGRA~2\Sysinternals\streams.exe -d -s \"%1\"" - Olivier Jacot-Descombes
我知道這是一個老線程,但謝謝。互聯網上有相同註冊腳本的多個版本,其中大部分都不起作用。我可以補充一點,這在Windows 7專業版64位上對我有用。 - trenten


AlternateStreamView很棒。另一種方法是將文件存檔到.RAR,7z或.ZIP。刪除原件,然後重新提取文件。


5