Pourquoi Windows Server n'a pas de fichiers prefetch
Si vous avez extrait un dossier Prefetch\ d'une installation Windows
Server pour ne rien y trouver, le système se comportait probablement
comme prévu. Prefetch est une fonctionnalité de poste de travail.
Microsoft le désactive par défaut sur les éditions Server parce que les
hypothèses de charge de travail — des services à exécution longue
plutôt que des applications interactives à durée de vie courte — le
rendent contre-productif pour la performance.
La clé de registre
Le comportement de prefetch est gouverné par une seule clé :
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
Deux valeurs comptent :
EnablePrefetcher(DWORD) —0(désactivé),1(prefetch au lancement d'application uniquement),2(prefetch de démarrage uniquement),3(les deux, valeur par défaut sur poste de travail).EnableSuperfetch(DWORD) — mêmes sémantiques de valeur, contrôle SuperFetch / SysMain, la fonctionnalité plus large de gestion de la mémoire qui héberge la logique prefetch sur Windows moderne.
Sur Windows Server, les deux valent 0 par défaut. Sur les éditions
poste de travail Windows 10/11, les deux valent 3 par défaut.
Le service SysMain
Le service qui écrit les fichiers prefetch s'appelle SysMain
(renommé depuis « Superfetch » dans les versions antérieures). Si
SysMain est arrêté ou désactivé, la génération de prefetch s'arrête
même si le registre est à 3. Une vérification en deux temps sur un
système en fonctionnement :
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters"
sc query SysMain
Il faut à la fois EnablePrefetcher = 3 et que SysMain soit
en cours d'exécution pour que de nouveaux fichiers prefetch apparaissent
dans C:\Windows\Prefetch\.
Implications forensiques
Un dossier Prefetch\ vide n'est pas en soi un constat négatif. Avant
de conclure « aucune preuve prefetch », vérifiez :
- L'édition de l'OS : les éditions Server, même actives depuis des mois, n'auront pratiquement aucun prefetch.
- Les valeurs du registre : confirmez
EnablePrefetcheretEnableSuperfetchau moment de la collecte. Les deux à0indiquent que le système était configuré pour supprimer prefetch. - L'état de SysMain : si le service a été arrêté ou désactivé, c'est souvent visible dans le journal d'événements Système. Cherchez des événements émis par le Service Control Manager autour du moment où vous attendiez le démarrage de la génération de prefetch.
- SSD vs HDD : certaines builds Windows 10 désactivent automatiquement prefetch sur les systèmes uniquement SSD, pour des raisons d'I/O. C'est rare sur les versions actuelles, mais bon à savoir.
Réactiver pour la collecte
Si vous contrôlez le système et souhaitez activer prefetch pour la visibilité continue :
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
Notez qu'activer prefetch ne reconstitue pas rétroactivement les
données d'exécution historiques. À partir du moment où SysMain
recommence à écrire, les nouveaux fichiers .pf ne reflètent que les
nouveaux lancements. Pour les preuves d'exécution passées sur un
système où prefetch était désactivé, il vous faudra vous appuyer sur
Amcache, ShimCache et les journaux
d'événements.
Désactivé par stratégie
Dans certains environnements, prefetch est supprimé par stratégie de
groupe (GPO) ou par les baselines de durcissement des endpoints (CIS,
STIG, profils éditeurs). Les valeurs du registre refléteront le réglage
de la stratégie ; consulter le résultat de la stratégie de groupe locale
(gpresult /h) permet de confirmer si la valeur a été forcée par une
GPO ou définie localement.