Windows CreateProcess作为本地系统

时间:2018-05-10 19:44:57

标签: winapi windows-services local-system-account

我有一个以本地系统运行的服务。我正在使用CreateProcess函数来调用外部.exe。调用CreateProcess函数时使用的默认帐户是什么?我在MSDN文档中的默认帐户上找不到任何内容。此外,我希望此过程持久,直到服务时间运行。我应该使用CreateService吗?

1 个答案:

答案 0 :(得分:0)

CreateProcess创建一个与父应用程序作为同一用户运行的进程,它在同一会话中运行。您必须使用CreateProcessAsUser / CreateProcessWithLogonW / CreateProcessWithTokenW以另一个用户身份创建流程。唯一的例外是ShellExecute,如果使用UAC提升且用户不是管理员,则可以将进程创建为其他用户。

如果您需要与其他服务进行互动,可以使用ChangeServiceConfig让自己依赖其他服务。服务控制管理员将在开始服务之前首先启动其他服务。