我想编写一个控制台或Click Once WinForms应用程序,它将以编程方式停止和/或启动远程机器上的Windows服务.
这两个框都运行.NET 3.5 - 有哪些.NET API可用于实现此目的?
在C#中:
var sc = new System.ServiceProcess.ServiceController("MyService", "MyRemoteMachine"); sc.Start(); sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running); sc.Stop(); sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped);
您也可以使用以下sc
命令从命令控制台执行此操作:
scstart [service name] sc stop [service name]
使用
scquery | find "SERVICE_NAME"
获取服务名称列表.
该选项
具有表单\\ServerName
sc \\MyServer stop schedule
将停止Scheduler服务.
ServiceController.
您需要具有管理远程控制台上的服务的权限.
正如Mehrdad所说,你也可以使用WMI.这两种方法都适用于启动和停止,但WMI需要更多编码,并且可以为您提供更多访问其他资源的权限