728897

Windows-DLL-Cache verschieben

Im versteckten Ordner "Dllcache" unter %windir%\System32 befinden sich mehrere hundert MB an gesicherten Systemdateien. Wird eine Systemdatei gelöscht oder verändert, greift der Windows-Systemdateien-Schutz ein und holt sich aus dem DLL-Cache das Original zurück. Sie möchten diesen Ordner auf Ihre Datenpartition verschieben, da er ziemlich viel Platz braucht. Er soll dabei seine Funktion weiter erfüllen wie bisher.

Anforderung:

Fortgeschrittener, Profi

Zeitaufwand:

Mittel

Problem:
Im versteckten Ordner "Dllcache" unter %windir%\System32 befinden sich mehrere hundert MB an gesicherten Systemdateien. Wird eine Systemdatei gelöscht oder verändert, greift der Windows-Systemdateien-Schutz ein und holt sich aus dem DLL-Cache das Original zurück. Sie möchten diesen Ordner auf Ihre Datenpartition verschieben, da er ziemlich viel Platz braucht. Er soll dabei seine Funktion weiter erfüllen wie bisher.

Lösung:
Unter Windows 2000 bis Service Pack 1 können Sie den Ordner noch direkt über einen Registry-Eintrag verschieben. Registry-Eingriff: Legen Sie zunächst das neue Cache-Verzeichnis an, und starten Sie dann Regedt32.EXE. Öffnen Sie den Schlüssel "Hkey_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion\Winlogon", und legen Sie eine neue, erweiterbare Zeichenfolge vom Typ "REG_EXPAND_SZ" mit dem Namen "SFCDllCacheDir" an. Dieser Zeichenfolge weisen Sie als Wert den gewünschten Pfad zu.

Erst patchen: Unter Windows 2000 ab Service Pack 2 und Windows XP wurde der beschriebene Registry-Eintrag deaktiviert – eigentlich lassen sich hier also keine Veränderungen vornehmen. Erst ein Patch der Datei SFC.DLL (Windows 2000) beziehungsweise SFC_OS.DLL (XP) aktiviert den Registry-Eintrag wieder. Sie finden die Datei jeweils im Verzeichnis %windir%\System32. Öffnen Sie je nach Windows-Version die richtige DLL mit einem Hex-Editor (zum Beispiel mit :Tiny Hexer ). Gehen Sie dort zur passenden Offset-Adresse (siehe Tabelle „SFC-Patch: Die Adressen“ unten auf dieser Seite).

Windows 2000 ab SP 2 bis XP SP 1 : Hier ersetzen Sie die beiden Byte „8BC6“ durch „9090“.
Windows XP mit SP 2: Ersetzen Sie die beiden Byte „33C0“ durch „EB01“. Speichern Sie die geänderte Datei als SFC.PAT (Windows 2000) beziehungsweise SFC_OS.PAT (XP) – in beiden Fällen sowohl unter %windir%\System32 als auch unter %windir%\system32\dllcache. Datei austauschen: Die Originaldatei kann bei laufendem Windows nicht ersetzt werden. Mit unserem Script :pcwInUse können Sie das aber beim nächsten Neustart erledigen. Geben Sie im Script dazu folgende Dateien in dieser Reihenfolge ein: Windows XP: Legen Sie zunächst ein Backup an. Als Quelldatei wählen Sie \Windows\System32\SFC_OS.DLL und als Zieldatei \Windows\System32\SFC_OS.ORG. Dann klicken Sie auf „Hinzufügen“, die Aktion erscheint nun in der unteren Fensterhälfte. Zum Patchen wählen Sie nun als Quelldatei \Windows\System32\SFC_OS.PAT, als Zieldatei \Windows\System32\SFC_OS.DLL. Klicken Sie auf „Hinzufügen“. Die gleiche Aktion müssen Sie nun noch im Verzeichnis Dllcache durchführen: Sie wählen also \Windows\System32\Dllcache\SFC_OS.PAT als Quelldatei, geben \Windows\System32\Dllcache\SFC_OS.DLL als Zieldatei an und klicken auf „Hinzufügen“.

Windows 2000 : Hier verfahren Sie analog mit der SFC.DLL. Nach einem weiteren Neustart sollte der neue Ordner für die Systemdatei-Überwachung gefüllt werden. Falls das nicht automatisch passiert oder der neue Dllcache-Ordner leer ist, können Sie das auch mit folgendem Befehl erzwingen:

sfc /scannow

Den ursprünglichen Dllcache-Ordner können Sie danach getrost löschen. Abschalten: Der Systemdateien-Schutz lässt sich auch vollständig deaktivieren, indem Sie unter "Hkey_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" den neuen DWORD-Eintrag „SFCDisable“ anlegen und ihm den hexadezimalen Wert „FFFFFF9D“ zuweisen. Auch diese Maßnahme setzt ab Windows 2000 SP 2 den beschriebenen Patch voraus, sonst ignoriert Windows den Registry-Eintrag.

SFC-Patch: Die Adressen

Windows-Version Hex-Adresse
2000 (Service Pack 2/3) 0x00006211
2000 (Service Pack 4) 0x000062DB
XP 0x0000E2B8
XP (Service Pack 1) 0x0000E3BB
XP (Service Pack 2) 0x0000ECE9

0 Kommentare zu diesem Artikel
728897