Zurück zu allen Beiträgen

Warum Windows Server keine Prefetch-Dateien hat

Wenn Sie einen Prefetch\-Ordner aus einer Windows-Server-Installation gezogen haben und leer ausgegangen sind, hat sich das System wahrscheinlich genau wie vorgesehen verhalten. Prefetch ist ein Workstation-Feature. Microsoft deaktiviert es auf Server-SKUs standardmäßig, weil die Workload-Annahmen — langlaufende Dienste statt kurzlebiger, interaktiver Anwendungen — es performance-seitig kontraproduktiv machen.

Der Registry-Schalter

Das Prefetch-Verhalten wird von einem Schlüssel gesteuert:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

Zwei Werte sind relevant:

  • EnablePrefetcher (DWORD) — 0 (deaktiviert), 1 (nur Application-Launch-Prefetch), 2 (nur Boot-Prefetch), 3 (beides, Workstation-Standard).
  • EnableSuperfetch (DWORD) — gleiche Wertsemantik, steuert SuperFetch / SysMain, also das übergeordnete Memory-Management-Feature, das auf modernen Windows-Versionen die Prefetch-Logik beherbergt.

Auf Windows Server stehen beide Werte standardmäßig auf 0. Auf den Workstation-Editionen Windows 10/11 stehen beide standardmäßig auf 3.

Der SysMain-Dienst

Der Dienst, der Prefetch-Dateien schreibt, heißt SysMain (in früheren Versionen hieß er „Superfetch"). Ist SysMain gestoppt oder deaktiviert, werden auch dann keine Prefetch-Dateien mehr erzeugt, wenn die Registry auf 3 steht. Eine Zwei-Schritt-Prüfung auf einem laufenden System:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters"
sc query SysMain

Sowohl EnablePrefetcher = 3 als auch ein laufender SysMain-Dienst sind erforderlich, damit neue Prefetch-Dateien in C:\Windows\Prefetch\ erscheinen.

Forensische Konsequenzen

Ein leerer Prefetch\-Ordner ist für sich genommen kein Negativbefund. Bevor Sie auf „keine Prefetch-Beweise" schließen, prüfen Sie:

  1. OS-Edition: Server-Editionen weisen selbst nach monatelanger Laufzeit faktisch keine Prefetch-Dateien auf.
  2. Die Registry-Werte: Bestätigen Sie EnablePrefetcher und EnableSuperfetch zum Zeitpunkt der Sicherung. Beide auf 0 bedeutet, dass das System so konfiguriert war, Prefetch zu unterdrücken.
  3. SysMain-Status: War der Dienst gestoppt oder deaktiviert, ist das oft im System-Eventlog sichtbar. Suchen Sie nach Ereignissen des Service Control Managers rund um den Zeitpunkt, zu dem Sie die Prefetch-Generierung erwartet hätten.
  4. SSD vs. HDD: Einige Windows-10-Builds deaktivieren Prefetch auf reinen SSD-Systemen automatisch aus I/O-Gründen. In aktuellen Versionen ist das selten, aber man sollte es wissen.

Reaktivieren für die Sicherung

Wenn Sie das System kontrollieren und Prefetch für laufende Sichtbarkeit einschalten möchten:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" /v EnablePrefetcher /t REG_DWORD /d 3 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" /v EnableSuperfetch /t REG_DWORD /d 3 /f
sc config SysMain start= auto
net start SysMain

Beachten Sie: Das Aktivieren von Prefetch füllt nicht rückwirkend historische Ausführungsdaten nach. Ab dem Moment, in dem SysMain wieder schreibt, spiegeln neue .pf-Dateien ausschließlich neue Programmstarts wider. Für Belege vergangener Ausführungen auf einem System, auf dem Prefetch deaktiviert war, müssen Sie auf Amcache, ShimCache und Eventlogs zurückgreifen.

Per Richtlinie deaktiviert

In manchen Umgebungen wird Prefetch per Gruppenrichtlinie oder durch Endpoint-Hardening-Baselines (CIS, STIG, Hersteller-Profile) unterdrückt. Die Registry-Werte spiegeln dann die Richtlinieneinstellung wider; ein Blick auf das lokale Gruppenrichtlinienergebnis (gpresult /h) verrät, ob der Wert durch ein GPO erzwungen oder lokal gesetzt wurde.