c++ - 如何检查用户是否是 Windows 7 中的管理员?

标签 c++ windows windows-7 sid

我找到了这个 link在 msdn 中检查用户是否是管理员。当进程提升(以管理员身份运行)时,它在某些 win7 机器上工作正常,但我发现一些机器(一些 win 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);
}    

最佳答案

您可以使用 IsUserAnAdmin(),它是上述调用的包装器

关于c++ - 如何检查用户是否是 Windows 7 中的管理员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12179624/

相关文章:

c# - 在 Windows 7 中保留屏幕区域

c# - 在 Windows Vista 和 7 中,我无法访问 %DEFAULTUSERPROFILE% 系统变量 - 它显示为未找到

c++ - 使用 rundll32.exe 调试 native dll,无法加载符号

c - fopen() 在一段时间内成功打开文本文件并在特定时间后失败

c++ - 如何使用 std::experimental::simd?

c++ - 用qmake成功编译SSE指令(但不识别SSE2)

python - 在 tkinter 中查找窗口的坐标

ms-access - 自更新到 Windows 7 以来,Access DB 中的更改未保存

c++ - wxWidgets wxPen 大小意外改变

c++ - 是否可以为模板模板参数定义别名?