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


186

В Windows XP с пакетом обновления 2 (SP2) и Windows Vista имеется соглашение, в котором информация о зоне сохраняется в загруженных файлах в разделы NTFS, так что она блокирует определенные файлы в определенных приложениях до тех пор, пока вы не «разблокируете» файлы.

Так, например, если вы загружаете zip-файл исходного кода, чтобы попробовать что-то, каждый файл отобразит это в настройках безопасности свойств файла.

«Этот файл был получен с другого компьютера и может быть заблокирован для защиты этого компьютера»

Вместе с кнопкой «Разблокировать». Некоторым программам все равно, но Visual Studio откажется загружать проекты в решения до тех пор, пока они не будут разблокированы.

Хотя не очень сложно перейти к каждому файлу проекта и разблокировать его по отдельности, это боль. И это не появляется, вы можете разблокировать несколько выбранных файлов одновременно.

Есть ли способ разблокировать все файлы в каталоге без необходимости обращаться к ним по отдельности?

Я знаю, что вы можете отключить это глобально для всех новых файлов, но допустим, я не хочу этого делать


30
Как можно отключить это глобально? Ссылку пожалуйста? :) Спасибо
underskor

19
Да, худшая "особенность" Windows когда-либо ...
Брайан Ноблаух

16
Второе худшее. Первый худший - это автоматический запуск на только что найденном носителе, с которого и начался этот беспорядок.
Kmarsh

6
@Thomas Как указывает один из ответов, вы можете сделать это, установив ключ реестра HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Attachments \ SaveZoneInformation = 1. Дополнительная информация: support.microsoft.com/kb/883260
jamiebarrow

3
Мои загрузки в Google Chrome помечаются, и я должен разблокировать их. @jamiebarrow обладает необходимой информацией для ее глобального отключения через реестр, или вы можете использовать редактор локальной групповой политики (gpedit.msc) и изменить настройку в разделе «Конфигурация пользователя»> «Административные шаблоны»> «Компоненты Windows»> «Менеджер вложений»> «Не сохранять информацию о зоне». в прикрепленных файлах> Включено.
Baodad

Ответы:


180

Если вы загрузите .ZIPи разархивируете его, отдельные файлы будут помечены в той же зоне, что и .ZIP. Почти каждый раз, когда у меня есть папка, заполненная «заблокированными» файлами, я их так получаю.

Перед разархивированием нажмите кнопку Разблокировать на .ZIP.


1
Это определенно самый простой - ты выигрываешь
Том Кидд

+1 к тому же выводу, к которому я пришел - простой способ упаковки файлов не в формате NTFS - нашел это, выполнив поиск в Google по следующим условиям: разблокируйте все файлы в каталоге xp.
Уилл Бикфорд

3
Вообще-то, нет. Я загружаю zip-файлы, чтобы использовать содержимое, и я позволяю своему браузеру автоматически открывать zip-файлы. Оттуда я призываю «Извлечь все файлы». Нет возможности разблокировать их в этом месте, и поиск файла zip в папке загрузки или, что еще хуже, в папке temp очень утомителен.
Томас Эйд

Хотелось бы, чтобы я высказался об этом не раз.
Дэйв Тибен

Это решение работает, только если вы не изменили файлы, которые вышли из ZIP-файла.
Чарли

90

PowerShell, доступный здесь , имеет Unblock-Fileкомандлет, который выполнит эту задачу за вас. Чтобы разблокировать все файлы в каталоге, вы должны выполнить следующую команду.

dir c:\mydir -Recurse | Unblock-File

Unblock-File doc


2
Это уже не бета-версия, она выпущена и работает довольно хорошо.
Кен Хайатт

Отлично! Я извлек большой почтовый индекс и забыл сначала разблокировать его, а затем удалил почтовый индекс, чтобы сэкономить место. Это спасло меня от повторной загрузки или загрузки ручной работы :)
Дэнни Таппени,

3
Это сработало для меня, но не предоставило никакой обратной связи по линии cmd. Я также немного подправил, если вы уже в папке, то вы можете просто сделатьdir -Recurse | Unblock-File
user36088

3
Работает как чемпион. Это должен быть принятый ответ.
Чак Конвей

1
Отлично. Это должен быть принятый ответ. Разблокировка почтового индекса хороша и прекрасна, если вы помните это, но этот метод для того, чтобы сделать это для множества файлов сразу, великолепен.
Бас

64

Это довольно просто: NTFS подключает к файлу поток данных (который идентифицирует «небезопасные файлы»), когда он только загружается из Интернета.

Рекурсивно удалите этот поток для всех файлов, выполните следующие действия:

  1. Загрузите исполняемый файл Streams CLI от Microsoft
  2. Поместите исполняемый файл streams.exe в свой каталог Windows (или в любое место, где система может его найти)
  3. Запустите эту строку в командной строке:

каталоги streams -s -d

Затем он рекурсивно удалит все потоки данных из всех файлов в каталоге - теперь вы успешно разблокировали все файлы.


9
Может быть опасно. Windows также использует потоки для других целей.
Harrymc

6
Очень редко - потоки данных почти не используются, поскольку это недокументированная функция. Будет безопасно, если, как сказал schnapple, он просто хочет разблокировать файлы в определенном каталоге, которые, как известно, являются документами, полученными через Интернет. Ни в коем случае я не рекомендую ему делать _streams -s -d C: _ :)
caliban

6
только что проверил (так как Streams - недокументированная функция, которую трудно проверить) с некоторыми людьми, и они считают, что, как только документ передается через Интернет или проходит через что-либо кроме NTFS, он теряет все данные потока. В результате, когда вы впервые загружаете что-то из Интернета, единственный поток данных, который у вас будет, - это поток данных «Небезопасный файл».
калибр

22
Почему вы думаете, что они не задокументированы? ( msdn.microsoft.com/en-us/library/aa364404(VS.85).aspx )
Рувим

6
Не удаляйте вслепую все альтернативные потоки данных, если у вас нет резервных копий этих зашифрованных файлов NTFS.
Ян Бойд

31

AlternateStreamView может перечислять все альтернативные потоки NTFS для файлов в каталоге (и подкаталогах, если это необходимо).

Удалите все потоки, помеченные « : Zone.Identifier: $ DATA » для выбранных файлов, чтобы избавиться от блоков безопасности.

введите описание изображения здесь


1
Есть еще один инструмент для этой цели - ZoneIDTrimmer
itho

@ZoneIDTrimmer - Не уверен, что понимаю. Какой другой инструмент?
user66001

5
ZoneIDTrimmer - это имя инструмента, а не псевдоним человека.
Снарк

11

Очень простой обходной путь для такого рода связан с первым ответом, например, если у вас есть около 1000 заблокированных файлов, просто возьмите все файлы и поместите их в новую папку на рабочем столе (или в любую папку, в которой вы работаете) щелкните правой кнопкой мыши на указанной папке и затем нажмите кнопку «Отправить», затем выберите «Сжатая (заархивированная) папка», затем удалите исходные файлы и извлеките папку .ZIP и Viola !!!. Все ваши файлы разблокированы: D, сработало для меня на XP Pro SP3, так что вроде бы он будет работать и на Vista


Безусловно, наименьшее количество работы. Приятно!
RomanSt

9

Чтобы отключить блокировку при загрузке файлов, откройте следующий раздел реестра:

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

Измените SaveZoneInformation на 1.

НОТА:

  • 0 = не настроен
  • 1 = включено
  • 2 = отключено

2
У меня нет такой опции в Windows 7, а в статье упоминается только XP. Все-таки выглядит интересно.
AndrejaKo

Можете ли вы добавить ключ для включения / выключения? Тот факт, что у вас нет ключа политики пользователя, означает, что он не был настроен таким образом; Вы все еще можете использовать его.
JohnZaj

@ user61000 - Правильно ли я подозреваю, что это только меняет поведение IE, а не (как я выяснил, теперь сделано с последней версией) браузеров Firefox (или других)?
user66001

Требуются права администратора :(
Задор

1
Это работает и в Windows 7 и 8 (и, вероятно, 10). Обновленная ссылка: support.microsoft.com/en-us/kb/883260 . Это также влияет на Chrome, и я думаю, что Firefox.
Таймин

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

Это сработало для меня, после того, как я добавил путь к streams.exe в формате 8.3:@="cmd /c C:\PROGRA~2\Sysinternals\streams.exe -d -s \"%1\""
Оливье Жако-Дескомбс

Я знаю, что это старая тема, но спасибо. В Интернете существует несколько версий одного и того же сценария reg, и большинство из них не работают. Я могу добавить, что это работало для меня на Windows 7 Professional 64bit.
Трентен

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

-4

Да. В командной строке takeown /f <name of file>.

В вашем случае takeown /f *.* /rзайти во все подкаталоги и разблокировать *.*. Играйте с шаблоном, если это необходимо.

takeown /? для получения дополнительных инструкций по использованию.


1
Как это поможет?
Вернер Хенце

-5

Есть еще один простой способ. Просто выберите файл или папку, щелкните правой кнопкой мыши и выберите « Свойства» - « Безопасность» - « Редактирование» , затем нажмите « Полный доступ» .

После этого вы должны просто нажать [Save]и выйти.


2
Это не то место, где Windows хранит информацию о том, что файл поступает с другого компьютера.
Вернер Хенце

Согласитесь, Вернер Хенце . Жаль, хотя - как усилие шреи со стрелами юникода.
user66001
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.