Назад | Перейти на главную страницу

Групповая политика определяет новые службы с установкой их на основном сервере

У меня Active Directory с 64-разрядной версией Windows Server 2003. Один из моих пользователей спросил меня, возможно ли ему запускать и останавливать службы Oracle и MYSQL с начала -> панель управления -> службы. Оттуда он может управлять их запуском вручную или автоматически, но сейчас он не может из-за прав пользователя.

Можно ли добавлять новые службы в групповую политику без установки Oracle и MySQL на Windows Server 2003?

Просто чтобы убедиться, что я правильно вас понял:

  • У пользователя есть машина Windows, на которой установлены Oracle и MySQL.
  • Этот пользователь не является администратором локальной машины.
  • Вы хотите, чтобы этот пользователь мог останавливать и запускать службы Oracle и MySQL.

Похоже, вы пытались изменить разрешения службы в групповой политике, но сделали это с компьютера, на котором не установлен Oracle или MySQL, что означает, что эти службы не отображаются в списке доступных служб.

Я могу придумать три варианта:

  1. Установите консоль управления групповой политикой (gpmc.msc) на компьютере с Oracle и MySQL.

    однажды gpmc установлен, вы можете редактировать GPO на компьютере с Oracle и MySQL, и вы увидите их сервисы в списке.

  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. Загрузить и установить SubInACL.
    2. Используйте такую ​​команду:

      subinacl /serviceServiceKeyName/grant=Users=TOP

      (TOP это subinacl синтаксис для sTart / stOp / Pause / continue)

Если я неправильно понял ваш вопрос, дайте мне знать.