判断当前用户是否具有管理员权限

时间:2021-02-28 14:46:53

 

 1 判断当前用户是否具有管理员权限const
 2 判断当前用户是否具有管理员权限  SECURITY_NT_AUTHORITY: SID_IDENTIFIER_AUTHORITY  =  (Value: ( 0 0 0 0 0 5 ));
 3 判断当前用户是否具有管理员权限  SECURITY_BUILTIN_DOMAIN_RID  =  $ 00000020 ;
 4 判断当前用户是否具有管理员权限  DOMAIN_ALIAS_RID_ADMINS  =  $ 00000220 ;
 5 判断当前用户是否具有管理员权限
 6 判断当前用户是否具有管理员权限 function  IsAdmin: Boolean;
 7 判断当前用户是否具有管理员权限 var
 8 判断当前用户是否具有管理员权限  hAccessToken: THandle;
 9 判断当前用户是否具有管理员权限  ptgGroups: PTokenGroups;
10 判断当前用户是否具有管理员权限  dwInfoBufferSize: DWORD;
11 判断当前用户是否具有管理员权限  psidAdministrators: PSID;
12 判断当前用户是否具有管理员权限  x: Integer;
13 判断当前用户是否具有管理员权限  bSuccess: BOOL;
14 判断当前用户是否具有管理员权限 begin
15 判断当前用户是否具有管理员权限  Result   : =  False;
16 判断当前用户是否具有管理员权限  bSuccess : =  OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True,
17 判断当前用户是否具有管理员权限    hAccessToken);
18 判断当前用户是否具有管理员权限   if   not  bSuccess  then
19 判断当前用户是否具有管理员权限   begin
20 判断当前用户是否具有管理员权限     if  GetLastError  =  ERROR_NO_TOKEN  then
21 判断当前用户是否具有管理员权限      bSuccess : =  OpenProcessToken(GetCurrentProcess, TOKEN_QUERY,
22 判断当前用户是否具有管理员权限        hAccessToken);
23 判断当前用户是否具有管理员权限   end ;
24 判断当前用户是否具有管理员权限   if  bSuccess  then
25 判断当前用户是否具有管理员权限   begin
26 判断当前用户是否具有管理员权限    GetMem(ptgGroups,  1024 );
27 判断当前用户是否具有管理员权限    bSuccess : =  GetTokenInformation(hAccessToken, TokenGroups,
28 判断当前用户是否具有管理员权限      ptgGroups,  1024 , dwInfoBufferSize);
29 判断当前用户是否具有管理员权限    CloseHandle(hAccessToken);
30 判断当前用户是否具有管理员权限     if  bSuccess  then
31 判断当前用户是否具有管理员权限     begin
32 判断当前用户是否具有管理员权限      AllocateAndInitializeSid(SECURITY_NT_AUTHORITY,  2 ,
33 判断当前用户是否具有管理员权限        SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,
34 判断当前用户是否具有管理员权限         0 0 0 0 0 0 , psidAdministrators);
35 判断当前用户是否具有管理员权限       { $R- }
36 判断当前用户是否具有管理员权限       for  x : =   0   to  ptgGroups.GroupCount  -   1   do
37 判断当前用户是否具有管理员权限         if  EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid)  then
38 判断当前用户是否具有管理员权限         begin
39 判断当前用户是否具有管理员权限          Result : =  True;
40 判断当前用户是否具有管理员权限          Break;
41 判断当前用户是否具有管理员权限         end ;
42 判断当前用户是否具有管理员权限       { $R+ }
43 判断当前用户是否具有管理员权限      FreeSid(psidAdministrators);
44 判断当前用户是否具有管理员权限     end ;
45 判断当前用户是否具有管理员权限    FreeMem(ptgGroups);
46 判断当前用户是否具有管理员权限   end ;
47 判断当前用户是否具有管理员权限 end ;