20

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

我有这个:

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

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

string status = svc.Status.ToString();

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

无法在计算机“COMPUTER_NAME”上打开 Servicexxx 服务

这很正常,我想这与访问权限有关。但是怎么做?我查看了谷歌,但没有找到我要找的东西。但是我经常读到一些与模仿有关的东西,但我不知道那是什么意思。

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

4

3 回答 3

11

问题解决了。

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

于 2010-06-08T13:10:27.693 回答
8

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

于 2010-06-08T13:12:06.877 回答
0

为了解决这个问题,给你的名字在远程计算机/服务器上的管理员权限,比如域/用户名,你将能够成功运行包,因为我遇到了同样的问题,并且当我授予我的自助服务权限时,可以远程访问服务器

于 2013-10-22T11:21:59.497 回答