CreateProcessWithToken 1058 error
进程创建的方式大致有:CreateProcess CreateProcessAsUser/CreateProcessWithLogon CreateProcessWithToken(当然还有shellexecute)
CreateProcess以当前进程账户/权限,创建进程
CreateProcessAsUser可以被system账户或者用户账户的普通权限调用,创建具有用户帐户普通权限的进程(注意用户账户的管理员权限会创建进程失败)
CreateProcessWithLogon弥补了CreateProcessAsUser不能以用户账户管理员权限创建进程,但是需要账号和密码
CreateProcessWithToken可以由用户账户管理员权限,同样弥补了CreateProcessAsUser的缺陷。
CreateProcessWithToken报错1058
The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.
显然是和服务扯上了关系,所以我们应该去定位服务,可是如果我新创建的进程在启动过程中不涉及什么服务该如何呢?
可以去services.msc中查看Secondary Logon服务的属性是否为禁用(disabled),以下是这个服务的官方介绍。