Visual c++ AdjustTokenPrivileges失败,错误为1300错误\u未\u分配所有\u

Visual c++ AdjustTokenPrivileges失败,错误为1300错误\u未\u分配所有\u,visual-c++,windows-7,mfc,snmp,Visual C++,Windows 7,Mfc,Snmp,我开发了SNMP扩展DLL以远程执行一些操作,如关机、重新启动等。它在XP中运行良好。现在我正在迁移Windows 7的DLL。我已经阅读了MSDN中的文档“会话-0隔离的影响”,并按照DLL迁移说明进行了操作。例如,我已经按照链接中的说明进行了操作,并对关机操作进行了编码。但是“AdjustTokenPrivileges”总是返回错误:并不是所有引用的特权或组都分配给调用者 有没有办法解决这个错误?如何使用VC++为Windows 7启用关机权限?是的,有一个:将权限分配给调用方(需要注销才能

我开发了SNMP扩展DLL以远程执行一些操作,如关机、重新启动等。它在XP中运行良好。现在我正在迁移Windows 7的DLL。我已经阅读了MSDN中的文档“会话-0隔离的影响”,并按照DLL迁移说明进行了操作。例如,我已经按照链接中的说明进行了操作,并对关机操作进行了编码。但是“AdjustTokenPrivileges”总是返回错误:并不是所有引用的特权或组都分配给调用者


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

是的,有一个:将权限分配给调用方(需要注销才能生效)。这需要计算机管理员或域/AD采取行动。您还可以使用
lsaaddaccountrys()
LsaRemoveAccountRights()
以编程方式执行此操作

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


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

是否可以使用组策略为用户手动添加关机权限????@Eshwar:当然可以。运行
secpol.msc
然后转到
本地策略
->
用户权限分配
,然后“关闭系统”…我已将“所有人”和我的当前用户添加到“关闭系统”中。。但同样的错误也会发生。它运行的是哪个用户(服务)?在正常情况下,您必须考虑服务正在运行的用户和组。但是这是可以配置的,因此如果没有更多信息,就没有一般性的答案。@Eshwar:这个帐户肯定拥有分配的权限。这是代表机器本身的帐户。要么你没有说一些重要的事情(比如你试图关闭一台远程机器),要么你的开发系统中的一些事情严重混乱。考虑到我在这方面花了这么多时间,而您甚至没有按照我的要求提供代码片段,很难说您自己是否对解决方案感兴趣。