1

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

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

4

1 回答 1

0

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

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

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

于 2012-11-20T12:48:36.703 回答