[English]Der Explorer in Windows unterstützt das Packen und Entpacken von ZIP-Archivdateien. Allerdings ist diese Funktion in Windows 7 bis Windows 10 wohl abweichend von dem implementiert, was andere Tools so machen. Das führt mitunter zu 'merkwürdigen' Effekten, die mit entsprechendem Hintergrundwissen aber erklärbar sind. Ergänzung: Ich habe nach dem Verfassen, auf Grund von Leserkommentaren, noch einige zusätzliche Hinweise ergänzt und Klarstellungen im Text vorgenommen.
Anzeige
Leserhinweise auf ZIP-Probleme
Blog-Leser Al CiD hat mich vor einigen Tagen auf diesen Blog-Beitrag aufmerksam gemacht (danke dafür). Ein Leser hatte dort den Autor des betreffenden Blog-Beitrags kontaktiert und von Problemen berichtet. Allerdings sind einige der Verhaltensweisen erklärbar.
Der Anstoß:Ein Problem bei WSUS Offline Update
Bei der Verwendung von WSUS Offline Update gab es beim betreffenden Leser ein Problem. Der Benutzer lud sich die .zip-Datei von der Internetseite in einen lokalen Ordner herunter und entpackte das ZIP-Archiv mit der Extrahierfunktion des Windows Explorers in einen weiteren Ordner. Das Extrahieren lässt sich alles mit Bordfunktionen im Explorer per Kontextmenü erledigen.
Als der betreffende Benutzer dann WSUS Offline Update verwenden wollte, funktionierte das aber nicht. Vermutete Ursache (im oben verlinkten Blog-Beitrag) ist, dass der Windows Explorer die Dateien beim Entpacken verändert – zumindest das Änderungsdatum aller extrahierten Dateien wird aktualisiert. Und es wird ein Zonen-Attribut gesetzt.
Die Probe unter Windows 7 und Windows 10
Ich habe das an einer ZIP-Archivdatei von der WSUS Offline-Seite unter Windows 10 Version 1803 sowie Windows 7 SP 1 ausprobiert.
Anzeige
Der obige Screenshot zeigt die Datumswerte der Dateien im ZIP-Archiv im Unterordner bin. Der Explorer zeigt diese Dateien an, sobald eine ZIP-Datei per Doppelklick geöffnet wird. Einzige Dateien tragen Datumswerte aus den Vorjahren (z.B. 1999).
Klickt man eine ZIP-Archivdatei im Explorer per Rechtsklick an, lässt sich deren Inhalt per Kontextmenübefehl Alle extrahieren in einen Ordner entpacken. Öffnet man den Ordner mit den entpackten Dateien per Doppelklick im Explorer, gibt es eine Überraschung.
Die Dateien tragen als Änderungsdatum den Tag, an dem das ZIP-Archiv entpackt wurde. (siehe obiges Bild).
Besonderheit bei der Implementierung
Microsoft hat die ZIP-Funktion so implementiert, dass den entpackten Dateien das aktuelle Dateidatum zugewiesen wird – falls das ZIP-Archiv von einem anderen Rechner aus dem Internet stammt (siehe mein letzter Absatz und den ersten Kommentar weiter unten). Das ist übrigens auch in Windows 7 SP1 so, wie ich bei einem Test gerade festgestellt habe. Wird das Internet-Zonen-Attribut vor dem Entpacken gelöscht, belässt die ZIP-Funktion das Datum der entpackten Archivdatei.
Andere Tools machen das nicht
Sollte normalerweise kein Probleme sein, es sei denn, eine Anwendung ist darauf angewiesen, dass die Dateien unmodifiziert (auch beim Dateidatum) entpackt werden. Eine Gegenprobe mit 7-ZIP ergab, dass dieses Tool die Dateien unmodifiziert aus dem ZIP-Archiv im Zielordner der Festplatte ablegt.
Block-Tag zugewiesen
Im verlinkten Blog-Beitrag wird zudem noch angemerkt, dass der Explorer den entpackten Dateien einen Tag (Attribut) zuweist, das den Zugriff blockiert, wenn sie von einem anderen Computer stammen.
Wählt man eine Datei per Rechtsklick an und verwendet den Kontextmenübefehl Eigenschaften, werden auf der Registerkarte Allgemein die Attribute der Datei angezeigt. Bei den entpackten Dateien taucht die Kategorie Sicherheit auf, und das Kontrollkästchen Zulassen der Option 'Die Datei stammt von einem anderen Computer. Der Zugriff wurde aus Sicherheitsgründen eventuell blockiert' ist nicht markiert.
Ergänzung: Der Hinweis auf der Registerkarte Allgemein ist aber nicht ganz präzise. Der Eintrag Sicherheit wird nur bei Dateien gesetzt, die aus dem Internet geladen werden. Bei Archiven, die aus dem lokalen Netzwerk stammen und in einen lokalen Ordner kopiert werden, fehlt dieser Tag.
Dies ist eine Sicherheitsmaßnahme von Windows, die ich gut finde. Das Betriebssystem merkt sich, wenn eine Datei von einem anderen Rechner oder aus dem Internet stammt und setzt das betreffende Zonen-Attribut. Diese soll die Ausführung in niedriger Vertrauensstufe verhindern (dazu unten mehr).
Das ist z.B. der Grund, warum aus dem Internet geladene CHM-Hilfedateien dann keinen Inhalt anzeigen. Und das dürfte auch der Grund sein, warum WSUS Offline Update nicht funktionierte.
Ich habe hier im Artikel den Begriff Zonen-Attribut (bzw. –Bit) verwendet. Es ist genau genommen kein NTFS-Attribut. Im nachfolgenden Kommentar ist es angemerkt: Dateien aus dem Internet bekommen eine NTFS ADS (Alternate Data Stream) Information mit Zoneninformationen zugeordnet.
Auch diese Zoneninformation wird bei Tools wie 7-Zip nicht gesetzt bzw. berücksichtigt. Persönlich empfinde ich die Implementierung Microsofts aber geschickter, da diese eine zusätzliche Sicherheitsinformationen über die Zone der Herkunft mit den Dateien durchreicht. Es wird verhindert, dass von extern übernommene ZIP-Dateien beim Entpacken die Zoneninformation verlieren.
Kleiner Zusatztest
Ich habe noch einen kleinen Test gefahren und einige Dateien auf dem lokalen Windows 10-Rechner gepackt und dann wieder entpackt. Dort bleibet das Dateidatum beim Entpacken erhalten. Und es wird auch kein Block-Tag unter Sicherheit für die entpackten Dateien gesetzt, wenn die Ursprungsdatei diese Zoneninformation aufweist.
Ergänzung: Ein später durchgeführter, zweiter Test mit Dateien im lokalen Netzwerk ergab, dass auch dort kein NTFS ADS (Alternate Data Stream) Informationen zur Zone erzeugt wird. Dort fehlt nach dem Kopieren über das Netzwerk in einen lokalen Ordner die Information Sicherheit in den Datei-Eigenschaften. Und die ZIP-Funktion des Explorers verhält sich wie erwartet, d.h. das Dateidatum aus dem ZIP-Archiv bleibt erhalten.
So löscht man die Sicherheitsinformation
Man kann übrigens das Sicherheitsattribut, welches aus den Zoneninformationen der aus dem Internet geladenen Dateien abgeleitet wird, sehr einfach löschen. Ein Rechtsklick auf die Datei und im Kontextmenü Eigenschaften wählen. Dann lässt sich auf der Registerkarte Allgemein kontrollieren, ob die aus der Zoneninformation abgeleitete Sicherheitsinformation zum Blocken gesetzt ist.
Die betreffende Eigenschaftenseite sieht unter Windows 7 wie in obigem Bild aus – man braucht nur auf die Schaltfläche Zulassen zu klicken, um die Zoneninformationen zu löschen. Bei Windows 10 ist statt der Schaltfläche das Kontrollkästchen Zulassen zu markieren (siehe Bild weiter oben).
Alles bekannt
Das ist eine Vorgehensweise, die ich unter Windows 7 bereits seit Jahren bei ZIP-Archivdateien aus dem Internet verwende, um Probleme nach dem Entpacken zu vermeiden. Das Thema habe ich 2010 im Blog-Beitrag Probleme mit der Anzeige von CHM-Dateien behandelt. Dort findet sich auch der Hinweis auf das Löschen den 'Zonen-Bits' bei Internetdateien.
Das sollte man aber ggf. alles im Hinterkopf behalten, auch wenn mir noch keine entsprechenden Probleme aufgefallen sind. Einige technische Erläuterungen und Hintergründe zu den NTFS Alternative Data Streams (NTFS ADS) finden sich im Blog-Beitrag Infos zu Windows NTFS Alternative Data Streams.
Ähnliche Artikel:
Probleme mit der Anzeige von CHM-Dateien
Windows Mai 2018-Update blockt CHM-Dateianzeige
Infos zu Windows NTFS Alternative Data Streams
Anzeige
> Microsoft hat die ZIP-Funktion so implementiert, dass den entpackten Dateien immer das aktuelle Dateidatum zugewiesen wird. Das ist übrigens auch in Windows 7 SP1 so, wie ich bei einem Test gerade festgestellt habe.
Nein, das stimmt nicht. Entpackte Dateien bekommen ausschließlich dann das aktuelle Datum verpasst, wenn das Archiv aus dem Internet stammt, es also einen NTFS ADS (Alternate Data Stream) mit Zoneninformationen beinhaltet.
Gerade eben hab ich es noch einmal getestet: wsusoffline114.zip mit Firefox runtergeladen, mit Explorer geöffnet und alle Dateien extrahieren lassen. Ergebnis: Alle Dateien bekommen einen aktuellen Zeitstempel und einen ADS mit Zoneninformationen.
Dann habe ich das entpackte Verzeichnis wieder gelöscht, die Zoneninformationen vom wsusoffline114.zip Archiv entfernt (per Klick auf Zulassen) und nochmals entpackt. Ergebnis: Alle Dateien bekommen das Datum aus dem Archiv und es sind keine Zoneninformationen auf den Dateien.
Fazit: Beim Entpacken von Archiven mit Zoneninformationen erhalten die entpackten Dateien diese Zoneninformationen ebenfalls, und im Zuge dessen wird der Zeitstempel der Dateien verändert.
Will man das verhindern, gibt es eine Reihe von Möglichkeiten:
1. Anderes Archivprogramm wie 7-zip verwenden
2. Vor dem Entpacken Zoneninformationen vom Archiv entfernen (Eigenschaften > Zulassen)
3. Archiv auf einem Dateisystem ohne Support für ADS speichern bzw. entpacken, z.B. auf FAT32
4. Download des Archivs mit einem Browser oder Download Manager ohne Support für Zoneninformationen (z.B. FlashGet)
Danke für die Info, Günter! Das Detail der Zoneninformationen hat mir bisher beim Support im WSUS Offline-Forum gefehlt.
Grüße
Stimmt – die Info stand sogar im letzten Absatz – ich habe es aber oben nochmals korrigiert. War um 1:00 Uhr die Nacht zu müde, um den Text nochmals gegen zu lesen. Danke für den Korrekturhinweis.
PS: Muss heute mal testen, wie das mit dem Alternativ Data Stream ausschaut, wenn die Datei per Netzwerk kopiert wird. Ergänzung: Nein, Netzwerk hat keinen Einfluss. Ich habe den Artikel nochmals im Hinblick auf Präzisierungen überarbeitet und einen weiteren Beitrag zu NTFS ADS am Beitragsende verlinkt. Hoffe, damit ist die Geschichte glatt gezogen.
> Muss heute mal testen, wie das mit dem Alternativ Data Stream ausschaut, wenn die Datei per Netzwerk kopiert wird.
Wenn Quelle und Ziel ADS unterstützen, und auf der Quelle ein ADS vorhanden ist, wird der ADS mit übertragen, wenn man den Explorer zum Kopieren einer Datei verwendet. Total Commander überträgt die ADS nur mit der Standard-Kopiermethode, andernfalls kann man dies aktivieren (Option CopyStreams).
Hat die Quelle keinen ADS, und Quelle und Ziel sind innerhalb derselben Zone, sollte auf dem Ziel kein ADS mit Zoneninformationen erzeugt werden.
Kurz: Beim Kopieren im Netzwerk (LAN) werden keine ADS erzeugt, bleiben aber erhalten, wenn vorhanden.
wie Dalai schon vor mir geschrieben hat ist das "zonen-bit" ist kein "bit" sondern ein ntfs-"alternate data stream" namens "Zone.Identifier":
https://blogs.technet.microsoft.com/askcore/2013/03/24/alternate-data-streams-in-ntfs/
alternate data streams kann man auch dadurch eliminieren, dass man die betroffenen dateien kurzfristig z.b. auf ein fat32-medium verschiebt und sie anschliessend von dort aus wieder zurueck holt.
Der Zip Code in Windows XP wurde von einer anderen Firma lizenziert und seit damals hat sich dort nicht viel geändert.
Quelle: Raymond Chen (https://blogs.msdn.microsoft.com/oldnewthing/20180515-00/?p=98755)
ntfs-"alternate data stream"
Sehr fragwürdige Geschichte. Dort können nicht nur Datei-Typ Klassifizierungen definiert werden – sondern "nicht kleine Datenmengen" hinterlegt/angehängt werden an eine Datei!
Ein Beispiel: In ehemals PowerDVD 9 Ultra / auf einem Win7pro Rechner wurden in 1-2 Dateien Information zur Aktivierung hinterlegt. Wurde der ntfs-"alternate data stream" der Dateien entfernt war die Aktivierung flöten.
Das es Gefahren bei Verwendung durch Viren/Malware birgt ist nicht auszuschließen.
Ich empfehle mit einem Tool alle nicht "Zone.Identifier" "und "FavIcon……"
Alternate Data Streams auf allen Ntfs Speichermedien zu löschen(Typ Data…).
(SICHERN UND TESTEN vorausgesetzt!)
Ich habe inzwischen einen separaten Blog-Beitrag dazu erstellt (hatte ich wohl nur in meinen Büchern thematisiert). Sie die Verlinkungen am Artikelende.
Hatte vor Jahren mal ein ähnliches Problem mit dem Zone-Identifier bei der Installation von Treibern. Es nervte eine nach der Installation im Autostart verknüpfte Tray-Applikation immer mit "ich stamme aus dem Internet, willst du wirklich…" und weil das im All-User-Startup lag, konnte Otto-Normal das auch nicht verändern.
Interessantes Phänomen zu Ihrem Thema
Explorer und Zip-Dateien.
Datei.zip(PowerArchiver) erstellt > Passwort vergeben.
Windows 10 pro(64bit)/1809
Explorer geöffnet Datei.zip extrahieren.
Passwort wird abgefragt und die Datei extrahiert.
Soweit so gut und richtig.
Jetzt kommt's: Ein zweites mal > Explorer geöffnet Datei.zip extrahieren.
Passwort wird "nicht" abgefragt > Datei wird extrahiert.
Das funtioniert jetzt solange ich den Laptop nicht neu starte.
Z.B. habe ich mir angewöhnt in den Ruhezustand zu gehen, wenn ich aufhöre
Arbeiten, Spielen etc……
Beim nächsten Start aus dem Ruhezustand > Standartbenutzer > kein Benutzerpasswort > direkt durch.
Date.zip extrahieren im Explorer > keine Passwortabfrage.
Aus dem Standby/Energiesparen das gleiche, keine Passwortabfrage.
Ist das so gewollt??? Von mir sicher nicht.