【问题标题】:Allow Low-Privileged Users to Start Windows Services允许低权限用户启动 Windows 服务
【发布时间】:2011-03-10 10:42:23
【问题描述】:

我想部署一个 C++ 应用程序,该应用程序将在用户在其计算机上具有低权限的企业中运行,因此他们无法以管理员身份运行或执行需要管理员权限的任务。

我想要的服务可以作为本地服务运行,它是 Windows 中的低权限帐户,那么我怎样才能以编程方式让我在低权限用户的上下文中运行的应用程序启动一个 Windows 服务,该服务可以作为本地服务运行?

是否需要模拟,低权限用户是否能够临时模拟本地服务帐户来运行服务?

我听说即使特定服务可以作为本地服务运行,我仍然无法在没有管理员权限的情况下启动它,因为服务控制管理器 (SCM) 仍然需要管理员权限?

编辑:我应该注意该服务默认安装在Windows(智能卡服务)中,我只想启动它。

【问题讨论】:

  • 你不能这样做。标准用户无权启动和停止服务。
  • “标准用户无权启动和停止服务”是不是不清楚?如果您不相信我们,请说出来,但反复询问如何做是没有意义的。
  • 你为什么还要这个?大多数服务应该处于休眠状态:运行,即它们可以接受输入,但在没有输入的情况下不使用单个 CPU 周期。
  • 我不确定您要做什么,但您可以更改服务上的安全描述符 (SetServiceObjectSecurity)。不过,我不建议在不属于您自己的服务上执行此操作。

标签: c++ windows security windows-services


【解决方案1】:

这根本不可能;标准用户没有执行此操作的必要权限。默认情况下,只有 Administrators 和 Power Users 组的成员可以启动、停止和暂停服务。

这个问题最好由group policies 解决,而不是通过软件解决。在Server Fault 上询问。

【讨论】:

    【解决方案2】:

    由于您需要管理员权限才能安装此服务,因此您可以安装第二个自动启动服务,其唯一目的是接受来自您的应用程序的请求以启动/停止实际服务。

    【讨论】:

    • 那么正如大卫赫弗南所说,你不能。您将需要以足够高权限运行的东西来操作 SCM。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    相关资源
    最近更新 更多