wpndatabase.db : emplacement et collecte
Où se trouve la base de notifications sous Windows 10 et 11, et comment la collecter avec son -wal sur système actif, image, KAPE ou Velociraptor.
En bref. Collectez wpndatabase.db et wpndatabase.db-wal depuis C:\Users\<user>\AppData\Local\Microsoft\Windows\Notifications\ pour chaque profil, au même instant. Sur un système actif, le fichier est verrouillé : utilisez un cliché instantané, la cible KAPE WindowsNotificationsDB ou Velociraptor. N'ouvrez jamais d'abord la base active dans un outil SQLite.
Le chemin
| Élément | Valeur |
|---|---|
| Dossier | %LOCALAPPDATA%\Microsoft\Windows\Notifications\ |
| Windows 10 1607+ / Windows 11 | wpndatabase.db, wpndatabase.db-wal, wpndatabase.db-shm |
| Windows 10 avant 1607, Windows 8.x | appdb.dat |
Il y a une base par profil. Conservez Users\<name>\ dans le chemin collecté : le dossier lui-même n'indique pas à qui appartient la base.
Quels fichiers prendre
| Fichier | À prendre ? | Pourquoi |
|---|---|---|
wpndatabase.db | Oui | La base après checkpoint |
wpndatabase.db-wal | Oui | Les modifications validées pas encore réécrites : souvent les notifications les plus récentes, et d'anciennes images de pages utiles à la récupération |
wpndatabase.db-shm | Facultatif | Un index en mémoire partagée que SQLite reconstruit ; il ne contient aucun élément de preuve absent des deux autres |
appdb.dat | S'il existe | Le stockage antérieur à 1607 |
Système actif : un seul cliché instantané
La base est ouverte tant que l'utilisateur est connecté : une simple copie échoue ou renvoie un fichier rempli de zéros. Un unique cliché instantané de volume (VSS) fournit la base et son WAL au même instant. Depuis un Windows PowerShell élevé :
New-Item -ItemType Directory -Force -Path C:\triage | Out-Null
$sc = Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create -Arguments @{ Volume = 'C:\' }
$vss = Get-CimInstance -ClassName Win32_ShadowCopy -Filter "ID='$($sc.ShadowID)'"
cmd /c mklink /d C:\triage\vss "$($vss.DeviceObject)\"
robocopy C:\triage\vss\Users C:\triage\Users wpndatabase.db wpndatabase.db-wal appdb.dat /S /XJ /B /R:0 /W:0 /NP /NDL
cmd /c rmdir C:\triage\vss
$vss | Remove-CimInstance
Le résultat est C:\triage\Users\<user>\AppData\Local\Microsoft\Windows\Notifications\ pour chaque profil.
KAPE
kape.exe --tsource C: --tdest C:\triage\kape --target WindowsNotificationsDB
La cible WindowsNotificationsDB utilise le masque wpndatabase.db* (le WAL est donc inclus) ainsi que appdb.dat, pour chaque utilisateur.
Velociraptor
Collectez l'artefact Windows.Triage.Targets du projet Velociraptor Triage avec la cible WindowsNotificationsDB, depuis l'interface graphique ou un collecteur hors ligne. L'artefact intégré Windows.Search.FileFinder, avec un glob sur le dossier Notifications et l'envoi des fichiers activé, fonctionne également.
Images disque
Montez l'image en lecture seule et exportez Users\*\AppData\Local\Microsoft\Windows\Notifications\ en conservant l'arborescence. Examinez aussi les clichés instantanés de l'image : un instantané plus ancien peut contenir des notifications expirées depuis.
Les erreurs qui coûtent des preuves
- Ouvrir la base active dans un navigateur SQLite. Ouvrir une base en mode WAL peut déclencher un checkpoint qui intègre le WAL au fichier principal et le réinitialise — les anciennes images de pages dont vous aviez besoin pour la récupération disparaissent.
- Copier la base sans son WAL, ou copier les deux à des moments différents. Dans le premier cas, on perd les notifications les plus récentes ; dans le second, on mélange des états. Un WAL provenant d'une autre base est détecté et ignoré par le parseur.
- Attendre. Les notifications expirent et celles qui sont fermées sont supprimées ; l'espace libre est réutilisé à mesure que de nouvelles notifications arrivent.
Calculez l'empreinte des fichiers tels que collectés, puis analysez des copies — par exemple avec le parseur dans le navigateur.
FAQ
Où la base de notifications Windows est-elle stockée ?
Dans C:\Users\<user>\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db, avec wpndatabase.db-wal et wpndatabase.db-shm à côté. Les anciennes builds de Windows 10 utilisent appdb.dat dans le même dossier.
Quelle cible KAPE la collecte ?
WindowsNotificationsDB. Elle collecte wpndatabase.db* (base, -wal et -shm) et appdb.dat dans chaque profil utilisateur. La même cible est disponible dans l'artefact Windows.Triage.Targets de Velociraptor.