![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
fijik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.1.2007 Репутация: нет Всего: нет |
Здравствуйте!
Вопрос вот в чем: входные параметры: путь к ключу реестра. выходные параметры: вывести список пользователей и тип их аудитов на данный ключ. Если кто сталкивался с подобной задачей-помогите, кто чем может ![]() |
|||
|
||||
Pulse69 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 28.4.2006 Где: Хабаровск Репутация: 8 Всего: 10 |
Извини, сейчас нет времени писать код. Примерно действовать нужно так.
1. Получаешь списки ACL для ветки реестра. Есть ф-ция GetNamedSecurityInfo, которая это делает. 2. Функция GetAuditedPermissionsFromAcl, из списка ACL получает тип аудитов для определённого пользоавтеля. Как перечислить всех пользователей, для которых назначен аудит я точно не знаю, но могут помочь низкоуровневые функции. Примерно так. С помощью GetAclInformation получаешь количество записей в списке ACL. В цикле получаешь каждый элемент (ACE) списка (ф-ция GetAce). Функция возвращает тип ACE_HEADER. Затем, можно узнать тип элемента, и если он относится к одному из типов аудита, привести его к нужной структуре и получить SID пользователя. Потом уже можно заполнить структуру TRUSTEE и вызвать GetAuditedPermissionsFromAcl, чтобы получить все политики аудита для этого пользователя. --------------------
Ctrl+Alt+Reset |
|||
|
||||
fijik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.1.2007 Репутация: нет Всего: нет |
Круто. В принципе, я так и пытался действовать... Но запутался где откуда чего передавать и т.д.... Если все же есть возможночсть помоги с кодом...
![]() |
|||
|
||||
Pulse69 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 28.4.2006 Где: Хабаровск Репутация: 8 Всего: 10 |
Я просто вывел на экран маски доступа.
Посмотри в MSDN топик ACCESS_MASK data type [Security]. ЗЫЖ Код стрёмный, нужно кое-что подчистить, но работает.
Это сообщение отредактировал(а) Pulse69 - 30.1.2007, 17:02 --------------------
Ctrl+Alt+Reset |
|||
|
||||
fijik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.1.2007 Репутация: нет Всего: нет |
В процессе написания появилась еще проблемма.
Может кто знает, как это решается. В типах аудита есть SUCCESS, FAILED и есть ALL (это когда указаны и SUCCESS и FAILED). Как его получить???!!! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |