Я получаю ошибку "Отказано в доступе" при вызове LsaQueryInformationPolicy(), и я являюсь администратором.

Я получаю эту ошибку, возвращаю ли я LsaQueryInformationPolicy() на локальном хосте или на другой машине в домене. Флаги, которые я использую для LsaOpenPolicy() являются POLICY_LOOKUP_NAMES | POLICY_VIEW_LOCAL_INFORMATION но я тоже пытался POLICY_LOOKUP_NAMES | POLICY_VIEW_LOCAL_INFORMATION | READ_CONTROL безуспешно.

Пользователь, в который я вошел как локальный администратор, как на моей машине, так и на всех остальных, которые я пытаюсь сделать.

Для второго параметра LsaQueryInformationPolicy() я использую PolicyAuditEventsInformation,

Я могу использовать LsaEnumerateAccountRights() на том же хосте, используя тот же дескриптор политики, успешно.

1 ответ

Решение

Попробуй использовать POLICY_LOOKUP_NAMES | GENERIC_READ | POLICY_VIEW_LOCAL_INFORMATION вместо POLICY_LOOKUP_NAMES | POLICY_VIEW_LOCAL_INFORMATION, Это работает на моем компьютере.

ОБНОВЛЕНО: Чтобы быть более точным, вам нужно только POLICY_VIEW_AUDIT_INFORMATION во время открытия LsaOpenPolicy() читать аудиторскую информацию.

Другие вопросы по тегам