Dmitry Porotnikov / C#: Check if service exists via WMI

Created Tue, 22 Aug 2023 13:55:49 +0000 Modified Tue, 22 Aug 2023 13:55:49 +0000
124 Words

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");
            }
        }
    }
}