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

Постоянный способ разрешить пользователю перезапускать службу

Существует служба Windows, которую иногда переустанавливают.

Мне нужен пользователь, чтобы иметь возможность запускать / останавливать / перезапускать эту службу. Этот пользователь не является администратором и не должен им быть.

Если я использую setacl.exe чем это работает, или даже я могу использовать sc sdset, но после переустановки службы необходимо снова вызвать setacl, но процесс, переустанавливающий службу, не имеет прав на запуск setacl.

Есть ли способ предоставить конкретному пользователю право перезапустить службу с определенным именем или даже все службы, которые сохраняются после переустановки службы?

Если я могу дать пользователю некоторые общие разрешения для «управления службами», это тоже будет хорошо, но я не могу точно определить права, необходимые для этого (если я добавлю пользователя в группу администраторов, он сможет запустить / остановить службы, но, очевидно, может сделать гораздо больше).

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

Настройте задачу на повторение с интервалом, равным максимально допустимому времени, в течение которого пользователь не может управлять службой после переустановки.

редактировать

Как вы говорите, это вроде хакерство;).

Другой вариант, как упоминает Адам, - использовать GPO для обеспечения соблюдения вашего ACL.

Для нестандартных служб Windows необходимо установить и запустить Консоль управления группой, на компьютере, где установлена ​​служба. Затем сделайте следующее:

  1. Запуск GPMC.msc на компьютере
  2. Отредактируйте существующий объект групповой политики или создайте новый, применимый к рассматриваемому компьютеру.
  3. Развернуть Политики, Настройки Windows, Настройки безопасности, Системные услуги
  4. Откройте свойства рассматриваемого сервиса
  5. Определите режим запуска и разрешение на редактирование по желанию

Разрешения на перезапуск службы довольно просты, и вы можете использовать Subinacl.exe / служба для назначения разрешений, например:

subinacl /service MyServiceName /GRANT=NTDOMAIN\BOB=STOPI
  • STOPI = запрос sтатус
  • SТOPI = sтискусство
  • STОPI = stоп
  • СТОпЯ = писпользовать / продолжить
  • СТОПя знак равно янтеррогат.

Полный список на support.microsoft.com.

Я думаю, что проблема в том, что когда MyServiceName удаляется, ACL удаляются вместе с ним. Вы можете обойти это, используя групповую политику или шаблоны безопасности, чтобы назначать разрешения для служб, которые могут существовать или не существовать.