Eintrag: Welche Dateien hat der “Groveler”-Dienst im Ordner “SIS Common Storage” gespeichert?

29. Nov. 2007, 21:11 Uhr | Abgelegt in Windows | Ohne Kommentare | 26.523x angesehen

The next entry in this blog is the English version of this article.

Wir haben:

  • Einen Win2000-Server, der früher einmal ein RIS-Testserver war.
  • Auf diesem auf D:\ einen Ordner namens “SIS Common Storage”

Der RIS-Dienst ist schon lange deinstalliert, der der Ordner ist noch da – knapp 3GB groß, mit 5800undknipps Dateien, bis auf wenige mit Namen wie

48dea770-1cda-11db-8780-000a5e029b89.sis.

Metapad zeigt schnell, daß unter den Dateien PDF-Docs, Bitmap Bilder, .EXE-Dateien und andere sind. Mit Google läßt sich auch schnell finden, daß der “Groveler”-Dienst mehrmals vorhandene Dateien auf Volumes mit RIS-Images einmal in diesen Ordner schiebt und die Originaldateien durch Links mit “Reparse Points”, auf deutsch “Analysepunkte” ersetzt.

Der “Groveler”-Dienst ist zusammen mit dem RIS irgendwann entfernt worden, hat also ab diesem Zeitpunkt keine neuen Dateien mehr in den SIS-Ordner verschieben können. Nur bekommt man mit den Bordmitteln unter Windows 2000 aber nicht leicht heraus, ob in dem “SIS Common Store”-Ordner nur gefahrlos löschbare Leichen liegen (Also Dateien, die nicht mit ihren Links im Dateisystem gelöscht wurden), oder was da überhaupt im Lauf der Zeit hineingeschaufelt wurde.

Das Tool FSutil.exe vom Windows 2003-Server ist zwar prinzipiell dafür gedacht, unter anderem solche “Reparse Point”-Info aus Dateien anzuzeigen, aber nur Datei- bzw. Ordnerweise.

Fsutil: reparsepoint

Typically used by support professionals. Queries or deletes reparse points, which
are NTFS file system objects that have a definable attribute containing user-
controlled data, and are used to extend functionality in the input/output (I/O)
subsystem.

Reparse points are used for directory junction points and volume mount points. They
are also used by file system filter drivers to mark certain files as special to that driver.

Zudem hat es einen Bug, der für SIS Reparse Points falsche GUID-Informationen anzeigt. Hurra, ihr Vollpfosten!

Nach viel Googeln findet man eventuell das korrigierte Tool FSutil2.exe, (nicht bei Microsoft!) in dem unter anderem dieser Fehler korrigiert ist:

This is a newer fsutil.exe utility that fixes how reparse points are displayed for RIS CIS Files.

The original fsutil.exe that shipped with Windows XP had a bug where it would not display
the correct {GUID} information. This version fixes this and includes other enhanced
outputs.

Danke!

Als Beispiel im readme zu FSutil2.exe steht:

D:\>fsutil.exe reparsepoint query \path\to\ntoskrnl.exe

Reparse Tag Value : 0×80000007
Tag value: Microsoft
Tag value: SIS
Format version: 5
CSid: 4B0C4C00-FEA2-11D3-8D9C-00C04F4700A8
LinkIndex: 0×00000000.000072e4 Check: 0
LinkFileNtfsID: 0×00020000.0000126f
CSFileNtfsID: 0xe0300000.00002fe4
CSChecksum: 785d2b09
Checksum: 37118f04

Reparse Data Length: 0×00000040
Reparse Data:
0000: 05 00 00 00 10 b0 11 b1 00 4c 0c 4b a2 fe d3 11 ………L.K….
0010: 8d 9c 00 c0 4f 47 00 a8 e4 72 00 00 00 00 00 00 ….OG…r……
0020: 6f 12 00 00 00 00 02 00 e4 2f 00 00 00 00 30 e0 o……../….0.
0030: 09 2b 5d 78 dd 2c 13 c1 04 8f 11 37 df 42 a6 cd .+]x.,…..7.B..

Interessant für uns: Die Zeile “CSid: 4B0C4C00-FEA2-11D3-8D9C-00C04F4700A8″ – Die mit fsutil.exe reparsepoint query angebohrte Datei hat tatsächlich einen Reparse Point mit Tag SIS in den Metadaten und – ratet mal – liegt mit dem Dateinamen 4B0C4C00-FEA2-11D3-8D9C-00C04F4700A8.sis im Ordner “SIS Common Store”!

Wir scannen Laufwerk D:\ nach Dateien mit SIS Reparse Points.

Ein paar Batch-Dateien zu schreiben, die das erledigen, sollte kein Problem sein. Ich habe geschätzt, daß der überwiegende Großteil der Dateien im “SIS Common Store” Leichen aus der “RIS-Zeit” sind, also brauche ich keine automatisierte Umbenennung der Dateien.

Die erste Batch listet den Inhalt der Laufwerks D:\ in eine Textdatei:

REM Laufwerks-Inhalt ohne Verzeichnisse nach files_all.txt schreiben
dir /b /s /a-d d:\ > d:\temp\files_all.txt

Die nächste liest diese erstellte Datei ein (FSutil.exe beherrscht selbst keine Rekursion) und prüft jede Datei auf Reparse Points:

REM files_all.txt lesen und “FSutil.exe reparsepoint query” auf jede Zeile anwenden
for /f “delims=;” %%a in (d:\temp\files_all.txt) do (
echo %%a >> d:\temp\files_reparsepoint.txt
d:\temp\fsutil2.exe reparsepoint query “%%a” >> d:\temp\files_reparsepoint.txt 2>&1
)

Die Datei files_reparsepoint.txt kann man jetzt mit grep aus den Unix tools nach SIS Reparse Points durchsuchen.

REM “Tag value: SIS” suchen und 3 Zeilen davor bis 2 Zeilen danach ausgeben
cat d:\temp\files_reparsepoint.txt | grep -i “Tag value: SIS” -B 3 -A 2 > endergebnis.txt

Und dann hat man eine Liste mit Zuordnungen der Dateien auf dem Laufwerk zu den “{GUID}.sis”-Dateien. Ausschnitt:

[...]
d:\irgend\ein\path\to\ntoskrnl.exe
Reparse Tag Value : 0×80000007
Tag value: Microsoft
Tag value: SIS
Format version: 5
CSid: 4B0C4C00-FEA2-11D3-8D9C-00C04F4700A8
[...]

Von den rund 5800 Dateien waren ganze 6 noch im System vorhanden, das bedeutet auf D:\ wurden 6 Dateien mit SIS Reparse Points gefunden, die auf Dateien in “D:\SIS Common Store” linken – diese hab’ ich umkopiert, den Rest nach Backup gelöscht.

Edith sagt noch: Morgen gibt’s das hier eventuell noch auf englisch. Heute nimmer!

Schreibe einen Kommentar

Erlaubte Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


+ sechs = 12