要用WMI的InvokeMethod来重启某个指定服务,如果判断服务在运行,重启这个服务,但是不晓得mo.InvokeMethod后面的命令,谢谢帮助
               //重启指定服务
public string RestartService(string serviceName)
{
string strRst =null;
ManagementObject mo = this.managementClass.CreateInstance();
mo.Path = new ManagementPath(this.strPath+".Name=\""+serviceName+"\"");
try
{
//重启
if((string)mo["State"]=="Running")
mo.InvokeMethod("RestartService",null);//这句有问题(RestartService是我自己写的,不对)
}
catch (System.Exception e)
{
strRst =e.Message;
}
return strRst;
}

解决方案 »

  1.   

    参考下 ServiceController 
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/system.serviceprocess.servicecontroller(VS.80).aspx
      

  3.   

    这是我自己整到的:
    Win32_Service
      Properties:
    AcceptPause
    AcceptStop
    Caption
    CheckPoint
    CreationClassName
    Description
    DesktopInteract
    DisplayName
    ErrorControl
    ExitCode
    InstallDate
    Name
    PathName
    ProcessId
    ServiceSpecificExitCode
    ServiceType
    Started
    StartMode
    StartName
    State
    Status
    SystemCreationClassName
    SystemName
    TagId
    WaitHint
      Methods:
    StartService
    StopService
    PauseService
    ResumeService
    InterrogateService
    UserControlService
    Create
    Change
    ChangeStartMode
    Delete
      

  4.   

    http://www.cnblogs.com/ocean2000/archive/2008/07/09/1238944.html
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  5.   

    其实很简单:
    ManagementClass mc=new ManagementClass("Win32_Service");
    mc.Properties//属性集
    mc.Methods//方法集
      

  6.   

    下载个微软的WMITools软件,用一下就能查到所有的WMI函数和方法了
      

  7.   

    问题已经解决,方案是采用先关闭服务再开启服务的方案,谢谢大家,特别谢谢CsToD!