【发布时间】:2012-08-29 13:55:42
【问题描述】:
我在 msdn 中找到了这个link 来检查用户是否是管理员。当进程提升(以管理员身份运行)时,它在某些 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);
}
【问题讨论】:
-
这是一个类似的问题,可能是您的答案。 stackoverflow.com/questions/8139480/…
-
“不工作”没有帮助。更具体。
-
不是真的,@Jordi。该问题是关于要求操作系统以管理员身份运行您的程序。这个问题是关于确定程序是否已经以管理员身份运行。