1

是的,我可以用谷歌搜索,但我有点懒。我需要远程控制另一台机器上的 windows 服务。ServiceController 类是否允许我这样做?有什么限制?我可以远程启动/停止/更改“运行方式”详细信息,即更改即将到期的密码吗?

我将尝试为工作中的用户提供一个 ASP.Net 网站仪表板,以控制在他们自己的帐户下在他们的本地计算机上运行的多个服务(他们都是他们计算机上的本地管理员)。这与其他功能集成在一起,因此我不打算创建一个可以在本地为它们运行的​​可分发文件。将使用 Windows 身份验证并模拟用户进行更改。我可能会遇到什么问题?

干杯

4

2 回答 2

8
var sc = new ServiceController("servicename", "othermachinename");

运行代码的帐户需要目标计算机上的管理权限才能与服务交互。模拟将起作用。我只在相当严格控制的情况下使用它(即从源/目标机器上具有相同凭据的用户帐户运行),但根据我的经验,所有操作都按预期工作。

如果要更改服务凭据等,则必须使用 WMI——这不像使用 ServiceController 类那么容易。有关详细信息,请参阅 ManagementObject 类。

我发现这个链接描述了使用 WMI 更改服务凭据。

于 2009-07-21T14:21:49.777 回答
0

@MadSeb -

正如我在另一篇文章中所说:

如果您使用的是 C# 或 VB.Net,请使用WMI

否则,“ SC ”可能是从命令行或 .bat 文件中使用的最佳工具。

于 2011-11-01T22:46:58.647 回答