![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Столкнулся с такой задачей: В реестре имеется ключ, который нужно удалить. Права доступа следующие: система - read, Администраторы - read, Пользователи - read, TrustedInstaller - Full. Как я понимаю нужно стать владельцем объекта, затем установить для своего пользователя права на запись и лишь после этого удалить нужный объект. Однако столкнулся с тем что при попытке выполнения следующего кода получаю сообщение об ошибке.
Код:
TestUser - является администратором. Собственно вопрос с каким ключем прав доступа выполнить RegOpenKeyEx. Последний раз редактировалось Asmoday74, 29.10.2011 в 23:48. |
#2
|
||||
|
||||
![]() Почитал справку от мелкософта нашел следующее:
When you call the RegOpenKeyEx function, the system checks the requested access rights against the key's security descriptor. If the user does not have the correct access to the registry key, the open operation fails. If an administrator needs access to the key, the solution is to enable the SE_TAKE_OWNERSHIP_NAME privilege and open the registry key with WRITE_OWNER access. For more information, see Enabling and Disabling Privileges. Пробую открыть нужный раздел с правами на смену владельца, все проходит удачно. Код:
Функцию для установки SE_TAKE_OWNERSHIP_NAME использую такую: Код:
|
#3
|
|||
|
|||
![]() Вобщем вопрос решил сам, выкладываю полностью рабочий код функций для смены прав доступа к ветке реестра. Поддержка начиная с Windows 2000.
Код:
|