it-swarm.xyz

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

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

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

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

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

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

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

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

185
Tom Kidd

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

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

180
Jay Bazuzi

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

dir c:\mydir -Recurse | Unblock-File

Unblock-File doc

90
pk.

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

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

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

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

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

64
caliban

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

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

enter image description here

31
Snark

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

11
Kristian

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

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

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

НОТА:

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

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

Если предположить, что ваша проблема больше связана с количеством файлов, а не с их размером, то самый простой способ сделать это - переместить (не копировать) файлы на диск в формате FAT, а затем переместить их вернитесь на диск NTFS (почти каждая флешка отформатирована в FAT32, что будет хорошо), а затем переместите эти файлы обратно туда, куда вы хотите.

Я делал это раньше, когда хотел убрать флаг блокировки из целого каталога загруженных файлов, и он сделал именно то, что мне было нужно.

8
GAThrawn
  • Загрузите утилиту 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
creapure90

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

5
Alec

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

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

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

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

2
leoinfo

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

enter image description here

1
RomanSt

Я искал пакетный метод (без использования powershell) и после прочтения этого поста я придумал это простое решение

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

это не удалит поток данных Zone.Identifier, но очистит его содержимое, которое, кажется, работает нормально.

Другое решение (которое очистит все потоки данных и использует временный файл)

type filename.Zip > filename.Zip.tmp
move /y filename.Zip.tmp filename.Zip
1
Jürgen Steinblock

У меня есть внешний жесткий диск USB, который отлично работает для удаления блоков ... Я сделал небольшой раздел и отформатировал его в FAT32 .. Когда я хочу удалить блок из чего-то, я просто перемещаю его на этот диск, а затем перемещаю обратно :-)

0
user200075