"Цей файл прийшов з іншого комп'ютера ..." - як я можу розблокувати всі файли в папці, не розблоковуючи їх окремо?


186

У Windows XP SP2 та Windows Vista є ця угода, коли інформація про зону зберігається у завантажених файлах на розділи NTFS, таким чином, що вона блокує певні файли в певних програмах, поки ви не "розблокуєте" файли.

Наприклад, якщо ви завантажуєте поштовий файл вихідного коду, щоб щось випробувати, кожен файл відображатиме це в налаштуваннях безпеки властивостей файлу

"Цей файл прийшов з іншого комп'ютера і може бути заблокований, щоб захистити цей комп'ютер"

Поряд із кнопкою "Розблокувати". Деякі програми не хвилюються, але Visual Studio відмовиться завантажувати проекти в рішення, поки їх не розблокують.

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

Чи є можливість розблокувати всі файли в каталозі, не переходячи до них усі окремо?

Я знаю, що ви можете вимкнути це глобально для всіх нових файлів, але скажімо, я не хочу цього робити


30
Як це вимкнути глобально? Посилання, будь ласка? :) Дякую
підкреслюємо

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> Диспетчер додатків> Не зберігати інформацію про зону у вкладених файлах> Увімкнено.
Баодад

Відповіді:


180

Якщо ви завантажите .ZIPі розпакуйте його, окремі файли будуть позначені як та сама зона, що і .ZIP. Майже кожен раз, коли у мене є папка, повна "заблокованих" файлів, ось як я їх отримав.

Перш ніж розпакувати, натисніть кнопку Розблокувати на .ZIP.


1
Цей, безумовно, найпростіший - ви виграєте
Том Кідд,

+1 той самий висновок, до якого я прийшов - простий спосіб упаковки файлів не-NTFS - знайшов це шляхом пошуку в Google цих термінів: розблокувати всі файли в каталозі xp.
Буде Бікфорд

3
Власне, ні. Я завантажую zip-файли для використання вмісту, і я дозволяю браузеру автоматично відкривати zip-файл. Звідти я викликаю "Витягнути всі файли". Немає можливості розблокувати з цього місця, і пошук поштового файлу в папці для завантаження або ще гірше, тимчасова папка - дуже стомлюючий.
Thomas Eyde

Я б хотів, щоб я міг підтримати це не раз.
dave thieben

Це рішення працює лише в тому випадку, якщо ви не змінили файли, які вийшли з ZIP-файлу.
Чарлі

90

PowerShell, доступний тут , має Unblock-Fileкомандлет, який зробить це завдання за вас. Щоб розблокувати всі файли в каталозі, ви видасте таку команду.

dir c:\mydir -Recurse | Unblock-File

Розблокувати-файл док


2
Це вже не просто Beta, це випущено і працює досить добре.
Ken Hiatt

Відмінно! Я витягнув велику блискавку і забув спочатку її розблокувати, а потім видалив блискавку, щоб заощадити місце. Це врятувало мене, завантажуючи його знову або завантажуючи ручну роботу :)
Danny Tuppeny,

3
Це працювало для мене, але не надало жодних відгуків у рядку cmd. Я також трохи підмітив це, якщо ви вже в папці, то можете просто зробитиdir -Recurse | Unblock-File
user36088

3
Працює як чемпіон. Це має бути прийнятою відповіддю.
Чак Конвей

1
Ідеально. Це має бути прийнятою відповіддю. Розблокувати zip - це чудово і безпроблемно, якщо ви його пам’ятаєте, але цей спосіб зробити це для купи файлів відразу всі чудово.
Бас

64

Це досить просто: NTFS приєднав потік даних (що ідентифікує "небезпечні файли") до файлу, коли він просто завантажується з Інтернету.

Рекурсивно видаляйте цей потік для всіх файлів, виконайте наступні дії:

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

каталог потоків -s -d

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


9
Може бути небезпечним. Windows також використовує потоки для інших цілей.
harrymc

6
Дуже рідко - потоки даних майже не використовуються ні для чого, оскільки це недокументована функція. Це буде безпечно, якщо, як сказав шнапл, - він просто хоче розблокувати файли в певному каталозі, який, як відомо, є документами, отриманими через Інтернет. Я в даний момент не рекомендую йому робити _streams -s -d C: _ :)
caliban

6
щойно перевірений (оскільки потоки - це незадокументована функція, але важко перевірити) з деякими людьми, і вони вважають, що після того, як документ буде передано через Інтернет або перейде через що-небудь крім NTFS, він втрачає всі дані потоку. Як результат, коли ви вперше щось завантажуєте з Інтернету, єдиний у вас потік даних - це потік даних "Небезпечний файл".
Калібан

22
Чому, на вашу думку, вони не задокументовані? ( msdn.microsoft.com/en-us/library/aa364404(VS.85).aspx )
Reuben

6
Не видаляйте наосліп всі альтернативні потоки даних, якщо у вас немає резервних копій цих зашифрованих файлів NTFS.
Ян Бойд

31

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

Видаліть усі потоки з позначкою " : Zone.Identifier: $ DATA " для вибраних файлів, щоб позбутися блоків безпеки.

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


1
Для цього є ще один інструмент - ZoneIDTrimmer
itho

@ZoneIDTrimmer - Не впевнений, що я розумію. Який ще інструмент?
user66001

5
ZoneIDTrimmer - це назва інструменту, а не псевдонім людини.
Снарк

11

Дуже просте вирішення цього виду пов'язане з першою відповіддю: скажімо, якщо у вас близько 1000 файлів, які заблоковані, просто візьміть усі файли та покладіть їх у нову папку на робочому столі (або в будь-який каталог папок, в якому ви працюєте. клацніть правою кнопкою миші зазначену папку, а потім натисніть кнопку «Надіслати до», а потім виберіть із параметрів. Клацніть «Стиснута (з блискавками») папка, після чого видаліть свої оригінальні файли та витягніть папку .ZIP та Віола !!! всі ваші файли розблокуються: 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.
thaimin

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\""
Олів'є Якот-Дескомб

Я знаю, що це стара тема, але дякую. В Інтернеті є кілька версій одного і того ж сценарію рег., І більшість з них не працює. Можу додати, що це працювало для мене на Windows 7 professional 64bit.
trenten

5

AlternateStreamView чудово. Ще один метод - це архівування файлів у .RAR, 7z або .ZIP. Видаліть оригінали, а потім повторно витягніть файли.


2

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

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

Усі файли тепер розблоковані.

Для мене це були деякі випуски журналу MSDN у форматі .chm, але я не думаю, що тип файлу має значення.



1

Я шукав пакетний метод (не використовуючи powerhell), і прочитавши цю публікацію, я придумав це просте рішення

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 зберігає інформацію про те, що файл надходить з іншого комп'ютера.
Вернер Гензе

Погодьтеся, Вернер Гензе . Шкода, хоч - як зусилля шрея зі стрілками Unicode.
user66001
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.