Aller au contenuAller à l'arborescence
  1. C:
  2. Windows
  3. ServiceProfiles
DossierRisque : Ne pas toucher

ServiceProfiles C:\Windows\ServiceProfiles

C:\Windows\ServiceProfiles : profils des comptes Service local et Service réseau (AppData, NTUSER.DAT, caches, vidages en mode utilisateur des services).

Mis à jour le Par AltF4 Formation

À quoi ça sert

ServiceProfiles contient les profils des comptes sous lesquels tournent de nombreux services Windows : Service local (LocalService) et Service réseau (NetworkService). Comme un utilisateur interactif, ces comptes ont besoin d’un emplacement pour leurs données, leur ruche du Registre et leurs fichiers temporaires. Le compte Système a le sien ailleurs, dans System32\config\systemprofile.

Ce qu’il contient

  • Un sous-dossier par compte, LocalService et NetworkService, avec une structure de profil (AppData, NTUSER.DAT…).
  • Des vidages en mode utilisateur quand un service plante : ils sont écrits dans le profil du compte de service concerné, donc ici pour ces deux comptes.
  • Des caches de services : le cache de polices (LocalService\AppData\Local\FontCache) et celui de l’Optimisation de la distribution (NetworkService\AppData\Local\Microsoft\Windows\DeliveryOptimization), souvent les plus gros.

Risques et bonnes pratiques

  • Supprimer ou déplacer un profil fait perdre leur configuration aux services concernés, voire les empêche de démarrer. Corrigez la cause d’un sous-dossier volumineux (service qui boucle, journalisation trop bavarde) plutôt que de purger à la main.
  • Pour le cache de l’Optimisation de la distribution, la commande Delete-DeliveryOptimizationCache le vide proprement.
  • Les droits d’accès isolent les comptes de service les uns des autres : ne les modifiez pas.
  • Les vidages de services peuvent contenir des données sensibles : protégez-les comme tout vidage mémoire.

Commandes utiles

Fenêtre de terminal
# En administrateur : taille de chaque profil de service
Get-ChildItem "$env:windir\ServiceProfiles" -Directory | ForEach-Object { [pscustomobject]@{ Profil = $_.Name; SizeMB = [math]::Round((Get-ChildItem $_.FullName -Recurse -Force -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB, 1) } }
# Services qui s'exécutent sous ces deux comptes
Get-CimInstance Win32_Service | Where-Object StartName -in 'NT AUTHORITY\LocalService', 'NT AUTHORITY\NetworkService' | Select-Object Name, StartName
# Vidages éventuels des services
Get-ChildItem "$env:windir\ServiceProfiles\LocalService\AppData\Local\CrashDumps" -Force -ErrorAction SilentlyContinue

Signaler une erreur