【问题标题】:Does it really need Admin privilege to reboot OS是否真的需要管理员权限才能重新启动操作系统
【发布时间】:2013-09-06 03:13:11
【问题描述】:

当我以用户权限在 Win7(UAC 开启)上运行我的应用程序时。它可以成功重启操作系统,那么在这种情况下,不需要管理员权限吗?有没有官方文件来描述这个?感谢任何 cmets。

    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 是通过了吗?
  • 重启或关闭机器不需要管理员权限 - 如果这样做,普通用户将无法正常重启或关闭,只能拔掉电源线。跨度>

标签: winapi uac


【解决方案1】:

重启操作系统真的需要管理员权限吗?

不,它没有。标准用户具有重启权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-18
    • 2012-05-29
    • 2016-02-24
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多