我有一个使用ImpersonateLoggedOnUser
的Windows服务,以便使用当前用户权限删除系统权限并运行另一个应用程序。
如果对ImpersonateLoggedOnUser
的调用失败,则服务执行的应用程序必须具有设计权限,这是不好的。我通过检查返回值来修复此问题。
现在我尝试确定是否可以使该函数调用失败。
在没有修改应用程序且没有管理员权限的情况下,是否会发生这种情况? (当然没有修复)
如果是,怎么样?
HANDLE hToken;
OpenProcessToken( hProcess, MAXIMUM_ALLOWED, &hToken );
ImpersonateLoggedOnUser( hToken );
[...]
谢谢!
答案 0 :(得分:1)
如果您没有模仿权限或相关句柄无效,ImpersonateLoggedOnUser将失败。
我不确定API是否还有其他失败模式。