Windows服务如何得到它的处理?

时间:2017-05-20 00:12:17

标签: windows service

我正在开发的服务需要调用ChangeServiceConfig2来更改其配置参数。该功能需要服务句柄。因此,为了获得它的处理,该服务调用OpenSCManager,后者成功,后来调用OpenService。在OpenService函数的参数lpServiceName中,我指定了服务的名称但是我得到了#34;访问被拒绝"。我将清单文件中的访问权限更改为" requireAdministrator"但仍然有错误。 一般来说,Windows服务如何得到它的处理?

1 个答案:

答案 0 :(得分:0)

创建服务时,lpServiceStartName参数确定服务将在其中运行的安全上下文。

来自documentation for CreateService

  

如果此参数为NULL,则CreateService使用LocalSystem帐户。

因此,为了使您的服务以管理员权限运行,您需要指定NULL而不是帐户名称。根据评论,您目前作为本地服务运行;这不授予管理员权限。