【问题标题】:Which user permission does a service need to start/stop other services?服务需要哪个用户权限来启动/停止其他服务?
【发布时间】:2011-04-19 20:44:23
【问题描述】:

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

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

这是异常的调用栈。 (抱歉,该消息已本地化为德语,但这与理解我的问题无关)

System.InvalidOperationException: Der Dienst SCardSvr kann nicht auf dem

电脑。 geöffnet werden。 ---> System.ComponentModel.Win32Exception: 祖格里夫·维维格特
--- Ende der internen Ausnahmestapelüberwachung ---
北 System.ServiceProcess.ServiceController.GetServiceHandle(Int32 希望访问)
北 System.ServiceProcess.ServiceController.Start(String[] 参数)
北 System.ServiceProcess.ServiceController.Start()

目前我正在“Networkservice”下运行该服务。我猜该帐户没有足够的必要用户权限。
我将创建一个新用户,该用户拥有启动/停止任意服务所需的最低权限。
这个新用户帐户需要什么权限?

【问题讨论】:

  • 谁投票决定关闭这个?想发表评论吗?我认为这个问题在 Stackoverflow 上比在 Serverfault 上更合适,因为这个问题是从程序员的角度而不是从管理员的角度来看的。
  • 投票关闭超级用户。这不是一个编程问题。您的目标是创建一个有权启动/停止服务的新用户。无论您是否以编程方式创建此用户,确定用户需要进行的设置都是 windows 问题,而不是 c# 问题。

标签: c# windows-services permissions


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-31
    • 2019-11-13
    • 2023-04-05
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    相关资源
    最近更新 更多