如何从Windows服务启动系统帐户下的单独进程

how to start separate process under system account from a windows service?

本文关键字:单独 进程 系统 Windows 服务 启动      更新时间:2023-10-16

我在SO上读过很多类似的问题,但没有找到答案

我需要在登录用户的会话中从windows服务运行一个单独的进程,但在系统帐户下,因此用户不能终止进程

我需要这个进程与桌面交互以进行监督。

主要目的是防止用户终止进程

如果您运行交互式应用程序(具有GUI或不具有GUI),从当前登录的用户帐户-最终用户(具有Admin权限)可能会终止该进程。您要么需要将其保留为SYSTEM服务,要么使用SetKernelObjectSecurity从进程中删除所有DACL/ACL信息。

实际上有一种更简单的方法来实现相同的目的:防止没有特殊权限(如管理员权限)的用户终止进程

经过长时间的挖掘,我在这里找到了可以接受的答案:防止用户进程被"结束进程"从进程资源管理器

如果您以普通用户身份登录,

可以正常工作,您不能从进程资源管理器中杀死该进程。管理员仍然可以杀死它,因为有足够的权限。这正是我所需要的