コード例 #1
0
        public static ServiceControllerExCollection GetServices(ServiceQueryType serviceQueryType, string machineName)
        {
            if ((machineName.Length == 0) || (machineName == "localhost"))
            {
                machineName = System.Net.Dns.GetHostName();
            }

            if (serviceQueryType == ServiceQueryType.ServiceProcess)
            {
                ServiceControllerExCollection list = new ServiceControllerExCollection();
                try
                {
                    list.AddRange
                    (
                        (
                            from ServiceController myController in ServiceController.GetServices(machineName)
                            select new ServiceControllerExSp(myController)
                        ).ToArray()
                    );
                }
                catch (System.InvalidOperationException invalidEx)
                {
                    if (invalidEx.Message.Contains("Cannot open Service Control Manager on computer"))
                    {
                        string fullDNSName = System.Net.Dns.GetHostEntry(machineName).HostName;
                        list.AddRange
                        (
                            (
                                from ServiceController myController in ServiceController.GetServices(fullDNSName)
                                select new ServiceControllerExSp(myController)
                            ).ToArray()
                        );
                    }
                    else
                    {
                        throw;
                    }
                }
                return(list);
            }
            else if (serviceQueryType == ServiceQueryType.WMI)
            {
                return(ServiceControllerExWMI.GetServices(machineName, false, "", ""));
            }
            else
            {
                return(ServiceControllerExMix.GetServices(machineName, false, "", ""));
            }
        }
コード例 #2
0
        public static ServiceControllerExCollection GetServices(string machineName, bool impersonate, string user, string pass)
        {
            ServiceControllerExCollection list = new ServiceControllerExCollection();

            if ((machineName.Length == 0) || (machineName == "localhost"))
            {
                machineName = ".";
            }
            ManagementObjectCollection servicesQuery = GetServiceCollection(machineName, impersonate, user, pass);

            foreach (ManagementObject mo in servicesQuery)
            {
                list.Add(new ServiceControllerExWMI(mo));
            }
            return(list);
        }