C++ Windows 服务锁屏

问题描述 投票:0回答:1

对我的英语起步表示抱歉。我有阅读障碍,因此有一些拼写和语法问题。

所以,我正在开展一个业余爱好项目,其中我有一个 Windows 服务来查找触发情况。如果找到,它将锁定屏幕/注销当前活动的用户。这通常是不可能的,因为服务无法正确运行需要交互式环境的功能。

为了解决这个问题,我制作了帮助程序,然后使用 CreateProcessAsUser 调用它们。这对我来说效果很好,到目前为止还没有出现任何问题。 在另一台计算机上尝试此操作时,我遇到了组策略问题。这一切都有效,直到调用 CreateProcessAsUser 并返回错误为止。错误是“组策略禁止执行”。管理员可以启动 .exe 文件,但普通用户不能。因此,当普通用户启动帮助程序时,它就会中断,因为它无权这样做。

与一些朋友交谈,大多数人说用会话 0 权限启动它应该是可行的,并完全跳过这个问题。但据我所知,这在设计上是不可能的。因为如果安全性较低的用户可以在服务的帮助下以较高的安全模式运行进程,则可能会造成粉碎攻击和其他问题。

也就是说,我想发挥 Stackoverflow 的力量!我可以做些什么来解决这个问题吗?

c++ winapi service windows-services group-policy
1个回答
0
投票

当您提到使用服务在更高安全模式下运行进程可能会导致安全问题(例如粉碎攻击)时,您是正确的。这就是 Windows 限制此类操作的原因。

当您遇到“组策略禁止执行”错误时,您遇到了组策略设置,如果您想解决此问题,可以修改组策略。

如果您拥有计算机的管理权限,您只需运行

gpedit.msc
,转到
User Configuration
->
Administrative Templates
->
System
。找到设置
Don't run specified Windows applications
并修改该设置以不包含您的 .exe 文件。如果它不包含您的 .exe 文件,那么您可以查看是否启用了
Run only specified Windows applications
策略。

© www.soinside.com 2019 - 2024. All rights reserved.