2013-09-06 2 views
-1

Когда я запускаю свое приложение на Win7 (UAC включено) с привилегией пользователя. Он может успешно перезагрузить ОС, поэтому в этом случае не требуется привилегия администратора? Есть ли официальный документ, чтобы описать это? Любые комментарии приветствуются.Действительно ли нужна привилегия администратора для перезагрузки ОС

HANDLE hToken = NULL; 
    LUID luid; 
    BOOL bRet = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken); 
    bRet = LookupPrivilegeValue(L"", SE_SHUTDOWN_NAME, &luid); 
    TOKEN_PRIVILEGES tp; 
    tp.PrivilegeCount = 1; 
    tp.Privileges[0].Luid = luid; 
    tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
    bRet = AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, 0); 

    bRet = ExitWindowsEx(EWX_REBOOT|EWX_FORCE, 0); 
+1

В чем ваш вопрос? Работает ли ваш код? Если нет, что не работает? Вы получаете сообщение об ошибке? Если ваш код работает, вы спрашиваете нас: «Почему это работает, как я написал его для работы?»? Я понятия не имею, о чем вы нас здесь спрашиваете. –

+0

Я имею в виду, что это работает. Однако, как мне кажется, это действие должно требовать привилегий администратора, как и выше, с обычной привилегией пользователя, оно также может работать. Итак, UAC будет передан? –

+1

Не требуется привилегий администратора для перезагрузки или выключения компьютера. Если это произойдет, нормальный пользователь не сможет перезагрузиться или выключиться должным образом и сможет вырвать шнур питания. –

ответ

1

ли это действительно нужно администратора привилегию перезагрузки ОС?

Нет, это не так. У стандартного пользователя есть права перезагрузки.

 Смежные вопросы

  • Нет связанных вопросов^_^