如何验证服务中是否存在服务

本文关键字:服务 是否 存在 验证 何验证 | 更新日期: 2023-09-27 18:34:18

我使用以下代码来获取服务的路径...

 string ServicePath = string.Format("Win32_Service.Name='"{0}'"", "MyService");
 var WMiObject = new ManagementObject(ServicePath);
 string PathName = (string)WMiObject.GetPropertyValue("PathName");

现在,如果该服务不可用,则调用 wmiObject.getPropertyValue("PathName")将抛出管理异常。

就我而言,如果服务不可用,我需要分配硬编码路径。如何实现??请指导...

如何验证服务中是否存在服务

string Name = "MyService";
ServiceController service = ServiceController
                        .GetServices()
                        .Where(s => s.ServiceName == Name).FirstOrDefault();
if(null != service)
{
    // service exists
}

您可以在 WMiObject.GetPropertyValue 调用周围使用 try 块,并在 catch 块中分配常量值。

string PathName;
try
{
    PathName = (string)WMiObject.GetPropertyValue("PathName");
}
catch (ManagementException)
{
    PathName = "my constant path value";
}