【问题标题】:How to retrieve the group SID from GroupName by C++如何通过 C++ 从 GroupName 中检索组 SID
【发布时间】:2017-05-10 03:26:34
【问题描述】:

我知道管理员 Group sid(Well-know-sid) 是“S-1-5-32-544”,但是我研究了 msdn,我没有找到任何方法可以通过 groupName 检索 Group sid .

我使用 ::NetLocalGroupEnum 列出所有组名。此外,我想知道哪个组是管理员组。管理员组的名称默认为“管理员”。如果有人修改了管理员组的名称(例如:从“管理员”到“123”),我怎么知道“123”属于管理员组。现在我用String来判断哪个组是Administrator Group,但是如果Group Name被修改了,这种方式是行不通的。我也使用 ::NetLocalGroupGetInfo,但它的输出结构只包括名称和注释,而不包括组 SID。是否有任何 API 或方式是关于输入是 groupName,而 OutPut 是 Group sid?谢谢!

【问题讨论】:

  • 我们可以使用点网框架吗?
  • @YasharAliabasi 我的环境只是 c++....不过你可以用它来试试!
  • 那么唯一的方法是Win API? @fadder
  • @YasharAliabasi,我想是的@@
  • 您尝试过 WMIC 查询吗? @fadder

标签: c++ msdn


【解决方案1】:

在您的“S-1-5-32-544”SID 上致电 LookupAccountSid()。你会得到一个类型为SidTypeGroup的名字。

正如您正确指出的,SID 值是众所周知的(稳定的),因此您将其用作输入。帐户名称可以本地化,因此这些是输出。

【讨论】:

    【解决方案2】:

    我使用 PowerShell 并找到了以下信息,希望对您有所帮助:

    1. Adding ActiveDirectory Module to PS
    2. 运行Get-ADGroup -Identity AdministratorsAdministrators 是您的组的名称

    【讨论】:

    • 请将 WMIC 命令放在答案中,而不是链接到它们
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2018-07-31
    • 1970-01-01
    • 2021-11-30
    • 2021-06-11
    • 2011-05-14
    相关资源
    最近更新 更多