如何在Windows 7中检查用户是否为admin?

时间:2012-08-29 13:55:43

标签: c++ windows windows-7 sid

我在msdn中找到了这个link来检查用户是否是管理员。当进程升级时(以管理员身份运行),它在某些win7机器上正常工作但我找到了一些机器(有些赢得2008年),它无法工作! 这是正确的方法吗?

BOOL IsUserAdmin(VOID)
{
  BOOL b;
  SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
  PSID AdministratorsGroup; 
  b = AllocateAndInitializeSid(
    &NtAuthority,
    2,
    SECURITY_BUILTIN_DOMAIN_RID,
    DOMAIN_ALIAS_RID_ADMINS,
    0, 0, 0, 0, 0, 0,
    &AdministratorsGroup); 
  if(b) 
  {
    if (!CheckTokenMembership( NULL, AdministratorsGroup, &b)) 
    {
      b = FALSE;
    } 
  FreeSid(AdministratorsGroup); 
  }
  return(b);
}    

1 个答案:

答案 0 :(得分:2)

您可以使用IsUserAnAdmin()作为上述调用的包装器