DossierRisque : Sans risque
Prefetch C:\Windows\Prefetch
C:\Windows\Prefetch : fichiers .pf de préchargement des applications lancées, reconstruits par Windows ; aussi une trace d'exécution précieuse en forensique.
À quoi ça sert
Prefetch garde, pour chaque programme lancé, une trace de ce qu’il a chargé et dans quel ordre, afin d’accélérer ses démarrages suivants. C’est un cache : Windows le reconstruit seul. En analyse forensique, c’est aussi une preuve qu’un programme a été exécuté.
Ce qu’il contient
- Des fichiers
.pfnommésNOM-DU-PROGRAMME-EMPREINTE.pf, un par exécutable lancé (par exempleNOTEPAD.EXE-D8414F97.pf). - Dans chaque
.pf: la liste des fichiers chargés, le nombre d’exécutions et les dates des dernières (jusqu’à huit depuis Windows 8). - Des données exploitées par le service SysMain (anciennement Superfetch).
- Le nombre de fichiers est plafonné (1024 depuis Windows 8) : le dossier ne grossit pas indéfiniment.
Risques et bonnes pratiques
- Vous pouvez en vider le contenu, mais ça n’accélère rien : Windows recrée les fichiers au fil des lancements, et les premiers démarrages qui suivent sont un peu plus lents. Un cache corrompu se règle de la même façon.
- Videz le contenu, jamais le dossier lui-même.
- Sur une machine suspecte, copiez le dossier avant tout nettoyage. Le nom, la date de création et le nombre d’exécutions d’un
.pfétablissent qu’un programme a tourné, même supprimé depuis.
Commandes utiles
# Nombre et taille des fichiers .pfGet-ChildItem "$env:windir\Prefetch" -Filter *.pf | Measure-Object -Property Length -Sum
# Fichiers .pf d'un programme, du plus récent au plus ancienGet-ChildItem "$env:windir\Prefetch" -Filter 'POWERSHELL*.pf' | Sort-Object LastWriteTime -Descending | Select-Object Name, CreationTime, LastWriteTime
# Configuration du préchargement (0 = désactivé, 1 = applications, 2 = démarrage, 3 = les deux) et état du service SysMainGet-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters' | Select-Object EnablePrefetcher, EnableSuperfetchGet-Service SysMain
# Simulation de suppression (retirer -WhatIf pour l'exécuter, en administrateur)Remove-Item "$env:windir\Prefetch\*.pf" -WhatIf