我有一个使用 ImpersonateLoggedOnUser
的 Windows 服务为了放弃系统权限并使用当前用户权限运行另一个应用程序。
如果对 ImpersonateLoggedOnUser
的调用失败,则服务执行的应用程序将必须按设计具有系统权限,这并不好。我通过检查返回值解决了这个问题。
现在我尝试确定是否有可能使该函数调用失败。
在没有修改应用程序和没有管理员权限的情况下,是否有可能发生这种情况? (当然,没有修复)
如果是,怎么办?
HANDLE hToken;
OpenProcessToken( hProcess, MAXIMUM_ALLOWED, &hToken );
ImpersonateLoggedOnUser( hToken );
[...]
谢谢!
最佳答案
如果您没有模拟权限或相关句柄无效,ImpersonateLoggedOnUser 将失败。
我不确定 API 是否还有其他故障模式。
关于c++ - ImpersonateLoggedOnUser 失败的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4982237/