-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);
В чем ваш вопрос? Работает ли ваш код? Если нет, что не работает? Вы получаете сообщение об ошибке? Если ваш код работает, вы спрашиваете нас: «Почему это работает, как я написал его для работы?»? Я понятия не имею, о чем вы нас здесь спрашиваете. –
Я имею в виду, что это работает. Однако, как мне кажется, это действие должно требовать привилегий администратора, как и выше, с обычной привилегией пользователя, оно также может работать. Итак, UAC будет передан? –
Не требуется привилегий администратора для перезагрузки или выключения компьютера. Если это произойдет, нормальный пользователь не сможет перезагрузиться или выключиться должным образом и сможет вырвать шнур питания. –