2010-10-01 175 views
5

我写了一个应该启动/停止其他服务的服务。 这是我使用的代码:服务需要哪个用户权限才能启动/停止其他服务?

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

这是异常的调用堆栈。 (很抱歉,但该消息被定位于德国,但是这并不影响我们理解我的问题)

System.InvalidOperationException: Der Dienst SCardSvr kann nicht auf dem 

电脑。 geöffnetwerden。 ---> System.ComponentModel.Win32Exception: Zugriff verweigert
---恩德DER internenAusnahmestapelüberwachung---
贝System.ServiceProcess.ServiceController.GetServiceHandle(的Int32 desiredAccess)
贝System.ServiceProcess.ServiceController。启动(字符串[] 参数)
贝System.ServiceProcess.ServiceController.Start()

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

+0

谁投票关闭了这个?小心评论?我认为这个问题在Stackoverflow上比在Serverfault上更合适,因为这个问题是从程序员的角度看的,而不是从管理员的角度看的。 – citronas 2010-10-01 13:21:41

+0

投票以超级用户身份关闭。这不是一个编程问题。您的目标是创建一个拥有启动/停止服务权限的新用户。无论您是以编程方式创建此用户,确定用户需要的设置是Windows问题,而不是c#问题。 – Brian 2010-10-01 13:48:24

回答

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

相关问题