AdjustTokenPrivileges失败,错误1300 ERROR_NOT_ALL_ASSIGNED

时间:2012-11-20 11:41:51

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

我已经开发了SNMP扩展DLL来执行一些操作,如Shutdown,Restart等Remotely.It正常运行XP.Now我正在迁移DLL for Windows 7.我已阅读文档“session-0隔离的影响“来自MSDN并按照DLL迁移的说明进行操作。例如,我已按照链接How To ShutDown the System - msdn中的说明进行操作,并对其进行编码以进行关闭操作。但“AdjustTokenPrivileges”始终返回错误:1300并非所有引用的权限或组都分配给调用者。

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

1 个答案:

答案 0 :(得分:0)

是的,有一个:为调用者分配权限(在生效之前需要注销)。这需要计算机管理员或域/ AD执行操作。您也可以使用LsaAddAccountRights()LsaRemoveAccountRights()以编程方式执行此操作。

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

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