Navegando pela internet, encontrei a função abaixo, e achei interessante.

Se você precisar verificar, de dentro do seu aplicativo Delphi, se o usuário corrente é o administrador do computador, ou membro do grupo administradores, use a função “IsWindowsAdmin”.

unit WindowsUser;

interface
uses Windows;

//retorna True se o usuário atual tem privilégios administrativos
function IsWindowsAdmin: Boolean;

implementation

const
SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)) ;

const
SECURITY_BUILTIN_DOMAIN_RID = $00000020;
DOMAIN_ALIAS_RID_ADMINS = $00000220;

function IsWindowsAdmin: Boolean;
var
hAccessToken: THandle;
ptgGroups: PTokenGroups;
dwInfoBufferSize: DWORD;
psidAdministrators: PSID;
g: Integer;
bSuccess: BOOL;
begin
Result := False;

bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, hAccessToken) ;
if not bSuccess then
begin
if GetLastError = ERROR_NO_TOKEN then
bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hAccessToken) ;
end;

if bSuccess then
begin
GetMem(ptgGroups, 1024) ;

bSuccess := GetTokenInformation(hAccessToken, TokenGroups, ptgGroups, 1024, dwInfoBufferSize) ;

CloseHandle(hAccessToken) ;

if bSuccess then
begin
AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdministrators) ;

for g := 0 to ptgGroups.GroupCount – 1 do
if EqualSid(psidAdministrators, ptgGroups.Groups[g].Sid) then
begin
Result := True;
Break;
end;

FreeSid(psidAdministrators) ;
end;

FreeMem(ptgGroups) ;
end;
end;

end.