停止/启动服务或关闭远程计算机上的sql server进程/服务

guy*_*uyl 4 c# windows-services process remote-access

我试图在远程计算机(在同一网络上)关闭并启动sql server,我已经使用了这段代码

ConnectionOptions options = new ConnectionOptions();
options.Username = userName;
options.Password = password;

ManagementScope scope = 
         new ManagementScope(
                       string.Format(@"\\{0}\root\cimv2", serverFullName),
                       options);
scope.Connect();

ObjectQuery query = new ObjectQuery(
                        string.Format(@"SELECT * FROM Win32_Process WHERE Name='{0}'",
                                      processToTerminate));
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();

foreach (ManagementObject m in queryCollection)
{
     m.InvokeMethod("Terminate", null);
}
Run Code Online (Sandbox Code Playgroud)
  1. 还有另一种方法吗?
  2. 我该如何开始这个过程(如果终止关闭它)?

谢谢

Pil*_*anz 5

那么使用ServiceController类呢?(见MSDN)

// just replace the params with your values
ServiceController sc = new ServiceController("SERVICENAME", "MACHINENAME");
if (sc.Status.Equals(ServiceControllerStatus.Running))
    sc.Stop();
Run Code Online (Sandbox Code Playgroud)

这应该可以解决问题.

心连心