如何使用ServiceController远程控制Windows服务?

时间:2010-06-08 09:54:03

标签: c# windows-services wmi remote-access servicecontroller

我正在尝试控制安装在远程计算机中的Windows服务。我正在使用ServiceController类。

我有这个:

ServiceController svc =  new ServiceController("MyWindowsService", "COMPUTER_NAME");

有了这个,我可以像这样得到Windows服务的状态:

string status = svc.Status.ToString();

但我无法控制Windows服务(通过执行svc.Start();svc.Stop();)。 我得到以下异常:

  

无法打开Servicexxx服务   电脑“COMPUTER_NAME”

这是正常的,我想这与访问权限有关。但是怎么样? 我看过谷歌但没找到我想要的东西。但是我经常阅读与模仿相关的内容,但我不知道这意味着什么。

注意:本地和远程计算机都运行Win XP Pro。

3 个答案:

答案 0 :(得分:9)

问题解决了。

模拟包括使用某个登录/密码运行一段代码。我找到了这个非常有用的项目:http://www.codeproject.com/KB/cs/svcmgr.aspx?display=Print给了我很多帮助!

答案 1 :(得分:7)

启动和停止服务是一种高权限操作,通常仅供管理员使用。确保您使用的用户帐户在目标计算机上具有足够的权限。在serverfault.com上提出更多相关问题

答案 2 :(得分:0)

为了解决这个问题,请在远程计算机/服务器上为您的名称提供管理员权限,例如域/用户名,您可以成功运行该程序包,因为我有同样的问题,当我授予自助服务的权限时可在远程服务器上访问