En un mot : les autorisations.
Pour plus de détails
Localisation
Le BCD est stocké sur le disque de démarrage (généralement un volume NTFS de ~100 Mo). Il est caché par défaut, mais vous pouvez lui attribuer une lettre de lecteur à l'aide du snap-in MMC de gestion des disques ( diskmgmt.msc
). Vous pouvez ensuite consulter la rubrique Boot
et voir le fichier BCD
qui est un fichier ordinaire au format "ruche de registre" contenant les données de configuration du démarrage.
Raison d'être
Il est évident que les données de démarrage sont très sensibles et constituent la première ligne de défaillance. Il est relativement facile de remédier à une erreur dans les fichiers système, mais il faut pour cela quelque chose à courir pour effectuer les réparations. Si les fichiers de démarrage sont abîmés, rien ne fonctionnera et c'est l'extinction des feux. (Il est toujours possible de réparer, mais pas automatiquement ; il faudra une intervention manuelle délibérée, comme l'utilisation d'un disque de démarrage ou d'installation).
Les données de démarrage étant critiques, Windows ne facilite pas les manipulations à l'intérieur du registre. L'utilisation de l'éditeur de registre pour modifier directement les données de démarrage permettrait de définir des valeurs invalides ou contradictoires, d'ajouter des entrées invalides ou illégales, de supprimer des entrées obligatoires, etc. Limiter la modification du BCD à bcdedit
permet de limiter les modifications à des valeurs valides, ce qui contribue à limiter les dommages qui peuvent être causés (cela n'élimine pas complètement les problèmes ; il est toujours possible de tuer un système, mais au moins cela élimine une grande partie des problèmes possibles).
Méthode
Si vous examinez les permissions du fichier BCD00000000
vous verrez qu'il a Full Control
défini pour le compte SYSTEM, mais le groupe des administrateurs a Special
qui est simplement Read-Only
plus WriteDac
qui permet de définir des autorisations. (Il se peut que vous deviez cliquer sur le bouton [Advanced]
parce que la boîte de dialogue de base indique que le SYSTÈME a Special
également, mais l'accès à la Paramètres de sécurité avancés La boîte de dialogue montre qu'il est correctement réglé sur Full Control
.)
Lorsque vous exécutez Regedit (qui nécessite des privilèges élevés), il s'exécute dans le contexte de votre compte d'utilisateur et bénéficie des autorisations du groupe d'administrateurs, de sorte que vous ne pouvez pas y écrire. Lorsque vous utilisez l'option bcdedit
elle s'exécute sous le contexte du compte SYSTEM qui dispose des droits d'écriture. Si vous activez la commande Nom de l'utilisateur dans le Gestionnaire des tâches, vous pouvez voir que Regedit est exécuté par votre compte d'utilisateur et qu'il n'est pas exécuté par un autre compte. bcdedit
est géré par le SYSTÈME.
Solutions de rechange
Il est déconseillé d'éditer directement le BCD avec Regedit et rarement nécessaire, mais si vous devez vraiment le faire, une solution consiste à vous accorder un accès en écriture au fichier BCD00000000
branche. Bien entendu, cette méthode n'est pas recommandée, car il faut se rappeler de révoquer l'autorisation ultérieurement. Un moyen plus simple est de simplement exécuter Regedit dans le contexte SYSTEM .