组策略定义新服务并将其安装在主服务器中

组策略定义新服务并将其安装在主服务器中

我在 Windows Server 2003 64 位系统中安装了 Active Directory。我的一个用户问我,他是否可以通过开始 --> 控制面板 --> 服务来启动和停止 Oracle 和 MYSQL 服务。从那里他可以控制它们手动或自动启动,但现在由于用户权限问题他无法做到这一点。

是否可以在不安装 Windows Server 2003 上的 Oracle 和 MySQL 的情况下在组策略中添加新服务?

答案1

因此,为了确保我理解正确:

  • 用户有一台 Windows 机器,上面安装了 Oracle 和 MySQL。
  • 该用户不是本地机器管理员。
  • 您希望该用户能够停止和启动 Oracle 和 MySQL 服务。

听起来您试图更改组策略中的服务权限,但却从未安装 Oracle 或 MySQL 的计算机上进行更改,这意味着这些服务不会出现在可用服务列表中。

我能想到三种选择:

  1. gpmc.msc在具有 Oracle 和 MySQL 的计算机上安装组策略管理控制台 ( )。

    安装完成后gpmc,您可以在装有 Oracle 和 MySQL 的计算机上编辑 GPO,您将看到列出的服务。

  2. 在用于编辑 GPO 的计算机上创建一个虚拟服务。

    1. 找到ServiceKeyName您要更改的服务。(这是服务的“短名称”)。如果您只知道DisplayName(“长名称”)而不知道ServiceKeyName(“短名称”),您可以在安装该服务的计算机上找到它,例如:

      sc GetKeyName "MySQL Service"

    2. 在用于编辑 GPO 的计算机上创建一个虚假服务:

      sc createServiceKeyNamebinPath= C:\Windows\system32\notepad.exe

    3. 编辑 GPO。

    4. 完成后,你可以使用以下命令删除虚假服务:

      sc deleteServiceKeyName

  3. 完全忘记 GPO 并直接在服务上设置权限。

    首先,看看现有的权限是什么:

    C:\Windows\system32>sc sdshow ServiceKeyName

    D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SO)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

    哎呀!SDDL 不是很可怕吗?无论如何,这里的想法是将我们需要的权限位添加到这个混乱中。例如,您可以通过添加以下内容允许所有域用户启动、停止、暂停和读取权限:

    (A;;RPWPDTRC;;;DU)

    或者对于本地用户(“内置用户”):

    (A;;RPWPDTRC;;;BU)

    因此最终的命令看起来将是这样的:

    sc sdset ServiceKeyName D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SO)(A;;RPWPDTRC;;;BU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

  4. 好吧,我撒谎了,我在写这篇文章时想到了另一种方法。;-) 您可以使用subinacl.exe更简单的方法执行选项 3。但我不知道它是否与 Windows XP/2003 以外的任何更新版本兼容。

    1. 下载并安装子ACL
    2. 使用如下命令:

      subinacl /serviceServiceKeyName/grant=Users=TOP

      TOPsubinaclsTart/stOp/Pause/continue 的语法)

如果我误解了您的问题,请告诉我。

相关内容