Exemple #1
0
        }//end of  public static GetLUIDFromPrivilageName(Win32API.Privilege privilege)

        /// <summary>
        /// Checks Whether The Proccess Has A Specified Privilege
        /// </summary>
        /// <param name="privilege">Required Privilege</param>
        /// <param name="processTokenHandle">Token Handle of Process</param>
        public static Boolean HasPrivilege(Win32API.Privilege privilege, IntPtr processTokenHandle)
        {
            //Get the nessesary LUID for the required privilage
            Win32API.LUID _PrivLUID = GetLUIDFromPrivilageName(privilege);

            //did we get something valid?
            if (_PrivLUID.HighPart == 0)
            {
                return(false);
            }

            //get a list of privs
            Win32API.LUID_AND_ATTRIBUTES[] _Privs = GetPrivileges(processTokenHandle);

            //cycle through each privilage and dump out to screen
            foreach (var luidAndAttributes in _Privs)
            {
                if (luidAndAttributes.Luid.Equals(_PrivLUID))
                {
                    return(true);
                }
            }//end of foreach

            return(false);
        }
Exemple #2
0
        }//end of public static String GetPrivilegeName(Win32API.LUID luid)

        /// <summary>
        /// Gets The System LUID Value for The Specified Privilege
        /// </summary>
        /// <param name="privilege">Specified Privilege</param>
        /// <returns>Associated LUID Value</returns>
        public static Win32API.LUID GetLUIDFromPrivilageName(Win32API.Privilege privilege)
        {
            Win32API.LUID _LUID = new Win32API.LUID();


            if (Win32API.LookupPrivilegeValue(String.Empty, privilege.ToString(), out _LUID) == false)
            {
                Console.WriteLine("## ERROR ## - Problem Resolving Privilage '{0}' To Its LUID!\nWin32 Error: '{1}'", privilege, Marshal.GetLastWin32Error());

                return(new Win32API.LUID());
            }

            return(_LUID);
        }//end of  public static GetLUIDFromPrivilageName(Win32API.Privilege privilege)