2011-09-01 51 views
0

我有一些使用“advapi32.dll”连接到各种服务器以收集各种信息用于文档目的的c#代码。LsaEnumerateAccountsWithUserRight在连接到Windows Server 2008 R2时失败

该文档的一部分是从每台计算机获取用户权限。我正在使用LsaEnumerateAccountsWithUserRight函数,它似乎适用于Windows 2003机器,但不适用于2008机器。我收到“拒绝访问”错误。我已阅读各种网站上的各种线程,建议禁用UAC(我尝试过)并使用POLICY_VIEW_LOCAL_INFORMATION而不是POLICY_ALL_ACCESS,当使用LsaOpenPolicy(我尝试过)并且它们都不起作用。有没有人遇到这个问题?

回答

0

对于它的价值,我可以在Win2008 R2上使用LsaLookupNames2和LsaEnumerateAccountRights(在管理员模式下运行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) 

我用下面的两个引用:

相关问题