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

我有这个:

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

这样,我可以得到这样的Windows服务的状态:

string status = svc.Status.ToString();

但是我无法控制Windows服务(通过 svc.Start(); 或者 svc.Stop();)。我得到以下例外:

无法在计算机'Computer_name'上打开Servicexxx服务

这是正常的,我想与访问权限有关。但是如何?我研究了Google,但没有找到我想要的东西。但是,我经常读一些与模仿有关的东西,但我不知道这意味着什么。

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

有帮助吗?

解决方案

问题解决了。

模仿包括使用特定登录/密码运行一块代码。我发现这个非常有用的项目: http://www.codeproject.com/kb/cs/svcmgr.aspx?display=print 这对我有很大帮助!

其他提示

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

为了解决该问题,请在远程计算机/服务器(例如域/用户名)上给您的名称admin权限,因为我有相同的问题,您将能够成功运行该软件包。服务器

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top