1

我有一个 CSid 对象,它为 SYSTEM 保存一个众所周知的 sid。调用 Domain() 函数我可以看到域是“NT AUTHORITY”。

在 MSDN 中,我发现该组的 SID 是“S-1-5”,因此我尝试使用 ConvertStringSidToSid() 来获取该组的 PSID,但我收到一个错误,即 SID 结构不正确。

有没有办法为该组获取 CSid?是否可以?

非常感谢!:-)

4

1 回答 1

2

为此,您需要使用AllocateAndInitializeSid() 函数。请参阅MSDN 中的此示例

PSID psid;
SID_IDENTIFIER_AUTHORITY SIDAuth = SECURITY_NT_AUTHORITY;

if(! AllocateAndInitializeSid( &SIDAuth, 2,
                               SECURITY_BUILTIN_DOMAIN_RID,
                               DOMAIN_ALIAS_RID_ADMINS,
                               0, 0, 0, 0, 0, 0,
                               &psid) ) 
{
    printf( "AllocateAndInitializeSid Error %u\n", GetLastError() );
    return FALSE;
}
于 2011-01-25T15:24:06.367 回答