c++ - 从在 "user"帐户下运行的服务调用 OpenWindowStation

标签 c++ windows service impersonation privileges

我的服务使用与此非常相似的东西启动交互式客户端进程:https://msdn.microsoft.com/en-us/library/windows/desktop/aa379608(v=vs.85).aspx

它在服务以本地系统登录时有效,并且在管理员帐户下运行时有效,具有 SE_ASSIGNPRIMARYTOKEN_NAMESE_INCREASE_QUOTA_NAME 权限。

我的问题是在使用标准用户 帐户或本地服务 时,它在OpenWindowStation 失败,错误代码为 5(拒绝访问)。

// Get a handle to the interactive window station.
hwinsta = OpenWindowStation(_T("winsta0"),               // the interactive window station 
                            FALSE,                       // handle is not inheritable
                            READ_CONTROL | WRITE_DAC);   // rights to read/write the DACL

是否可以从标准用户帐户调用 OpenWindowStation,或者我的服务必须在管理员帐户下运行?我尝试了几乎所有的 Local Policy 都没有成功

谢谢!

最佳答案

可惜打不开,好像只有Administrator才能打开互动站。

关于c++ - 从在 "user"帐户下运行的服务调用 OpenWindowStation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31457268/

相关文章:

c++ - 静态库是否避免了名称重整问题?

c++ - STL 列表 - 如何通过其对象字段查找列表元素

windows - 查找在特定时间段内更改的文件

windows - 如何在windows服务器上自动启动tomcat服务?

android - 辅助功能服务未在服务中列出?

c++ - Protocol Buffer cpp 嵌入消息

c# - COM接口(interface)修改突然开始导致异常

c++ - 如何检查C中是否存在文件:\drive using VC++?

Windows上的java println输出编码

java - Web 服务和 Log4J 输出到文件