如何从应用程序启动Windows服务

时间:2019-07-10 10:42:58

标签: winapi windows-services startup access-rights

我有一个Windows Service,我想使用ServiceController来启动它。该服务以LocalSystem的身份运行。当我尝试Start时,我得到了: >

  

System.InvalidOperationException:'无法在以下位置打开[service]服务   电脑 '。'。'
内部异常Win32Exception:访问被拒绝

主要

   static void Main(string[] args) {
            using (ServiceController controller = new ServiceController("someService")) {
                controller.Start();
            }
        }

我可以以某种方式以编程方式提升权利以启动服务(即使我需要为P/Invoke使用Winapi吗?)。

1 个答案:

答案 0 :(得分:1)

您确实确实需要提升。这就需要创建一个新的进程来启动服务,或者使用runas shell动词来显式地启动,或者使用COM高程标记。