服务需要哪个用户权限才能启动/停止其他服务?

时间:2010-10-01 13:17:11

标签: c# windows-services permissions

我写了一个应该启动/停止其他服务的服务。 这是我正在使用的代码:

ServiceController sc = new ServiceController("servicename");
if(sc.Status != ServiceControllerStatus.Running)
{
    sc.Start();
}

这是异常的callstack。 (对不起,但邮件是用德语本地化的,但这与理解我的问题无关)

System.InvalidOperationException: Der Dienst SCardSvr kann nicht auf dem
     

电脑。 geöffnetwerden。 --->   System.ComponentModel.Win32Exception:   Zugriff verweigert
         --- Enn der internenAusnahmestapelüberwachung---
         bei System.ServiceProcess.ServiceController.GetServiceHandle(Int32   desiredAccess)
         bei System.ServiceProcess.ServiceController.Start(String []   参数)
         bei System.ServiceProcess.ServiceController.Start()

目前我正在'Networkservice'下运行该服务。我想这个帐户不足以满足必要的用户权限  我将创建一个新用户,它是启动/停止任意服务所需的最小权限 这个新的useraccount需要什么权限?

1 个答案:

答案 0 :(得分:1)

是否需要能够启动和停止任意服务或特定集合?

对于更精细的控制,您可以针对特定服务设置权限。见http://msmvps.com/blogs/erikr/archive/2007/09/26/set-permissions-on-a-specific-service-windows.aspx?CommentPosted=true#commentmessage

“超级用户”组的成员有能力启动和停止服务。见http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/windows_security_default_settings.mspx?mfr=true