Как дать пользователям windows права на запуск сервиса
Универсальный способ из консоли без установки дополнительных приложений:
Смотрим текущие права на сервис командой sc sdshow <Имя сервиса>
:
C:\Temp>sc sdshow Tomcat5 D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
В эту конструкцию в раздел D: нужно добавить SID пользователя и права. Права задаются следующими операторами: RP (to start the service), WP (to stop the service), DT (to pause/continue the service), LO (to query te service's current status).
Таким образом нам нужно добавить следующую последовательность:
(A;;RPWPDTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)
SID пользователя узнаем запустив whoami /all
от его имени
runas /user=<имя пользователя> cmd whoami /all exit
Узнав SID устанавливаем права командой sc sdset <Имя сервиса> <права>:
sc sdset Tomcat5 D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPDTLO;;;S-1-5-21-1822724235-2747126590-884255779-1000)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)