Как назначить разрешения для управления службой Windows, когда включен контроль учетных записей?

У меня есть следующий сценарий:

  • Я локальный администратор на моем компьютере с Windows 7 Enterprise и включенным UAC
  • Компьютер не находится в домене и не находится под групповой политикой
  • Я запускаю какую-то программу без прав администратора
  • Эта программа иногда должна контролировать локально установленную службу Windows (с опциями ручного запуска)
  • Без запуска исходной программы от имени администратора или без отключения контроля учетных записей Windows служба перестает работать.

Как я могу предоставить разрешения моей учетной записи для управления этой конкретной службой без запуска с повышенными привилегиями или отключения UAC?

1 ответ

Решение

С сервисами, как и со всеми объектами Windows, связан ACL, который может быть изменен для предоставления вам доступа.

Насколько я знаю, не существует официального пользовательского интерфейса для управления ACL-списками служб, поэтому у вас есть два варианта:

  1. Загрузите Process Explorer. Запустите свой сервис (ProcExp показывает только запущенные сервисы). В ProcExp дважды щелкните процесс службы (или щелкните правой кнопкой мыши и выберите "Свойства"). Нажмите на вкладку "Услуги". Обычно ваша программа запускается конкретным пользователем - добавьте этого пользователя. Хит Продвинутый. Разрешения, которыми вы можете управлять, включают остановку / запуск этой службы и отправку ей определенных команд.

    Process Hacker похож, но может управлять и остановленными сервисами.

  2. sc showsdизучите синтаксис ACE и права доступа, отредактируйте дескриптор безопасности, верните его sc setsd,

Другие вопросы по тегам