Какие привилегии / настройки ответственны, чтобы обычный пользователь мог запустить сервис?

325
zar

Мой код работает нормально на одном компьютере, но тот же код генерирует код ошибки 5 (доступ запрещен) на другом компьютере. По сути, ::OpenService()вызов не выполняется из-за флага, SERVICE_STARTпотому что у пользователя нет прав на запуск службы. Я знаю, потому что он запускает службу, если я запускаю приложение от имени администратора.

Мне нужны те же привилегии на втором компьютере, чтобы любой пользователь мог запустить службу, но не мог понять, какие настройки за это ответственны. Я заглянул в group policy>> Computer Configuration>> Windows Settings>> Security Settings >> Local Policies>> >>User Rights Assingment.

Я не знаю, смотрю ли я даже на правильное место. Кто-нибудь знает?

0

1 ответ на вопрос

0
grawity

Для этого нет глобальной привилегии. Вместо этого все сервисы имеют свои собственные отдельные ACL - хотя вы не можете видеть их через services.msc, только через sc sdshow/ sc sdsetили стороннее программное обеспечение. (Process Hacker - одна из таких программ; она включает графический редактор ACL на вкладке «Службы».)

Я посылаю вывод `sc showd` в текстовый файл и сравниваю для обоих компьютеров, и они идентичны. ПК, на котором он работает, - это Windows 7, тот, на котором требуются права администратора, - это Windows 10. Может ли это иметь какое-то значение? zar 5 лет назад 0

Похожие вопросы