ShellBags sous Windows 11, 10, 7 et XP : ce qui change
Les ShellBags de Windows XP, Vista, 7, 8.1, 10 et 11 : emplacement des ruches, versions du bloc d'extension, dossiers racines et archives natives.
TL;DR. La grande rupture se situe entre XP et Vista : les ShellBags passent de NTUSER.DAT (Shell et ShellNoRoam) à UsrClass.dat (Local Settings\Software\Microsoft\Windows\Shell), et à partir de Vista le bloc d'extension des items file entry contient des références MFT NTFS. De Windows 7 à 11, les clés restent les mêmes ; c'est le contenu qui évolue : versions du bloc d'extension (7 → 8 → 9), items délégués pour les dossiers du profil, nouveaux dossiers racines (Bibliothèques, Accès rapide, OneDrive, Accueil) et, sous Windows 11, navigation native dans les archives RAR/7z/tar depuis KB5031455. Utilisez un outil qui les connaît tous et vérifiez les entrées inhabituelles sur les octets bruts.
La plupart des confusions sur les ShellBags d'une version de Windows à l'autre viennent d'un analyste qui applique un ancien modèle mental à un nouveau système, ou d'un outil conçu pour Windows 7 appliqué à une ruche Windows 11. Cet article est la carte des versions. Pour les chemins eux-mêmes et la collecte des ruches, voir où sont stockés les ShellBags.
Carte des versions
| Windows | Ruche et clé | Version 0xBEEF0004 | Ce qu'on remarque en pratique |
|---|---|---|---|
| XP / 2003 | NTUSER.DAT : Software\Microsoft\Windows\ShellNoRoam\BagMRU et Shell\BagMRU | 3 | Pas de référence MFT dans les items. Arborescences itinérante et non itinérante séparées. |
| Vista / 2008 | UsrClass.dat : Local Settings\Software\Microsoft\Windows\Shell\BagMRU (+ NTUSER Shell\BagMRU) | 7 | Numéro d'entrée MFT et de séquence dans les items file entry. |
| 7 / 2008 R2 | Comme Vista | 8 | Items délégués (CFSF) pour les dossiers du profil ; racine Bibliothèques. |
| 8 / 8.1 | Idem | 8 (8.0), 9 (8.1) | Bloc d'extension plus long avant le nom long. |
| 10 | Idem | 9 | Racines Accès rapide et OneDrive ; dossiers de « Ce PC » (Objets 3D sur certaines builds). |
| 11 | Idem | Voir la note | Racine Accueil ; navigation RAR/7z/tar dans l'Explorateur depuis KB5031455. |
Les versions d'extension proviennent de la spécification libfwsi, dont le jeu de tests s'arrête à Windows 10. Pour Windows 11, lisez la version directement dans l'item : le ShellBags Parser l'affiche dans le détail de l'entrée. La séparation des emplacements entre XP et Vista+ est résumée par Magnet Forensics et par Chad Tilbury au SANS.
Windows XP : deux arborescences dans NTUSER.DAT
XP conservait les ShellBags dans NTUSER.DAT sous Software\Microsoft\Windows\ShellNoRoam (données locales, non itinérantes) et Software\Microsoft\Windows\Shell. Analysez les deux. Les items file entry de l'époque XP ont un bloc d'extension de version 3 : dates de création et d'accès et nom long, mais aucune référence de fichier NTFS. Impossible donc de faire la vérification de séquence MFT décrite dans l'article sur les dossiers supprimés.
Des ruches XP se présentent encore : systèmes industriels anciens, vieilles images dans des affaires non résolues, et profils migrés qui ont emporté leurs items.
Vista et 7 : le passage à UsrClass.dat
Depuis Vista, l'arborescence principale vit dans la ruche de classes par utilisateur, UsrClass.dat, sous Local Settings\Software\Microsoft\Windows\Shell. NTUSER.DAT conserve aussi une arborescence Software\Microsoft\Windows\Shell\BagMRU, généralement bien plus petite. Deux changements comptent pour l'analyse :
- Références MFT. Les blocs d'extension de version 7 et plus ajoutent un numéro d'entrée MFT sur 48 bits et un numéro de séquence sur 16 bits, ce qui relie un ShellBag à un enregistrement NTFS précis (voir référence de fichier MFT).
- Items délégués. Windows 7 stocke souvent les dossiers du profil utilisateur sous forme d'items délégués
0x74enveloppant un file entry classique (signatureCFSF). Les anciens parseurs qui les ignoraient produisaient des chemins troués.
C'est aussi sous Windows 7 qu'ont été menés la plupart des tests comportementaux publiés. Les tests de 4n6k sous Windows 7 ont montré que sélectionner un dossier dans l'Explorateur peut créer une entrée sans y entrer, et que les dates embarquées ne sont pas mises à jour après la création. Ne supposez pas que chaque build ultérieure se comporte de la même façon ; testez à nouveau le comportement sur lequel repose votre constatation.
Windows 8 et 8.1
Aucun changement de chemin. Les items de Windows 8.1 utilisent le bloc d'extension de version 9, qui contient davantage de champs avant le nom long. Un parseur qui code en dur les offsets de la version 8 lit des noms incohérents sur les items 8.1+ ; un nom long aberrant à côté d'un nom 8.3 correct en est le signe.
Windows 10
Mêmes clés, items de version 9, et davantage de dossiers racines. L'Explorateur s'ouvre sur Accès rapide, OneDrive a sa propre racine d'espace de noms, et certaines builds affichent des dossiers comme Objets 3D sous Ce PC. Ils apparaissent comme des items racines (0x1F) ou des dossiers connus identifiés par GUID. Le ShellBags Parser traduit les plus courants en noms (Poste de travail, Réseau, Corbeille, Bibliothèques, Accès rapide, OneDrive, Bureau, Documents, Téléchargements et d'autres) et affiche les GUID inconnus entre accolades ; la page Microsoft KNOWNFOLDERID liste les identifiants de dossiers documentés.
C'est aussi dans les profils Windows 10 que l'on trouve le plus souvent des téléphones et appareils photo parcourus en MTP. Ces items ne sont que partiellement documentés ; attendez-vous au mieux à un nom lisible d'appareil ou de dossier, et gardez l'hexadécimal brut dans vos notes.
Windows 11
Les clés ne changent pas. Les différences que vous verrez :
- Accueil. Les builds récentes ouvrent l'Explorateur sur Accueil, un autre GUID racine (
F874310E-B6B7-47DC-BC84-B9E6B38F5903dans la table du parseur). - Navigation native dans les archives. Les notes de version de KB5031455 de Microsoft (octobre 2023, builds 22621 et 22631) ajoutent la lecture des formats
.rar,.7z,.tar,.tgzet apparentés via libarchive. La navigation dans les ZIP existe depuis des décennies ; les traces ShellBags laissées par les nouveaux formats ne sont pas encore bien documentées publiquement. Voir ShellBags et fichiers ZIP. - Onglets. Plusieurs dossiers peuvent être ouverts dans une même fenêtre de l'Explorateur. Le stockage ne change pas, mais le raisonnement « une fenêtre = une navigation » devient encore plus fragile.
Ce qui ne change pas
- Navigation, pas accès aux fichiers. Vrai pour toutes les versions. Voir ShellBags vs LNK, Jump Lists et RecentDocs.
- Logique des horodatages. LastWrite de clé plus MRUListEx fonctionne partout de la même façon. Voir les horodatages des ShellBags expliqués.
- Limites de capacité. Windows ne conserve les réglages d'affichage que pour un nombre limité de dossiers ; la valeur
BagMRU Size, dont la valeur par défaut est couramment donnée à 5 000 depuis Vista (par exemple par Winaero), permet de l'augmenter. Sur un profil très utilisé, ne supposez pas une conservation illimitée. - Angle mort de la console.
cmd, PowerShell et la plupart des scripts ne créent jamais de ShellBags.
Conseils pratiques pour les parcs hétérogènes
- Notez la version et la build de l'OS de chaque poste avec les ruches (la clé
CurrentVersionde la ruche SOFTWARE les contient ; le parseur de registre la lit). - Attendez-vous à ce que des profils migrés d'une version à l'autre contiennent des items de plusieurs versions d'extension. C'est normal.
- Quand une nouvelle build présente des items inconnus, comparez deux outils et les octets bruts avant d'écrire une phrase à leur sujet.