【问题标题】:Attempt to configure failure actions of a Windows service fails with access denied error尝试配置 Windows 服务的失败操作失败并出现拒绝访问错误
【发布时间】:2021-02-02 13:14:38
【问题描述】:

我想为我用 Go 编写的服务配置失败操作。 我正在关注以下页面上发布的答案: How do I configure failure actions of a Windows service written in Go?

函数调用 ChangeServiceConfig2 返回“访问被拒绝”。在我的情况下出现错误(当第二个参数是 SERVICE_CONFIG_FAILURE_ACTIONS 时)。

我以管理员身份运行,所以我不明白为什么此功能会出现“拒绝访问”错误。

我可以使用函数 ChangeServiceConfig2 来执行其他操作(例如,将我的服务的启动类型设置为自动延迟,使用第二个参数作为 SERVICE_CONFIG_DELAYED_AUTO_START_INFO)。

在使用 ChangeServiceConfig2 为 Windows 服务设置故障操作时,是否有人遇到过类似问题?这种情况下的解决方案是什么?

【问题讨论】:

  • this? (一般是this)。
  • 我已经查看了您提供的链接,但无法解决问题。我正在使用具有 SERVICE_ALL_ACCESS 访问权限的 CreateService 和 OpenProcess,它们没有给出任何错误。当我稍后将 ChangeServiceConfig2 用于同一服务时,我得到“拒绝访问”。

标签: winapi go service


【解决方案1】:

这里提到: https://groups.google.com/forum/#!topic/microsoft.public.win32.programmer.kernel/_McV5qokCR8

...您需要启用 SE_SHUTDOWN_NAME 权限。

感谢亚历克斯·费多托夫

【讨论】:

    【解决方案2】:

    最近也遇到了这个问题。我使用 SC_ACTION_RESTART 作为一种操作,而 SERVICE_CHANGE_CONFIG 还不够(ERROR_ACCESS_DENIED)。原来你需要用SERVICE_START访问权限打开服务句柄。

    【讨论】:

      猜你喜欢
      • 2015-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-02
      • 2017-01-10
      • 2010-09-10
      • 2010-10-22
      相关资源
      最近更新 更多