ImpersonateLoggedOnUser

ImpersonateLoggedOnUser

我有一个Windows服务,该服务使用ImpersonateLoggedOnUser来删除系统权限并使用当前用户权限运行另一个应用程序。

如果对ImpersonateLoggedOnUser的调用失败,则该服务执行的应用程序必须具有设计上的系统权限,这是不好的。我通过检查返回值来解决此问题。

现在,我尝试确定是否有可能使该函数调用失败。

在没有修改应用程序且没有管理员权限的情况下,是否会发生这种情况? (当然,没有修复方法)

如果是,怎么办?

HANDLE hToken;
OpenProcessToken( hProcess, MAXIMUM_ALLOWED, &hToken );
ImpersonateLoggedOnUser( hToken );
[...]


谢谢!

最佳答案

如果您没有模拟特权或相关句柄无效,则ImpersonateLoggedOnUser将失败。

我不确定该API是否还有其他故障模式。

10-08 15:48