.Net类来控制远程机器上的服务?

时间:2009-07-21 14:19:05

标签: c# asp.net windows impersonation remote-access

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

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

干杯

2 个答案:

答案 0 :(得分:8)

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

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

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

我发现this link描述了使用WMI更改服务凭据。

答案 1 :(得分:0)

@MadSeb -

正如我在other post中所说的那样:

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

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

相关问题