示例#1
0
 public static bool DisablePrivilege(string privilege)
 {
     try
     {
         int             token  = 0;
         int             retVal = 0;
         TOKEN_PRIVILEGE TP     = new TOKEN_PRIVILEGE();
         LUID            LD     = new LUID();
         retVal            = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref token);
         retVal            = LookupPrivilegeValue(null, privilege, ref LD);
         TP.PrivilegeCount = 1;
         // TP.Attributes should be none (not set) to disable privilege
         var luidAndAtt = new LUID_AND_ATTRIBUTES();
         luidAndAtt.Luid = LD;
         TP.Privilege    = luidAndAtt;
         retVal          = AdjustTokenPrivileges(token, 0, ref TP, 1024, 0, 0);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
示例#2
0
 public static bool DisablePrivilege(string privilege)
 {
     try
     {
         int token = 0;
         int retVal = 0;
         TOKEN_PRIVILEGE TP = new TOKEN_PRIVILEGE();
         LUID LD = new LUID();
         retVal = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref token);
         retVal = LookupPrivilegeValue(null, privilege, ref LD);
         TP.PrivilegeCount = 1;
         // TP.Attributes should be none (not set) to disable privilege
         var luidAndAtt = new LUID_AND_ATTRIBUTES();
         luidAndAtt.Luid = LD;
         TP.Privilege = luidAndAtt;
         retVal = AdjustTokenPrivileges(token, 0, ref TP, 1024, 0, 0);
         return true;
     }
     catch
     {
         return false;
     }
 }