【发布时间】: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