Права на ветки реестра - C#

Узнай цену своей работы

Формулировка задачи:

В моей программе вывода дерева для ветки реестра HKLM\\SYSTEM\\CurrentControlSet\\Enum\\USB при попытке получить подключи веток Properties возникает исключение. При этом имею на ПК права администратора. Посмотрел разрешения на эту ветку.Есть полный доступ администраторов на System, CurrentControlSet, а вот для Enum и USB в перечне пользователей, у которых есть разрешения, администраторы отсутствуют. Попробовал сделать так:
 RegistryKey hklm = Registry.LocalMachine;
      string user = Environment.UserDomainName + "\\" + Environment.UserName;
      RegistrySecurity rsusbold = new RegistrySecurity();
      RegistrySecurity rsusbnew = new RegistrySecurity();
      rsusbnew.AddAccessRule(new RegistryAccessRule(user,
                          RegistryRights.FullControl,
                          InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                          PropagationFlags.InheritOnly,
                          AccessControlType.Allow));
      RegistryKey hkusb = hklm.OpenSubKey("SYSTEM\\CurrentControlSet\\Enum\\USB", RegistryKeyPermissionCheck.ReadSubTree);
      rsusbold = hkusb.GetAccessControl();
      hkusb.SetAccessControl(rsusbnew);
      hkusb.SetAccessControl(rsusbold);
на hkusb.SetAccessControl(rsusbnew) возникает исключение. Хотя я имею права администратора, добавить вручную администраторов в перечень пользователей, у которых есть разрешения для работы с Enum и USB, не удается (Отказано в доступе). Подскажите, пожалуйста, как все-таки можно получить права для чтения и записи в моем случае. Прилагаю проект.

Решение задачи: «Права на ветки реестра»

textual
Листинг программы
 <requestedExecutionLevel level="asInvoker" uiAccess="false"/>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5