从代码获取“访问被拒绝”启动服务

时间:2012-10-11 16:24:34

标签: c# service access-denied

我使用此代码启动Windows服务

public static bool StartService(string serviceName, int timeoutMilliseconds, params string[] args)
{
    ServiceController service = new ServiceController(serviceName);
    try
    {
        service.Start(args);
        TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
        service.WaitForStatus(ServiceControllerStatus.Running, timeout);
        return true;
    }
    catch
    {
        return false;
    }
}

但每次尝试此代码时,我都会被拒绝访问 我知道这可能是由UAC引起的(运行此代码的exe不是以提升的权限运行) 我不清楚的是,如果我使用服务面板启动相同的服务,它会运行:为什么?应该使用相同的用户权限打开服务面板吗? 如何在没有提升权限的情况下使用我的代码启动此服务?

请注意,该服务不是用C#编写的,我没有源代码 我在Windows 7上测试了这个(32位和64位)。

0 个答案:

没有答案