winapi - 为什么 CreateProcessAsUser 需要 Vista/Windows 7 上的交互式窗口站?

标签 winapi windows-7 windows-vista process impersonation

我不得不深入研究这个问题,因为在 Windows 2003/XP 上运行良好的代码在 Windows 7 上运行不佳。使用 CreateProcessAsUser 启动的应用程序失败,错误代码为 0xc0000142。我的旧代码与 MSDN 提供的代码之间的区别,网址为 Starting an Interactive Client Process in C++是我没有给Window Station和桌面设置权限。我已经根据示例更新了我的代码,但我非常想了解较新的 Windows 中的哪些更改使得在交互式 Window Station 中运行进程成为一项要求?

最佳答案

至少部分要求源自在与服务不同的 session 中运行交互式进程的更改。这样做是为了让应用程序无法对特权服务进行“粉碎”式攻击。更多信息可用here .

关于winapi - 为什么 CreateProcessAsUser 需要 Vista/Windows 7 上的交互式窗口站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1556852/

相关文章:

windows-7 - 缺少 Microsoft 进度条控件

c# - 为什么 RequestAdditionalTime() 方法在 Vista/7 中重启时不起作用?

java - 如何让 Vista 的讲述人将我的 Swing 组件读回给我?

windows - 如何自定义 Windows Vista 和 7 的登录屏幕?

windows-7 - 如何找到我的机器上已安装的 cygwin 版本

c++ - ListView 列的宽度不受尊重

winapi - AdjustWindowRectEx() 和 GetWindowRect() 使用 WS_OVERLAPPED 给出错误的大小

delphi - 未登录时通过扬声器输出声音

c++ - QDateTime 到 FILETIME

c - dlclose()/FreeLibrary()失败后句柄的情况