Администратор не означает «вы получаете все права на что-либо». Администратор - это учетная запись (или, в вашем случае, скорее всего, группа локальных администраторов), которой по умолчанию предоставляются некоторые конфиденциальные привилегии, такие как SeDebugPrivilege и аналогичные. Однако, что касается подсистемы безопасности, это всего лишь учетная запись. (Очень сильно отличается от root в Unix-подобных операционных системах). Если вы не являетесь владельцем соответствующего ключа и ваша учетная запись не имеет доступа WRITE_DAC к рассматриваемому разделу реестра, вы не сможете изменить список контроля доступа по рассматриваемому ключу.
Попробуйте взять на себя ответственность в первую очередь По умолчанию в группе локальных администраторов имеется SeTakeOwnershipPrivilege , который позволяет вступать во владение любым объектом, даже если разрешение WRITE_OWNER не предоставлено списком управления доступом объекта. Как только вы станете владельцем, вам неявно должны быть предоставлены READ_CONTROL (который позволяет читать дескриптор безопасности для рассматриваемого объекта) и WRITE_DAC (который позволяет записывать в DACL соответствующий ключ). (Предполагая, что SID OWNER_RIGHTS не используется; это крайне маловероятно)