C#: Check if service exists via WMI
using System;
using System.Management;
namespace debug
{
internal class Program
{
static void Main(string[] args)
{
string query = "select * from Win32_Service where name='W3svc'";
try
{
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
{
ManagementObjectCollection services = searcher.Get();
if (services.Count == 0)
{
Console.WriteLine("IIS Service not found.");
}
else
{
foreach (ManagementObject service in searcher.Get())
{
string name = service["Name"].ToString();
string displayName = service["DisplayName"].ToString();
string status = service["State"].ToString();
Console.WriteLine("Service Name: " + name);
Console.WriteLine("Service Display Name: " + displayName);
//Additional checks if status is not running?
Console.WriteLine("Service Status: " + status);
if (status == "Running")
{
// Do stuff
}
}
}
}
}
catch
{
Console.WriteLine("Unable to connect to the WMI service");
}
}
}
}