Wenn sie mit der SharePoint Server Suche ihren Fileserver indexieren finden sie in der Regel im Durchforstungsprotokoll Fehler das Dateien nicht indexiert werden konnten.

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

Nun deutet dieser Fehler erst mal auf fehlende Berechtigungen für das Inhaltszugriffskonto hin. Wenn sie die gemeldeten Dateien überprüfen stellen sie fest, dass der Benutzer berechtigt ist. Auch ein öffnen der Freigabe und der Datei ist im Kontext des Inhaltszugriffskonto möglich. Die Crawler Komponente weigert sich aber weiterhin standhaft die Datei zu indexieren. Grund für dieses Verhalten sind die sogenannten Alternativen NTFS Data Streams innerhalb der betroffenen Dateien und zwar ein ganz bestimmter Typ der “Zone Identifier”. Dieser wird beim Download von Dateien aus dem Internet gesetzt und sorgt dafür, dass beim öffnen der Datei die bekannte Sicherheitsabfrage kommt.

Sicherheitswarnung beim öffnen von Dateien die aus dem Internet heruntergeladen wurden

Findet die SharePoint Suche diesen Stream in einer Datei wird sie nicht geöffnet und damit auch nicht indexiert. Mir ist bisher kein Weg bekannt die Suche so zu konfigurieren, dass der Stream ignoriert wird. Um zu testen, ob der “Access is denied” Fehler als Ursache die NTFS Streams hat können sie eine einzelne Datei über die Eigenschaften aus dem Kontextmenü einfach entsperren.

image

Mit einem Klick auf Zulassen wird der “Zone Identifier” Stream dauerhaft entfernt. Starten sie nun einen weiteren Crawllauf und prüfen sie ob die Datei erfolgreich indexiert werden konnte.

Wie geht man nun mit den “Zone Identifier” Streams um? Primär sind diese Streams eine Sicherheitsfunktion, damit die Herkunft der Datei und das damit verbundende Risiko deutlich wird. Da man die Funktion auf einem Client nur global abschalten kann, so dass die Streams gar nicht mehr geschrieben werden, würde ich diesen Weg aus Sicherheitsgründen nicht einschlagen. Außerdem entfernt dies nicht die Streams aus den bestehenden Dateien.

In der Explorer Oberfläche und in den mitgelieferten Tools gibt es kein Werkzeug um die Streams komfortabel aus allen Dateien zu entfernen. Hier greift ein wunderbares SysInternals Tool mit dem Namen “Streams”. Dieses kann die enthaltenen Streams anzeigen und bei Bedarf löschen. Was das Tool aber so nützlich macht ist das Rekursive bearbeiten von Ordnern. Rufen sie das Tool über die Kommandozeile auf:

streams.exe –s <Pfad>

Streams v1.56 – Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals – www.sysinternals.com

c:\Users\channappel\Downloads\7z920-x64.msi:
   :Zone.Identifier:$DATA       26

Nun bekommen sie alle Dateien mit bestehenden Streams angezeigt. Erweitern sie nun den Befehl um die Option “-d” um alle Streams zu entfernen. Bedenken sie bei einer großen Anzahl von Dateien, dass ihre Dateiserver Sicherung die Dateien durch die Änderungen beim nächsten Inkrementellen Lauf sichern wird und sich dadurch das Zeitfenster zur Sicherung deutlich ausdehnen kann. Gleiches gilt für die SharePoint Indexierung.

Leave a comment

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

Time limit is exhausted. Please reload the CAPTCHA.