Linux 환경이라면 getuid 라는 함수로 root 권한인지 쉽게 확인할 수 있다.
하지만 Windows 환경은 Linux 처럼 간단하지는 않다.
다행히 MSDN에 좋은 예시가 있다.
https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa376389(v=vs.85).aspx.aspx
위의 링크에서 좋은 예시를 보여주고 있다.
아래의 소스는 좀더 읽기 편하게 바꾸어 보았다.
#include<WinBase.h>
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;
}
관리자 권한인경우 TRUE
아닐경우 FALSE 를 반환한다.