gpt4 book ai didi

c++ - 在没有管理员权限的情况下获取主域 SID

转载 作者:行者123 更新时间:2023-11-30 05:40:25 33 4
gpt4 key购买 nike

我正在尝试使用 C++ 在 Windows 上获取计算机的主域 SID。我已经使用 LsaQueryInformationPolicyPolicyPrimaryDomainInformation 参数来做到这一点。我已经按照给定的方式为此操作打开了 LSA 策略:

auto lsaStatus = LsaOpenPolicy(Server, &ObjectAttributes, GENERIC_READ | POLICY_VIEW_LOCAL_INFORMATION, &PolicyHandle);

不幸的是,使用 LSAOpenPolicy 需要管理员权限才能运行,而对于我正在处理的项目,它不能,因为大多数用户不会拥有它。我的问题是 - 有没有办法在不调用管理员权限的情况下获取当前计算机的主域 SID?如果有,我应该如何使用 Visual C++/MFC 来实现?

最佳答案

我已经找到了解决这个问题的方法。原来我根据 MSDN 上不正确的 API 描述做出了错误的假设。我们可以读到here , LsaOpenPolicy 似乎需要管理员权限和关于 Access Masks 的文章没有说也没有把我带到任何我可以找到有关所需特权的信息的地方。但是感谢堆栈溢出用户 TripShock以及他对类似话题的评论 here我发现实际上仅使用 POLICY_VIEW_LOCAL_INFORMATION 访问标志不会调用管理员权限。在我的程序和虚拟机中对其进行了测试,结果证明是正确的。

关于c++ - 在没有管理员权限的情况下获取主域 SID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31651820/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com