Getuid-x64 Require Administrator Privileges

#ifdef _WIN32
#include <windows.h>
#include <securitybaseapi.h>
BOOL IsAdmin() 
    SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
    PSID AdministratorsGroup; 
    BOOL result = AllocateAndInitializeSid(&NtAuthority, 2,
        SECURITY_BUILTIN_DOMAIN_RID,
        DOMAIN_ALIAS_RID_ADMINS,
        0,0,0,0,0,0,
        &AdministratorsGroup);
    if (result) 
        CheckTokenMembership(NULL, AdministratorsGroup, &result);
        FreeSid(AdministratorsGroup);
return result;
#endif

If you just need a unique identifier for the process, _getpid() works without elevation.


Stop using Getuid-x64. The native Windows command to get your current user SID requires no admin privileges: Getuid-x64 Require Administrator Privileges

whoami /user

Or using PowerShell:

([System.Security.Principal.WindowsIdentity]::GetCurrent()).User.Value

Developers sometimes write:

if (getuid() != 0) 
    printf("Getuid-x64 Require Administrator Privileges\n");
    exit(1);

This is a hardcoded safety check forcing admin execution. #ifdef _WIN32 #include &lt;windows