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

cit*_*nas 5 c# permissions windows-services

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

ServiceController sc = new ServiceController("servicename");
if(sc.Status != ServiceControllerStatus.Running)
{
    sc.Start();
}
Run Code Online (Sandbox Code Playgroud)

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

System.InvalidOperationException: Der Dienst SCardSvr kann nicht auf dem
Run Code Online (Sandbox Code Playgroud)

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

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

Rob*_*ker 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