"этот файл пришел с другого компьютера ..." - как я могу разблокировать все файлы в папке, не разблокируя их по отдельности?

<p>windows xp sp2 и windows vista заключают эту сделку, где информация о зоне сохраняется в загруженных файлах на разделы ntfs, так что она блокирует определенные файлы в определенных приложениях, пока вы не «разблокируете» файлы.</p><p>так, например, если вы загружаете zip-файл исходного кода, чтобы попробовать что-то, каждый файл отобразит это в настройках безопасности свойств файла.</p><blockquote> <p>«этот файл был получен с другого компьютера и может быть заблокирован для защиты этого компьютера»</p> </blockquote><p>вместе с кнопкой «разблокировать». некоторым программам все равно, но visual studio откажется загружать проекты в решения до тех пор, пока они не будут разблокированы.</p><p>хотя не очень сложно перейти к каждому файлу проекта и разблокировать его по отдельности, это боль. и это не появляется, вы можете разблокировать несколько выбранных файлов одновременно.</p><p>есть ли способ разблокировать все файлы в каталоге без необходимости обращаться к ним по отдельности?</p><p><strong> я знаю, что вы можете отключить это глобально для всех новых файлов, но допустим, я не хочу этого делать </strong></p>

<p>если вы загрузите <code>.zip</code> и разархивируете его, отдельные файлы будут отмечены в той же зоне, что и <code>.zip</code>. почти каждый раз, когда у меня есть папка, заполненная «заблокированными» файлами, я их так получаю.</p><p>перед разархивированием нажмите кнопку «разблокировать» на <code>.zip</code>.</p>

<p>powershell, доступный <a href="https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell">здесь</a> , имеет командлет <code>unblock-file</code>, который выполнит эту задачу за вас. чтобы разблокировать все файлы в каталоге, вы должны выполнить следующую команду.</p><p><code>dir c:\mydir -recurse | unblock-file</code></p><p> <a href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/unblock-file">unblock-file doc</a> </p>

<p>это довольно просто: ntfs подключает к файлу поток данных (который идентифицирует «небезопасные файлы»), когда он только загружается из интернета.</p><p>рекурсивно удалите этот поток для всех файлов, выполните следующие действия:</p><ol> <li>загрузите <a href="http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx">исполняемый файл streams cli</a> от microsoft</li> <li>поместите исполняемый файл streams.exe в свой каталог windows (или в любое место, где система может его найти)</li> <li>запустите эту строку в командной строке:</li> </ol><blockquote> <p>потоки -s -d<em> каталог </em></p> </blockquote><p>затем он рекурсивно удалит все потоки данных из всех файлов в каталоге - теперь вы успешно разблокировали все файлы.</p>

<p> <a href="http://www.nirsoft.net/utils/alternate\_data\_streams.html"><strong> alternatestreamview </strong></a> может перечислить все альтернативные потоки ntfs для файлов в каталоге (и подкаталогах, если необходимо).</p><p>удалите все потоки, помеченные «<em>: zone.identifier: $ data</em>» для выбранных файлов, чтобы избавиться от блоков безопасности.</p><p><img src="https://i.stack.imgur.com/qtyze.gif" alt="enter image description here"></p>

<p>очень простой обходной путь для такого рода связан с первым ответом, например, если у вас есть около 1000 заблокированных файлов, просто возьмите все файлы и поместите их в новую папку на рабочем столе (или в любую папку, в которой вы работаете) щелкните правой кнопкой мыши на указанной папке и затем нажмите кнопку «отправить», затем выберите «сжатая (заархивированная) папка», затем удалите исходные файлы и извлеките папку .zip и viola !!!. все ваши файлы разблокированы: d, сработало для меня на xp pro sp3, так что вроде бы он будет работать и на vista</p>

<p>чтобы отключить блокировку при загрузке файлов, откройте следующий раздел реестра:</p><pre><code>hkey\_current\_user\software\microsoft\windows\currentversion\policies\attachments\savezoneinformation </code></pre><p>измените savezoneinformation на 1.</p><p><strong> нота: </strong></p><ul> <li>0 = не настроен</li> <li>1 = включено</li> <li>2 = отключено</li> </ul>

<p>как сказал другой автор, флаг небезопасного файла хранится в потоке данных ntfs. это означает, что существует очень простой способ удалить этот поток данных, просто переместите файл на диск, который не поддерживает потоки данных ntfs.</p><p>если предположить, что ваша проблема больше связана с количеством файлов, а не с их размером, то самый простой способ сделать это - переместить<em> (не копировать) </em>файлы на диск в формате fat, а затем переместить их вернитесь на диск ntfs (почти каждая флешка отформатирована в fat32, что будет хорошо), а затем переместите эти файлы обратно туда, куда вы хотите.</p><p>я делал это раньше, когда хотел убрать флаг блокировки из целого каталога загруженных файлов, и он сделал именно то, что мне было нужно.</p>

<ul> <li>загрузите утилиту <a href="http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx">sysinternals streams</a> .</li> <li>разархивируйте и скопируйте streams.exe в\windows\system32.</li> <li>создайте новый текстовый файл и переименуйте его в нечто вроде «unblocker.reg».</li> <li> <p>скопируйте приведенный ниже скрипт реестра:</p> <pre><code>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\"" </code></pre></li> <li> <p>сохраните файл.</p> </li> <li>дважды щелкните сохраненный файл, чтобы объединить его с реестром.</li> </ul><p>после этого, когда вы щелкаете правой кнопкой мыши файл, вы можете выбрать «разблокировать файл» в контекстном меню или щелкнуть правой кнопкой мыши папку и выбрать «разблокировать файлы здесь».</p><p> <a href="http://obinshah.wordpress.com/2012/07/16/mass-unblock-files-remove-this-file-came-from-another-computer-warnings/">источник</a> </p>

<p>alternatestreamview отлично. другой способ - архивировать файлы в .rar, 7z или .zip. удалите оригиналы, а затем повторно извлеките файлы.</p>

<p>у меня была та же проблема, и способ, которым я разблокировал файлы, был:</p><ul> <li>я добавил все заблокированные файлы в архив rar (я использовал winrar)</li> <li>я удалил оригинальные файлы</li> <li>я извлек все файлы из архива</li> </ul><p>все файлы теперь разблокированы.</p><p>для меня это были некоторые проблемы msdn magazine, которые были в формате .chm, но я не думаю, что тип файла имеет значение.</p>

<p> <a href="http://www.gasanov.net/zoneidtrimmer.asp">zoneidtrimmer</a> выглядит как наиболее удобный инструмент для этого:</p><p><img src="https://i.stack.imgur.com/lg5rd.gif" alt="enter image description here"></p>

<p>я искал пакетный метод (без использования powershell) и после прочтения этого поста я придумал это простое решение</p><pre><code>echo. > .\filename.zip:zone.identifier </code></pre><p>это не удалит поток данных <code>zone.identifier</code>, но очистит его содержимое, которое, кажется, работает нормально.</p><p>другое решение (которое очистит все потоки данных и использует временный файл)</p><pre><code>type filename.zip > filename.zip.tmp move /y filename.zip.tmp filename.zip </code></pre>

<p>у меня есть внешний жесткий диск usb, который отлично работает для удаления блоков ... я сделал небольшой раздел и отформатировал его в fat32 .. когда я хочу удалить блок из чего-то, я просто перемещаю его на этот диск, а затем перемещаю обратно :-)</p>