msydn에이 link이 있는데 사용자가 admin인지 확인했습니다. 프로세스가 승격되면 (관리자로 실행) 일부 win7 시스템에서는 정상적으로 작동하지만 일부 시스템은 작동하지 않습니다 (일부는 2008 년 획득). 이것이 올바른 방법인가요?사용자가 Windows 7에서 관리자인지 확인하는 방법은 무엇입니까?
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()
를 사용할 수 있습니다. 는 http://stackoverflow.com/questions/8139480/c-console-application-prompt-run-as-admin-to-run-as-administrator –"작동하지 않는"도움이되지 않습니다. 더 구체적으로 말하십시오. – tenfour
사실, @ Jordi. 그 질문은 운영 체제에 관리자로 프로그램을 실행하도록 요청하는 것입니다. 이 질문은 프로그램이 이미 관리자로 실행 중인지 여부를 확인하는 것입니다. –