概述
The Process
用 C++ 编译并运行的 exe/dll
设想
- 登录(win 7)到标准用户帐户(无管理员)
- 以管理员身份运行
The Process The Process使用ShellExecute打开一些应用程序(exe)
问题
应用在admin 用户范围内打开
期待
应用在标准用户范围内打开
解决方案
1. CreateProcessAsUser
使用CreateProcessAsUser(假设我设法hToken正确解决了问题)。
但是,我的呼叫失败,错误代码为1314 - ERROR_PRIVILEGE_NOT_HELD。回到文档告诉我:
如果此函数因 ERROR_PRIVILEGE_NOT_HELD (1314) 而失败,请改用 CreateProcessWithLogonW 函数
所以我深入研究并发现这个CreateProcessAsUser Error 1314不是很有帮助。
2. 模拟LoggedOnUser
使用ImpersonateLoggedOnUser生成相同的错误代码:1314 - ERROR_PRIVILEGE_NOT_HELD。
3. CreateProcessWithLogonW
CreateProcessWithLogonW需要lpPassword我自然没有
问题
管理员进程如何在登录用户中打开应用程序?