【问题标题】:LsaEnumerateAccountsWithUserRight fails when connecting to Windows Server 2008 r2连接到 Windows Server 2008 r2 时 LsaEnumerateAccountsWithUserRight 失败
【发布时间】:2023-03-23 23:37:01
【问题描述】:

我有一些 c# 代码使用“advapi32.dll”连接到各种服务器以收集各种信息以用于文档目的。

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

【问题讨论】:

    标签: c# windows-server-2008-r2 lsa


    【解决方案1】:

    不管怎样,我可以在 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)
    

    我使用了以下两个参考:

    【讨论】:

      猜你喜欢
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      相关资源
      最近更新 更多