我不得不深入研究这个问题,因为在 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/