C# 如何使用.net在远程计算机上启动/停止/重新启动windows服务

C# 如何使用.net在远程计算机上启动/停止/重新启动windows服务,c#,winforms,windows-services,C#,Winforms,Windows Services,目前,我正在开发启动/停止/重新启动windows服务的桌面应用程序 public static void StartService(string serviceName, int timeoutMilliseconds) { ServiceController service = new ServiceController(serviceName); try { TimeSpan timeout = Tim

目前,我正在开发启动/停止/重新启动windows服务的桌面应用程序

    public static void StartService(string serviceName, int timeoutMilliseconds)
    {
        ServiceController service = new ServiceController(serviceName);
        try
        {
            TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);

            service.Start();
            service.WaitForStatus(ServiceControllerStatus.Running, timeout);
        }
        catch
        {
            // ...
        }
    }
现在我希望代码在远程系统(同一网络上的其他系统)上执行相同的操作


谢谢。

您需要使用接受机器名的重载构造函数实例化ServiceController,如下所示:

ServiceController service = new ServiceController(serviceName, machineName);

嗨,复卷机,谢谢你的回答。当我使用is代码访问其他服务器的服务时,我收到了这个错误。“无法在计算机‘PVUKRTSINJ02’上打开服务控制管理器。此操作可能需要其他权限。”PVUKRTSINJ02是我尝试连接的服务器。它在另一个领域。但是我可以用我的凭据通过远程桌面连接从我的域连接到此服务器。@Nani:我认为这不是真正的例外。尝试在catch块中捕获异常,看看是否可以获得一些更有用的信息。@Nani ServiceController使用不同的协议。请确保您没有阻止Microsoft Networks的文件和打印机共享服务,并首先通过Microsoft Networks的文件和打印机共享使用域凭据创建了到目标计算机的连接。我如何在此处传递凭据以及MachiName?我想知道您为什么得到-1?