Pliki `: Zone.Identifier` wciąż pojawiają się na maszynie wirtualnej z systemem Windows XP

1

Mam gościa Windows XP Home Edition i hosta Linux Mint 13. Korzystam z VirtualBox, a ~/Publickatalog jest udostępniany gościowi. Czasami zdarza się, że używam IE w systemie gościa do pobierania plików (dopóki nie otrzymam lepszej przeglądarki Windows).

Wszystkie pobrane pliki trafiają na L:\dysk ( ~/Publickatalog). Po zakończeniu pobierania Eksplorator Windows dodaje :Zone.Identifierplik dla każdego pliku, który pobieram. Kiedy rozpakowuję pobrane archiwum ZIP na gościu (na dysku L:\), Windows tworzy :Zone.Identifierplik dla każdego pliku w wyodrębnionym katalogu. Dzieje się tak nawet wtedy, gdy używam hosta do przeniesienia pliku do ~/Publickatalogu.

Wspólny ~/Publickatalog znajduje się na partycji ext4, a znak dwukropka powinien być niedozwolony w nazwach plików w systemie Windows, ale nie na partycji ext4. Czy jest jakiś sposób, aby powstrzymać system Windows przed umieszczaniem wszystkich tych śmieci w moim systemie plików? (Być może będę musiał utworzyć skrypt powłoki, aby wyczyścić po działaniu systemu Windows).

Oto, co widzę w Eksploratorze Windows: Śmieci w moim katalogu publicznym w systemie Windows

Nawiasem mówiąc, gdybym uruchomił hosta Mac OS X (gdzie dwukropki są niedozwolonymi znakami nazw plików), byłoby to jeszcze bardziej przerażające.

Jonathan Reno
źródło

Odpowiedzi:

4

Założę się, że są one używane do śledzenia, skąd pochodzi plik (w systemie Windows pojawia się okno dialogowe „czy na pewno chcesz otworzyć to”, gdy próbujesz otworzyć pobrany plik .zip lub .exe).

Moja pamięć nie jest w tym 100%, ale jeśli dobrze pamiętam, :jest to zabronione w nazwach plików Windows, ponieważ jest używane do alternatywnych strumieni w pliku. Masz główny strumień danych, który zawiera rzeczywistą zawartość, ale każdy plik może mieć nazwane alternatywne strumienie, które przechowują metadane:C:\File\Path\Filename.exe:AlternateStreamName

Jeśli podstawowym systemem plików jest EXT4, podejrzewam, że IE / WE próbuje zapisać do takiego pliku i oczekuje, że będzie to alternatywny strumień, podczas gdy sterownik systemu plików dla L:\napędu tworzy go jako zwykły plik.

(Nawiasem mówiąc, :nie jest zabronione w NTFS, tylko Win32 API, którego używa Eksplorator Windows i większość aplikacji (ponieważ zmieniają przeznaczenie dla alternatywnych strumieni). NTFS obsługuje dowolny znak w nazwie pliku z wyjątkiem NUL( \0000) lub slash ( /) oraz HFS Plus (Mac OS X) obsługuje dowolne znaki oprócz NUL(ale może to być dodatkowo ograniczone przez narzędzia lub system operacyjny w zależności od jego potrzeb))


Ansgar Wiechers udzielił odpowiedzi w komentarzach poniżej:

Tworzenie ZoneIdentifierstrumieni można wyłączyć, ustawiając zasadę Do not preserve zone information in file attachmentsna enabled. Polityka znajduje się pod User Configuration\Administrative Templates\Windows Components\Attachment Manager.

W przypadku okaleczonych wersji systemu Windows utworzenie DWORDwartości rejestru SaveZoneInformationz wartością 1w [HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments]powinno mieć ten sam efekt.

Darth Android
źródło
W każdym razie zamierzałem zacząć używać Avant Browser w systemie Windows. Nawiasem mówiąc, alternatywne strumienie (widelce) są również tworzone, gdy kopiuję plik do systemu ~/PublicLinux. Oznacza to, że nie jest to wina Internet Explorera, że umieściła całą tę charabię w moim systemie plików. Wiem już, że zabronione znaki są w interfejsie API Win32. Nadal muszę wiedzieć, jak wyłączyć tę tak zwaną funkcję „bezpieczeństwa”.
Jonathan Reno
Nawiasem mówiąc, pomyślałem, że :znaku można używać tylko z literą dysku w systemie Windows. Wygląda na to, że funkcja „rozwidlania jelita grubego” to po prostu kolejna kludge firmy Microsoft.
Jonathan Reno
Eksplorator Windows może tworzyć domyślne identyfikatory stref, gdy wykryje nowy plik bez niego, podobnie jak w przypadku miniatur. W takim przypadku najlepszym rozwiązaniem jest użycie alternatywy, takiej jak xplorer2, jeśli nie ma gdzie go wyłączyć (WE nie ma opcji, ale spróbuj przejrzeć ustawienia IE. IE i WE są jednym z nich to samo głęboko w dół)
Darth Android
Już to wiem. To jeden z powodów, dla których nie lubię używać systemu Windows. Dlaczego koszmarna przeglądarka musi być zintegrowana z systemem Windows, aby nie można jej było usunąć bez poważnego uszkodzenia plików systemowych?
Jonathan Reno
1
Tworzenie ZoneIdentifierstrumieni można wyłączyć, ustawiając zasadę Do not preserve zone information in file attachmentsna enabled. Polityka znajduje się pod User Configuration\Administrative Templates\Windows Components\Attachment Manager. W przypadku okaleczonych wersji systemu Windows utworzenie wartości rejestru DWORD SaveZoneInformationz wartością 1w [HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments]powinno mieć ten sam efekt.
Ansgar Wiechers