如何远程重启服务?

我可以从.net项目远程启动或停止服务。

ConnectionOptions options = new ConnectionOptions(); options.Username = @"192.168.36.22\test"; options.Password = "test"; ManagementScope scope = new ManagementScope(@"\\192.168.36.22\root\cimv2", options); scope.Connect(); ManagementOperationObserver Stop = new ManagementOperationObserver(); Stop.Completed += new CompletedEventHandler(Stop_CallBack); try { string NameServices = "ArcGIS Server"; WqlObjectQuery query = new WqlObjectQuery("SELECT * FROM Win32_Service WHERE Name=\"" + NameServices + "\""); ManagementObjectSearcher find = new ManagementObjectSearcher(scope, query); foreach (ManagementObject spooler in find.Get()) { spooler.InvokeMethod("StopService", new object[] { }); spooler.InvokeMethod(Start, "StopService", new object[] { }); } } .... 

我该如何重新启动此服务?

您可以像这样使用ServiceController类:

 ServiceController sc = new ServiceController("ArcGIS Server", "192.168.36.22"); sc.Start(); sc.Stop(); 

这样您就不必编写所有代码来与WMI交互。 请注意,要使用ServiceController类,您必须添加对System.ServiceProcess程序集的引用。

当我尝试连接时,我遇到了类似的问题,只需在目标机器的“用户”组中将您的机器名称添加为admin,您就可以获取数据。