„Ten plik pochodzi z innego komputera…” - jak mogę odblokować wszystkie pliki w folderze bez konieczności indywidualnego odblokowywania?

186

Systemy Windows XP SP2 i Windows Vista mają tę umowę, w której informacje o strefie są zachowane w pobranych plikach na partycje NTFS, tak że blokuje pewne pliki w niektórych aplikacjach, dopóki pliki nie zostaną odblokowane.

Na przykład, jeśli pobierzesz plik zip z kodem źródłowym, aby wypróbować coś, każdy plik wyświetli to w ustawieniach bezpieczeństwa właściwości pliku

„Ten plik pochodzi z innego komputera i może zostać zablokowany w celu ochrony tego komputera”

Wraz z przyciskiem „Odblokuj”. Niektóre programy nie dbają o to, ale Visual Studio odmówi załadowania projektów do rozwiązań, dopóki nie zostaną odblokowane.

Chociaż przejście do każdego pliku projektu i odblokowanie go indywidualnie nie jest trudne, jest to uciążliwe. I nie wydaje się, że możesz odblokować wiele wybranych plików jednocześnie.

Czy istnieje sposób odblokowania wszystkich plików w katalogu bez konieczności przechodzenia do nich osobno?

Wiem, że możesz to wyłączyć globalnie dla wszystkich nowych plików, ale powiedzmy, że nie chcę tego robić

Tom Kidd
źródło
30
Jak można to wyłączyć na całym świecie? Link proszę? :) Dzięki
underskor
19
Tak, najgorsza „funkcja” systemu Windows w historii…
Brian Knoblauch,
16
Drugi najgorszy. Pierwszym najgorszym jest automatyczne uruchamianie na nowo odkrytych mediach, co spowodowało ten bałagan.
kmarsh
6
@ Thomas Jak wskazuje jedna z odpowiedzi, można to zrobić, ustawiając klucz rejestru HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Attachments \ SaveZoneInformation = 1. Więcej informacji: support.microsoft.com/kb/883260
jamiebarrow,
3
Moje pliki do pobrania w Google Chrome są oznaczone i muszę je odblokować. @jamiebarrow ma odpowiednie informacje do globalnego wyłączenia tego poprzez rejestr lub możesz użyć Edytora lokalnych zasad grupy (gpedit.msc) i zmienić ustawienie w Konfiguracja użytkownika> Szablony administracyjne> Składniki systemu Windows> Menedżer załączników> Nie zachowuj informacji o strefie w załącznikach plików> Włączone.
Baodad

Odpowiedzi:

180

Jeśli pobierzesz .ZIPi rozpakujesz, poszczególne pliki zostaną oznaczone jako ta sama strefa co .ZIP. Niemal za każdym razem, gdy mam folder pełen „zablokowanych” plików, tak je dostałem.

Przed rozpakowaniem kliknij przycisk Odblokuj na .ZIP.

Jay Bazuzi
źródło
1
Ten jest zdecydowanie najłatwiejszy - wygrywasz
Tom Kidd
+1 ten sam wniosek, do którego doszedłem - łatwy sposób na pakowanie plików w sposób inny niż NTFS - znalazłem to, wyszukując w Google następujące hasła: odblokuj wszystkie pliki w katalogu xp.
Will Bickford,
3
Właściwie nie. Pobieram pliki zip, aby użyć zawartości i pozwalam przeglądarce na automatyczne otwieranie pliku zip. Stamtąd wywołuję „Wyodrębnij wszystkie pliki”. Nie ma opcji odblokowania z tej lokalizacji, a przeszukanie pliku zip w folderze pobierania lub, co gorsza, folderu tymczasowego, jest bardzo nużące.
Thomas Eyde,
Chciałbym móc to głosować więcej niż raz.
dave thieben
To rozwiązanie działa tylko wtedy, gdy nie zmodyfikowano plików pochodzących z pliku ZIP.
Charlie
90

Dostępny tutaj PowerShell ma polecenie Unblock-Filecmdlet, które wykona to zadanie za Ciebie. Aby odblokować wszystkie pliki w katalogu, wydaj następujące polecenie.

dir c:\mydir -Recurse | Unblock-File

Odblokuj plik doc

pk.
źródło
2
Ta wersja nie jest już tylko wersją beta, ale działa całkiem dobrze.
Ken Hiatt,
Doskonały! Wyodrębniłem duży zip i zapomniałem go najpierw odblokować, a następnie usunąłem zip, aby zaoszczędzić miejsce. To pozwoliło mi zaoszczędzić na ponownym pobraniu go lub obciążeniu pracą :)
Danny Tuppeny
3
To działało dla mnie, ale nie dostarczyło żadnych informacji zwrotnych na linii cmd. Ulepszyłem go również nieco, jeśli już jesteś w folderze, możesz po prostu zrobićdir -Recurse | Unblock-File
user36088
3
Działa jak mistrz. To powinna być zaakceptowana odpowiedź.
Chuck Conway,
1
Doskonały. To powinna być zaakceptowana odpowiedź. Odblokowanie zip jest w porządku i eleganckie, jeśli go pamiętasz, ale ta metoda robienia tego dla wielu plików jednocześnie jest świetna.
Bas
64

To dość proste, NTFS dołączył strumień danych (który identyfikuje „niebezpieczne pliki”) do pliku, gdy jest on tylko pobierany z Internetu.

Usuń rekurencyjnie ten strumień dla wszystkich plików, wykonaj następujące kroki:

  1. Pobierz plik wykonywalny interfejsu CLI Streams z firmy Microsoft
  2. Umieść plik wykonywalny streams.exe w katalogu Windows (lub w dowolnym miejscu, w którym system może go znaleźć)
  3. Uruchom ten wiersz w wierszu polecenia:

katalog strumieni -s -d

Następnie usunie wszystkie strumienie danych ze wszystkich plików rekurencyjnie w katalogu - teraz pomyślnie odblokowałeś wszystkie pliki.

kaliban
źródło
9
Może być niebezpieczne. Windows używa również strumieni do innych celów.
harrymc
6
Bardzo rzadko - strumienie danych są rzadko używane do niczego, ponieważ jest to funkcja nieudokumentowana. Będzie to bezpieczne, jeśli - jak powiedział schnapple - chce po prostu odblokować pliki w pewnym katalogu, o których wiadomo, że są dokumentami otrzymanymi przez Internet. W żadnym momencie nie polecam mu robić _streams -s -d C: _ :)
caliban
6
właśnie sprawdziłem (ponieważ Strumienie to funkcja nieudokumentowana, ale trudno to zweryfikować) z niektórymi ludźmi i uważają, że po przesłaniu dokumentu przez Internet lub przejściu przez coś innego niż NTFS, traci on wszystkie dane strumieniowe. W rezultacie, gdy pobierasz coś z Internetu po raz pierwszy, jedynym strumieniem danych, który będziesz mieć, jest strumień danych „Niebezpieczny plik”.
caliban
22
Jak myślisz, dlaczego nie są udokumentowane? ( msdn.microsoft.com/en-us/library/aa364404(VS.85).aspx )
Reuben
6
Nie usuwaj na ślepo wszystkich alternatywnych strumieni danych, chyba że masz kopie zapasowe tych zaszyfrowanych plików NTFS.
Ian Boyd,
31

AlternateStreamView może wyświetlać wszystkie alternatywne strumienie NTFS dla plików w katalogu (i podkatalogach, jeśli jest to pożądane).

Usuń wszystkie strumienie oznaczone „ : Zone.Identifier: $ DATA ” dla wybranych plików, aby pozbyć się bloków bezpieczeństwa.

wprowadź opis zdjęcia tutaj

Snark
źródło
1
Do tego celu służy
itsho
@ZoneIDTrimmer - Nie jestem pewien, czy rozumiem. Jakie inne narzędzie?
user66001
5
ZoneIDTrimmer to nazwa narzędzia, a nie alias osoby.
Snark
11

Bardzo łatwe obejście tego rodzaju wiąże się z pierwszą odpowiedzią, powiedzmy, że jeśli masz około 1000 plików, które są zablokowane, po prostu weź wszystkie pliki i umieść je w nowym folderze na pulpicie (lub w innym katalogu folderów, w którym pracujesz) kliknij prawym przyciskiem myszy folder, a następnie kliknij Wyślij do, a następnie z opcji Kliknij Folder skompresowany (skompresowany), a następnie usuń oryginalne pliki i rozpakuj folder .ZIP i Viola !!! wszystkie pliki są odblokowane: D, działało dla mnie na XP Pro SP3, więc zakładam, że będzie działał również na Vista

Kristian
źródło
Zdecydowanie najmniej pracy. Miły!
RomanSt
9

Aby wyłączyć blokowanie podczas pobierania plików, otwórz następujący klucz rejestru:

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

Zmień SaveZoneInformation na 1.

UWAGA:

  • 0 = Nieskonfigurowane
  • 1 = włączone
  • 2 = wyłączone
user61000
źródło
2
Nie mam tej opcji w systemie Windows 7, a artykuł wspomina tylko o XP. Mimo to wygląda interesująco.
AndrejaKo,
Czy możesz dodać klucz, aby włączyć / wyłączyć? To, że nie masz klucza zasad użytkownika, oznacza tylko, że nie został skonfigurowany w ten sposób; nadal możesz go używać.
JohnZaj,
@ user61000 - Czy mam rację, że to tylko zmienia zachowanie IE, a nie (jak się dowiedziałem, że jest już zrobione w najnowszej wersji) przeglądarek Firefox (lub innych)?
user66001
Wymaga uprawnień administratora :(
Quandary
1
Działa to również w systemie Windows 7 i 8 (i prawdopodobnie 10). Zaktualizowany link: support.microsoft.com/en-us/kb/883260 . Dotyczy to także Chrome i myślę, że Firefox.
thaimin
8

Jak powiedział inny plakat, niepewna flaga pliku jest przechowywana w strumieniu danych NTFS. Oznacza to, że istnieje bardzo łatwy sposób na usunięcie tego strumienia danych, wystarczy przenieść plik na dysk, który nie obsługuje strumieni danych NTFS.

Zakładając, że problem jest bardziej związany z liczbą plików niż z ich wielkością, najłatwiejszym sposobem jest przeniesienie (nie skopiowanie) plików na dysk sformatowany w systemie plików FAT, a następnie przeniesienie ich z powrotem do systemu plików NTFS dysk (prawie każda pamięć USB jest sformatowana w FAT32, więc poradzi sobie dobrze), a następnie przenieś te pliki z powrotem tam, gdzie chcesz.

Robiłem to wcześniej, kiedy chciałem usunąć zablokowaną flagę z całego katalogu pobranych plików i zrobiłem dokładnie to, czego potrzebowałem.

GAThrawn
źródło
7
  • Pobierz narzędzie Sysinternals Streams .
  • Rozpakuj i skopiuj plik streams.exe do \ Windows \ System32.
  • Utwórz nowy plik tekstowy i zmień jego nazwę na „unblocker.reg”.
  • Skopiuj w nim poniższy skrypt rejestru:

    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\""
    
  • Zapisz plik.

  • Kliknij dwukrotnie zapisany plik, aby scalić go z rejestrem.

Następnie za każdym razem, gdy klikniesz plik prawym przyciskiem myszy, możesz wybrać „Odblokuj plik” w menu kontekstowym lub możesz kliknąć folder prawym przyciskiem myszy i wybrać „Odblokuj pliki tutaj”.

źródło

creapure90
źródło
+1 Świetny pomysł, aby ten proces był mniej czasochłonny.
user66001
Działa to dla mnie po dodaniu ścieżki do streams.exe w formacie 8.3:@="cmd /c C:\PROGRA~2\Sysinternals\streams.exe -d -s \"%1\""
Olivier Jacot-Descombes
Wiem, że to stary wątek, ale dzięki. Istnieje wiele wersji tego samego skryptu reg w Internecie i większość z nich nie działa. Mogę dodać, że działało to dla mnie na Windows 7 Professional 64bit.
trenten
5

AlternateStreamView jest świetny. Inną metodą jest jednak zarchiwizowanie plików w formacie .RAR, 7z lub .ZIP. Usuń oryginały, a następnie ponownie rozpakuj pliki.

Alec
źródło
2

Miałem ten sam problem i sposób, w jaki odblokowałem pliki, to:

  • Dodałem wszystkie zablokowane pliki do archiwum RAR (użyłem WinRAR)
  • Usunąłem oryginalne pliki
  • Wyodrębniłem wszystkie pliki z archiwum

Wszystkie pliki są teraz odblokowane.

Dla mnie było kilka problemów z MSDN Magazine, które były w formacie .chm, ale nie sądzę, że typ pliku ma znaczenie.

leoinfo
źródło
1

ZoneIDTrimmer wygląda jak najbardziej przyjazne dla użytkownika narzędzie do tego celu:

wprowadź opis zdjęcia tutaj

RomanSt
źródło
1

Szukałem metody wsadowej (bez użycia programu PowerShell) i po przeczytaniu tego posta wpadłem na to proste rozwiązanie

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

nie usunie to Zone.Identifierstrumienia danych, ale wyczyści jego zawartość, która wydaje się działać dobrze.

Innym rozwiązaniem (które wyczyści wszystkie strumienie danych i użyje pliku tymczasowego jest to)

type filename.zip > filename.zip.tmp
move /y filename.zip.tmp filename.zip
Jürgen Steinblock
źródło
0

Mam zewnętrzny dysk twardy USB, który doskonale nadaje się do usuwania bloków ... Zrobiłem małą partycję i sformatowałem ją w FAT32 .. kiedy chcę usunąć blok z czegoś, po prostu przenieś go na ten dysk, a następnie przenieś z powrotem :-)

użytkownik200075
źródło
To z pewnością dobre podejście, ale zostało już wspomniane w odpowiedzi GAThrawna .
Dennis
Prawdopodobnie najmniej ryzykowne / intensywne wyjście z przedstawionych odpowiedzi na obejście.
user66001
-4

Tak. W wierszu polecenia takeown /f <name of file>.

W twoim przypadku, takeown /f *.* /raby powrócić do wszystkich podkatalogów i odblokować *.*. W razie potrzeby baw się wzorem.

takeown /? więcej instrukcji użytkowania.

Peter Mounce
źródło
1
Jak to powinno pomóc?
Werner Henze
-5

Jest inny prosty sposób. Po prostu wybierz plik lub folder, kliknij go prawym przyciskiem myszy i wybierz Właściwości S Bezpieczeństwo E Edycja , a następnie kliknij Pełna kontrola .

Następnie wystarczy kliknąć [Save]i wyjść.

Shreyas
źródło
2
To nie jest miejsce, w którym system Windows przechowuje informacje, że plik pochodzi z innego komputera.
Werner Henze
Zgadzam się Werner Henze . Szkoda jednak - jak wysiłek Shreyasa za pomocą strzałek unicode.
user66001