【问题标题】:AdjustTokenPrivileges Failed with Error 1300 ERROR_NOT_ALL_ASSIGNEDAdjustTokenPrivileges 失败并出现错误 1300 ERROR_NOT_ALL_ASSIGNED
【发布时间】:2012-11-08 11:24:07
【问题描述】:

我开发了 SNMP 扩展 DLL 来远程执行一些操作,如关机、重启等。它在 XP 上运行良好。现在我正在为 Windows 7 迁移 DLL。我已阅读文档“session-0 隔离的影响” " 来自 MSDN 并按照 DLL 迁移的说明进行操作。例如,我按照链接 How To ShutDown the System - msdn 中的说明进行了关机操作的编码。但是“AdjustTokenPrivileges”总是返回 Error:1300 并非所有引用的权限或组都分配给调用者。

有没有办法解决这个错误?如何使用 VC++ 启用 Windows 7 的关机权限?

【问题讨论】:

    标签: visual-c++ windows-7 mfc snmp


    【解决方案1】:

    是的,有一个:将权限分配给调用者(需要注销才能生效)。这需要计算机或域/AD 的管理员来执行。您也可以使用LsaAddAccountRights()LsaRemoveAccountRights() 以编程方式进行。

    考虑一下:每个用户都有一组分配的权限。可以为代表此用户的令牌启用或禁用任何分配的令牌。您要做的是启用从未分配给用户的特权。因此它不能被启用/激活。

    但是,我建议您发布您的代码,因为本地用户无法关闭系统是非常不寻常的。默认情况下,此权限通常授予本地登录的每个人。

    【讨论】:

    • 是否可以使用组策略手动为用户添加关机权限??????
    • @Eshwar:当然。运行 secpol.msc 然后转到 Local Policies -> User Rights Assignment 然后“关闭系统” ...
    • 我已将“所有人”和我当前的用户添加到“关闭系统”中。但同样的错误发生了。
    • 作为哪个用户运行(服务)?在正常情况下,您必须考虑运行服务的用户和组。但这可以配置,所以没有更多信息就没有一般答案。
    • @Eshwar:这个帐户肯定有分配的权限。它是代表机器本身的帐户。要么你没有说一些重要的事情(比如你试图关闭一个remote机器),要么你的开发系统上的某些事情被严重搞砸了。鉴于我在这方面花了很多时间,而您甚至没有按照我的要求提供代码 sn-p,因此很难判断是否对自己的解决方案感兴趣。
    猜你喜欢
    • 2013-08-04
    • 1970-01-01
    • 2018-02-24
    • 2012-09-24
    • 2013-07-18
    • 2021-10-12
    • 2020-10-23
    • 2020-07-20
    • 2011-05-25
    相关资源
    最近更新 更多