Сбой LsaEnumerateAccountsWithUserRight при подключении к Windows Server 2008 r2 - PullRequest
0 голосов
/ 02 сентября 2011

У меня есть некоторый код на c #, который использует advapi32.dll для подключения к различным серверам для сбора различной информации в целях документации.

Часть этой документации - получение разрешений пользователей с каждого компьютера. Я использую функцию LsaEnumerateAccountsWithUserRight, которая работает на компьютерах с Windows 2003, но не на машинах 2008 года. Я получаю сообщение об ошибке «Отказано в доступе». Я читал различные темы на разных сайтах, рекомендуя отключить UAC (который я пробовал) и использовать POLICY_VIEW_LOCAL_INFORMATION вместо POLICY_ALL_ACCESS при использовании LsaOpenPolicy (который я пробовал), и, похоже, ни один из них не работает. Кто-нибудь сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 01 марта 2012

Для чего бы то ни было, я могу использовать LsaLookupNames2 и LsaEnumerateAccountRights на Win2008 R2 (работает VS в режиме администратора).

LsaOpenPolicy(... Access.POLICY_LOOKUP_NAMES | Access.POLICY_VIEW_LOCAL_INFORMATION, out lsaHandle)
...
LsaLookupNames2(lsaHandle, 0, 1, names, ref tdom, ref tsids)
...
LsaEnumerateAccountRights(lsaHandle, sid, out hPrivileges, out privileges_count)

Я использовал следующие две ссылки:

...