2016-01-25 13 views
4

У меня есть программа на C#, для которой требуется SeSystemEnvironmentPrivilege для доступа к UEFI NVRAM.Как получить системные привилегии

Я нашел очень длинный код, который использует Win32 API, чтобы получить привилегию, но есть ли версия .NET для его получения? В классе процессов или где-то еще?

+0

Я не знаю, будет ли он работать или нет, поэтому размещение в комментарий, но попробуйте использовать [PsExec] (https://technet.microsoft.com/en-us/sysinternals/psexec.aspx) с помощью переключателей '-s -i', которые будут запускать интерактивную программу как SYSTEM пользователь. 'PsExec.exe -s -i YourApp.exe' –

ответ

4

Если это действительно необходимо, вы можете использовать функцию AdjustTokenPrivileges. Что-то вроде этого:

[DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] 
    internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, 
    ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen); 

Вы можете получить более подробную информацию здесь: