How to assign permissions to manage windows service when UAC is enabled?

Services, just like about every Windows object, have an ACL associated with it, which can be modified to give you access.

As far as I know, there is no official UI for managing service ACLs, so you're left with two options:

  1. Download Process Explorer. Start your service (ProcExp only shows running services). In ProcExp, double-click on the process for the Service (or right-click and click Properties). Click the "Services" tab. Typically your program is run by a particular user - Add that user. Hit Advanced. The permissions you can manage include stop/start of this Service and sending custom-defined commands to it.

    Process Hacker is similar, but can manage stopped services as well.

  2. sc sdshow, learn the ACE syntax and access rights, edit the security descriptor, pass it back to sc sdset.