msdn でこのリンクを見つけて、ユーザーが管理者かどうかを確認しました。プロセスが昇格したとき(管理者として実行されたとき)、一部の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);
}