NTFS und Alternate Data Streams (ADS)

Eigentlich kommt man unter Windows eher selten mit den sogenannten alternativen Datenströmen, abgekürzt ADS (Alternate Data Streams) in Berührung. Aber gelegentlich stößt man auf ein Problem, das einem dieses Feature vom Windows-Filesytem NTFS (New Technology File System) wieder in Erinnerung bringt. So ging es mir auch vor einiger Zeit. Der Inhalt einer Hilfedatei im CHM-Format (Compiled Help Module) wurde nicht angezeigt.

Das sieht dann so aus:

Compiled_Help_Module_ohne_Anzeige

Im Inhaltsfenster rechts wird nichts angezeigt. Die Ursache liegt darin, daß diese Datei aus dem Internet heruntergeladen wurde, Windows sich dies seit der Version XP SP2 in einem alternativen Datenstrom merkt und aus Sicherheitsgründen die Anzeige verhindert. Dies erkennt man im Eigenschaftsdialog der Hilfedatei:

Internet_Zone_ID_3

Bevor wir jedoch auf den Button „Zulassen“ klicken und damit die Anzeige des Hilfeinhalts wieder erlauben, möchte ich kurz zeigen, an welcher Stelle Windows diese Information zu einer Datei versteckt. Sie findet sich im ADS „Zone.Identifier“. Welche Alternate Data Streams zu einer Datei gehören, lässt sich mit „dir /r“ anzeigen:

ADS auflisten mit DIR /r

Bei dem Helpfile wird nur ein Alternate Data Stream angezeigt, der den Namen „Zone.Identifier“ trägt. Wie kann man sich nun den Inhalt dieses Data Streams anschauen und ggf. auch verändern? Dazu ist das Windows-Programm „Notepad“ sehr hilfreich. Nach dem Aufruf von Notepad mit dem Parameter VirtualTreeview.chm:Zone.Identifier wird im Notepad der Inhalt des Data Streams angezeigt:

ADS-Inhalt mit Notepad anzeigen

Jetzt klicken wir im Eigenschaftsdialog der Hilfedatei auf „Zulassen“ und dann auf „OK“. Zum einen ist jetzt die Inhaltsseite rechts wie gewünscht gefüllt:

CHM Hilfedatei mit Inhaltsanzeige

Zum anderen ist der ADS zur Datei gelöscht worden:

Datei ohne Alternate Data Streams

Zur Anzeige der Data Streams zu einer Datei ist auch das Programm „streams.exe“ sehr hilfreich, das zu dem Sysinternals-Tools von Microssoft gehört und von Mark Russinovich programmiert wurde.

Hier zum Abschluß die Ausgabe von streams.exe, aufgerufen mit der Hilfedatei als Parameter:

Mit Streams.exe Alternate Data Streams anzeigen


[of_autor]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert