183

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

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

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

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

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

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

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

15 ответов15

179

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

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

89

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

dir c:\mydir -Recurse | Unblock-File

Unblock-File doc

64

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

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

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

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

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

31

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

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

11

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

9

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

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

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

НОТА:

  • 0 = не настроен
  • 1 = включено
  • 2 = отключено
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\""
    
  • Сохраните файл.

  • Дважды щелкните сохраненный файл, чтобы объединить его с реестром.

После этого, когда вы щелкаете правой кнопкой мыши файл, вы можете выбрать "Разблокировать файл" в контекстном меню или щелкнуть правой кнопкой мыши папку и выбрать "Разблокировать файлы здесь".

источник

5

AlternateStreamView отлично. Другой способ - архивировать файлы в.RAR, 7z или.ZIP Удалите оригиналы, а затем повторно извлеките файлы.

2

У меня была та же проблема, и способ, которым я разблокировал файлы, был:

  • Я добавил все заблокированные файлы в архив RAR (я использовал WinRAR)
  • Я удалил оригинальные файлы
  • Я извлек все файлы из архива

Все файлы теперь разблокированы.

Для меня это были некоторые проблемы MSDN Magazine, которые были в формате .chm, но я не думаю, что тип файла имеет значение.

1

ZoneIDTrimmer выглядит как наиболее удобный инструмент для этого:

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 .. Когда я хочу удалить блок из чего-то, я просто перемещаю его на этот диск и затем перемещаю обратно :-)

-4

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

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

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

-5

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .