2013-02-26 542 views
3

我想为我的进程标记添加一个特权(我的进程正在使用管理员权限运行)。 我无法使用AdjustTokenPrivileges,因为流程标记不包含我缺少的权限。所以,我试图通过SetTokenInformation将权限添加到令牌中。我很确定我以正确的方式构建了TOKEN_PRIVILEGES结构,并在调用SetTokenInformation时收到INVALID_PARAMETER_ERROR。所以,我认为在现有令牌上使用此功能存在问题。另外,我在MSDN页面中找到了这个注释:“只有在创建访问令牌时才能设置令牌类型信息。”SetTokenInformation和权限

那么,我还能做什么?

注:我这样做是因为我的CreateProcessAsUser调用失败,因为我没有SE_ASSIGNPRIMARYTOKEN_NAME privilage。

谢谢你的帮手!

+0

[Here](http://forum.sysinternals.com/tip-run-process-in-system-account-scexe_topic16714_page4.html)是获得'SE_ASSIGNPRIMARYTOKEN_NAME'的有趣页面。 – 2013-02-26 12:34:08

+1

发布您的代码。 – 2013-02-26 15:13:11

+0

哪个Windows版本(UAC参与?确定您拥有管理员令牌?)?你有没有试用https://support.microsoft.com/en-us/kb/315276? – 2015-11-20 12:34:37

回答

1

can change a privilege在令牌中但您不能添加一个。基思布朗在他的outstanding book关于windows安全性的主题有一个很好的部分。其中他说,一旦LSA完成构建令牌“你不能注入额外的特权......”。我希望我能找到一本像他那样涵盖当前Windows安全性的书。叹。