public static bool GetLuidInfo(SE_PRIVILEGE _requestedPrivilege, out SYSTEM_LUID _luid) { SYSTEM_LUID _luidInternal = new SYSTEM_LUID(); string _sePrivilege = SE_PRIVILEGE_STR(_requestedPrivilege); try { if (_sePrivilege.Length == 0) { throw new InvalidEnumArgumentException("SE_PRIVILEGE INVALID"); } if (_LookupPrivilegeValue(null, _sePrivilege, ref _luidInternal)) { _luid = _luidInternal; return(true); } else { var win32Exception = new Win32Exception(); var exceptionMessage = string.Format("GetLuidInfo failed. REQUESTED: {0}", _sePrivilege); throw new InvalidOperationException(exceptionMessage, win32Exception); } } catch (Exception e) { var exceptionMessage = string.Format("Internal Exception: ERROR REQUESTING: {0}", _sePrivilege); throw new InvalidOperationException(exceptionMessage, e); } }
public static string SE_PRIVILEGE_STR(SE_PRIVILEGE sPrivilege) { switch (sPrivilege) { case SE_PRIVILEGE.SE_CREATE_TOKEN_PRIVILEGE: return("SeCreateTokenPrivilege"); case SE_PRIVILEGE.SE_ASSIGN_PRIMARY_TOKEN_PRIVILEGE: return("SeAssignPrimaryTokenPrivilege"); case SE_PRIVILEGE.SE_LOCK_MEMORY_PRIVILEGE: return("SeLockMemoryPrivilege"); case SE_PRIVILEGE.SE_INCREASE_QUOTA_PRIVILEGE: return("SeIncreaseQuotaPrivilege"); case SE_PRIVILEGE.SE_UNSOLICITED_INPUT_PRIVILEGE: return("SeUnsolicitedInputPrivilege"); case SE_PRIVILEGE.SE_MACHINE_ACCOUNT_PRIVILEGE: return("SeMachineAccountPrivilege"); case SE_PRIVILEGE.SE_MACHINE_TCB_PRIVILEGE: return("SeMachineTcbPrivilege"); case SE_PRIVILEGE.SE_SECURITY_PRIVILEGE: return("SeSecurityPrivilege"); case SE_PRIVILEGE.SE_TAKE_OWNERSHIP_PRIVILEGE: return("SeTakeOwnershipPrivilege"); case SE_PRIVILEGE.SE_LOAD_DRIVER_PRIVILEGE: return("SeLoadDriverPrivilege"); case SE_PRIVILEGE.SE_SYSTEM_PROFILE_PRIVILEGE: return("SeSystemProfilePrivilege"); case SE_PRIVILEGE.SE_SYSTEM_TIME_PRIVILEGE: return("SeSystemTimePrivelege"); case SE_PRIVILEGE.SE_PROFILE_SINGLE_PROCESS_PRIVILEGE: return("SeProfileSingleProcessPrivilege"); case SE_PRIVILEGE.SE_INCREASE_BASE_PRIORITY_PRIVILEGE: return("SeIncreaseBasePriorityPrivilege"); case SE_PRIVILEGE.SE_CREATE_PAGEFILE_PRIVILEGE: return("SeCreatePagefilePrivilege"); case SE_PRIVILEGE.SE_CREATE_PERMANENT_PRIVILEGE: return("SeCreatePermanentPrivilege"); case SE_PRIVILEGE.SE_BACKUP_PRIVILEGE: return("SeBackupPrivilege"); case SE_PRIVILEGE.SE_RESTORE_PRIVILEGE: return("SeRestorePrivilege"); case SE_PRIVILEGE.SE_SHUTDOWN_PRIVILEGE: return("SeShutdownPrivilege"); case SE_PRIVILEGE.SE_DEBUG_PRIVILEGE: return("SeDebugPrivilege"); case SE_PRIVILEGE.SE_AUDIT_PRIVILEGE: return("SeAuditPrivilege"); case SE_PRIVILEGE.SE_SYSTEM_ENVIRONMENT_PRIVILEGE: return("SeSystemEnvironmentPrivilege"); case SE_PRIVILEGE.SE_CHANGE_NOTIFY_PRIVILEGE: return("SeChangeNotifyPrivilege"); case SE_PRIVILEGE.SE_REMOTE_SHUTDOWN_PRIVILEGE: return("SeRemoteShutdownPrivilege"); case SE_PRIVILEGE.SE_UNLOCK_PRIVILEGE: return("SeUnlockPrivilege"); case SE_PRIVILEGE.SE_SYNC_AGENT_PRIVILEGE: return("SeSyncAgentPrivilege"); case SE_PRIVILEGE.SE_ENABLE_DELEGATION_PRIVILEGE: return("SeEnableDelegationPrivilege"); case SE_PRIVILEGE.SE_MANAGE_VOLUME_PRIVILEGE: return("SeManageVolumePrivilege"); case SE_PRIVILEGE.SE_IMPERSONATE_PRIVILEGE: return("SeImpersonatePrivilege"); case SE_PRIVILEGE.SE_CREATE_GLOBAL_PRIVILEGE: return("SeCreateGlobalPrivilege"); case SE_PRIVILEGE.SE_TRUSTED_CRED_MAN_ACCESS_PRIVILEGE: return("SeTrustedCredManAccessPrivilege"); case SE_PRIVILEGE.SE_RELABEL_PRIVILEGE: return("SeRelabelPrivilege"); case SE_PRIVILEGE.SE_INCREASE_WORKING_SET_PRIVILEGE: return("SeIncreaseWorkingSetPrivilege"); case SE_PRIVILEGE.SE_TIME_ZONE_PRIVILEGE: return("SeTimeZonePrivilege"); case SE_PRIVILEGE.SE_CREATE_SYMBOLIC_LINK_PRIVILEGE: return("SeCreateSymbolicLinkPrivilege"); default: return(""); } }