예제 #1
0
        private static string GetCpuId()
        {
            //传入"Win32_Processor"可获得CPU处理器信息
            ManagementObjectCollection instances = new ManagementClass("Win32_Processor").GetInstances();

            string str = (string)null;

            //
            using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = instances.GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    str = enumerator.Current.Properties["ProcessorId"].Value.ToString();
                }
            }
            return(str);
        }
예제 #2
0
 public static IMemorySettingData GetRelated(IComputerSystem vm)
 {
     using (IVirtualSystemSettingData systemSettingData = vm.GetVirtualSystemSettingData())
     {
         using (ManagementObjectCollection related = systemSettingData.Object.GetRelated("Msvm_MemorySettingData"))
         {
             using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = related.GetEnumerator())
             {
                 if (enumerator.MoveNext())
                 {
                     return((IMemorySettingData) new MemorySettingData((ManagementObject)enumerator.Current));
                 }
             }
         }
     }
     throw new HyperVException("No related Msvm_MemorySettingData objects found");
 }
예제 #3
0
 public static string GetCommandLine(Process process)
 {
     using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " + process.Id))
     {
         using (ManagementObjectCollection managementObjectCollection = managementObjectSearcher.Get())
         {
             using (ManagementObjectCollection.ManagementObjectEnumerator managementObjectEnumerator = managementObjectCollection.GetEnumerator())
             {
                 if (managementObjectEnumerator.MoveNext())
                 {
                     return(managementObjectEnumerator.Current["CommandLine"]?.ToString());
                 }
             }
             return("");
         }
     }
 }
예제 #4
0
        public static string HDD2_String()
        {
            var HDD2 = String.Empty;

            ManagementObjectCollection.ManagementObjectEnumerator enumerator = null;
            using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskDrive WHERE DeviceID LIKE '%DRIVE1'"))
            {
                enumerator = managementObjectSearcher.Get().GetEnumerator();
                while (enumerator.MoveNext())
                {
                    ManagementObject current = (ManagementObject)enumerator.Current;
                    HDD2  = Conversions.ToString(Operators.ConcatenateObject(Operators.ConcatenateObject(Operators.ConcatenateObject(Operators.ConcatenateObject(current["Caption"], " @ "), Microsoft.VisualBasic.Strings.Format(Conversions.ToDouble(current["Size"]) / 1000 / 1000 / 1000 / 1000, ".00").ToString()), " TB"), Environment.NewLine));
                    HDD2 += Conversions.ToString(Operators.AddObject(HDD2, Operators.ConcatenateObject("Serial:", current["SerialNumber"])));
                }
            }
            return(HDD2);
        }
        // Token: 0x06000329 RID: 809 RVA: 0x00018F98 File Offset: 0x00017198
        public string GetHdId()
        {
            ManagementObjectCollection managementObjectCollection = new ManagementObjectSearcher
            {
                Query = new SelectQuery("Win32_DiskDrive", "", new string[]
                {
                    "PNPDeviceID",
                    "signature"
                })
            }.Get();

            ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectCollection.GetEnumerator();
            enumerator.MoveNext();
            ManagementBaseObject managementBaseObject = enumerator.Current;

            return(managementBaseObject.Properties["signature"].Value.ToString().Trim());
        }
예제 #6
0
        /// <summary>
        ///   获取系统内存大小
        /// </summary>
        /// <returns> 内存大小(单位M) </returns>
        private static long GetPhysicalMemory()
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher();                  //用于查询一些如系统信息的管理对象

            searcher.Query = new SelectQuery("Win32_PhysicalMemory ", "", new[] { "Capacity" }); //设置查询条件
            ManagementObjectCollection collection = searcher.Get();                              //获取内存容量

            ManagementObjectCollection.ManagementObjectEnumerator em = collection.GetEnumerator();

            long capacity = 0;

            while (em.MoveNext())
            {
                ManagementBaseObject baseObj = em.Current;
                if (baseObj.Properties["Capacity"].Value != null)
                {
                    try
                    {
                        capacity += long.Parse(baseObj.Properties["Capacity"].Value.ToString());
                    }
                    catch (Exception ex)
                    {
                        Cat.lastException = ex;
                        return(0);
                    }
                }
            }

            if (null != em)
            {
                em.Dispose();
                em = null;
            }
            if (null != collection)
            {
                collection.Dispose();
                collection = null;
            }
            if (null != searcher)
            {
                searcher.Dispose();
                searcher = null;
            }

            return(capacity);
        }
예제 #7
0
 private void SetBrightness(int value)
 {
     using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(new ManagementScope("root\\WMI"), new SelectQuery("WmiMonitorBrightnessMethods")))
     {
         using (ManagementObjectCollection managementObjectCollections = managementObjectSearcher.Get())
         {
             using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectCollections.GetEnumerator())
             {
                 if (enumerator.MoveNext())
                 {
                     ManagementObject current = (ManagementObject)enumerator.Current;
                     current.InvokeMethod("WmiSetBrightness", new object[] { (uint)0, value });
                 }
             }
         }
     }
 }
예제 #8
0
        private static IEnumerable <string> findServiceNames(string nameQuery)
        {
            using var searcher = new ManagementObjectSearcher(new SelectQuery("Win32_Service", $"Name LIKE '{nameQuery}'"));

            using ManagementObjectCollection results = searcher.Get();

            ICollection <string> serviceNameResults = new HashSet <string>(results.Count);

            using ManagementObjectCollection.ManagementObjectEnumerator resultsEnumerator = results.GetEnumerator();

            while (resultsEnumerator.MoveNext())
            {
                serviceNameResults.Add((string)resultsEnumerator.Current.GetPropertyValue("Name"));
            }

            return(serviceNameResults);
        }
        // Token: 0x06000015 RID: 21 RVA: 0x00002CAC File Offset: 0x00000EAC
        public static string CalculateContext()
        {
            string text = "Unknown OS";

            using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem"))
            {
                using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectSearcher.Get().GetEnumerator())
                {
                    if (enumerator.MoveNext())
                    {
                        text = ((ManagementObject)enumerator.Current)["Caption"].ToString();
                    }
                }
            }
            text = Regex.Replace(text, "^.*(?=Windows)", "").TrimEnd(new char[0]).TrimStart(new char[0]);
            return(string.Format("{0} {1} Bit", text, 64));
        }
예제 #10
0
        private ArrayList GetCDRevisionLevel()
        {
            ArrayList collection2 = new ArrayList();

            try
            {
                ManagementObjectCollection.ManagementObjectEnumerator enumerator = null;
                SelectQuery query = new SelectQuery("Win32_CDROMDrive");
                ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
                try
                {
                    enumerator = searcher.Get().GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        ManagementObject info = (ManagementObject)enumerator.Current;
                        if (info["MfrAssignedRevisionLevel"] != null)
                        {
                            collection2.Add(info["MfrAssignedRevisionLevel"].ToString());
                        }
                        else
                        {
                            if (info["RevisionLevel"] != null)
                            {
                                collection2.Add(info["RevisionLevel"].ToString());
                                continue;
                            }
                            collection2.Add("N/A");
                        }
                    }
                    return(collection2);
                }
                finally
                {
                    if (enumerator != null)
                    {
                        enumerator.Dispose();
                    }
                }
            }
            catch
            {
                collection2 = null;
            }
            return(collection2);
        }
예제 #11
0
        private static string GetCPUSerialNumber()
        {
            string                     result          = string.Empty;
            ManagementClass            managementClass = new ManagementClass("Win32_Processor");
            ManagementObjectCollection instances       = managementClass.GetInstances();

            using (ManagementObjectCollection.ManagementObjectEnumerator managementObjectEnumerator = instances.GetEnumerator())
            {
                if (managementObjectEnumerator.MoveNext())
                {
                    ManagementObject managementObject = (ManagementObject)managementObjectEnumerator.Current;
                    result = managementObject["ProcessorId"].ToString();
                }
            }
            managementClass.Dispose();
            instances.Dispose();
            return(result);
        }
예제 #12
0
        public static string GetCPUID()
        {
            ManagementClass            managementClass = new ManagementClass("Win32_Processor");
            ManagementObjectCollection instances       = managementClass.GetInstances();
            string result = "";

            using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = instances.GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    ManagementObject managementObject = (ManagementObject)enumerator.Current;
                    result = managementObject.Properties["ProcessorId"].Value.ToString();
                }
            }
            managementClass.Dispose();
            instances.Dispose();
            return(result);
        }
예제 #13
0
        private double GetCPULoad()
        {
            double num = 0.0;

            ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfOS_Processor");

            using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectSearcher.Get().GetEnumerator()) {
                while (enumerator.MoveNext())
                {
                    ManagementObject managementObject = (ManagementObject)enumerator.Current;
                    num += Convert.ToDouble(managementObject["PercentProcessorTime"]);
                }
            }

            num /= (double)managementObjectSearcher.Get().Count;

            return(num);
        }
예제 #14
0
        // Token: 0x0600000C RID: 12 RVA: 0x000024A0 File Offset: 0x000006A0
        private static string HWID()
        {
            ManagementObjectSearcher   managementObjectSearcher   = new ManagementObjectSearcher("Select ProcessorID From Win32_processor");
            ManagementObjectCollection managementObjectCollection = managementObjectSearcher.Get();
            string result;

            using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectCollection.GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    ManagementObject managementObject = (ManagementObject)enumerator.Current;
                    result = managementObject["ProcessorID"].ToString();
                    return(result);
                }
            }
            result = null;
            return(result);
        }
예제 #15
0
        }//end method

        //取第一块硬盘编号
        public String GetHardDiskID()
        {
            try
            {
                ManagementObjectSearcher mos = new ManagementObjectSearcher();
                mos.Query = new SelectQuery("Win32_DiskDrive", "", new string[] { "PNPDeviceID", "Signature" });
                ManagementObjectCollection myCollection = mos.Get();
                ManagementObjectCollection.ManagementObjectEnumerator em = myCollection.GetEnumerator();
                em.MoveNext();
                ManagementBaseObject moo = em.Current;
                string id = moo.Properties["signature"].Value.ToString().Trim();
                return(id);
            }
            catch (Exception ex)
            {
                return("");
            }
        }//end
예제 #16
0
        private ManagementObject GetWmiObject(string classname, string where)
        {
            ManagementObjectCollection resultset = GetWmiObjects(classname, where);

            if (resultset.Count != 1)
            {
                throw new InvalidOperationException(string.Format("Cannot locate {0} where {1}", classname, where));
            }
            ManagementObjectCollection.ManagementObjectEnumerator en = resultset.GetEnumerator();
            en.MoveNext();
            ManagementObject result = en.Current as ManagementObject;

            if (result == null)
            {
                throw new InvalidOperationException("Failure retrieving " + classname + " where " + where);
            }
            return(result);
        }
예제 #17
0
 public static PrintJobInfo Get(int jobId)
 {
     using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PrintJob WHERE JobId=" + jobId))
     {
         ManagementObjectCollection objects = searcher.Get();
         if (objects.Count > 0)
         {
             using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = objects.GetEnumerator())
             {
                 if (enumerator.MoveNext())
                 {
                     return(Parse((ManagementObject)enumerator.Current));
                 }
             }
         }
     }
     return(null);
 }
예제 #18
0
        private string method_0()
        {
            string str;

            using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = (new ManagementClass("Win32_ComputerSystem")).GetInstances().GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    ManagementObject current = (ManagementObject)enumerator.Current;
                    str = string.Concat(Convert.ToString(Math.Round(Convert.ToDouble(current.Properties["TotalPhysicalMemory"].Value) / 1073741824, 0)), ".0GB RAM");
                }
                else
                {
                    return("RAMsize");
                }
            }
            return(str);
        }
예제 #19
0
    // Token: 0x06000073 RID: 115 RVA: 0x00005C0C File Offset: 0x00003E0C
    public static string smethod_0()
    {
        string result;

        try
        {
            string text = string.Empty;
            using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem WHERE Primary='true'"))
            {
                using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectSearcher.Get().GetEnumerator())
                {
                    if (enumerator.MoveNext())
                    {
                        ManagementObject managementObject = (ManagementObject)enumerator.Current;
                        DateTime         d        = ManagementDateTimeConverter.ToDateTime(managementObject["LastBootUpTime"].ToString());
                        TimeSpan         timeSpan = TimeSpan.FromTicks((DateTime.Now - d).Ticks);
                        text = string.Format("{0}d : {1}h : {2}m : {3}s", new object[]
                        {
                            timeSpan.Days,
                            timeSpan.Hours,
                            timeSpan.Minutes,
                            timeSpan.Seconds
                        });
                    }
                }
            }
            if (string.IsNullOrEmpty(text))
            {
                throw new Exception("Getting uptime failed");
            }
            result = text;
        }
        catch (Exception)
        {
            result = string.Format("{0}d : {1}h : {2}m : {3}s", new object[]
            {
                0,
                0,
                0,
                0
            });
        }
        return(result);
    }
예제 #20
0
        public static string GetOSFriendlyName()
        {
            var framework = Assembly
                            .GetEntryAssembly()?
                            .GetCustomAttribute <TargetFrameworkAttribute>()?
                            .FrameworkName;

#if NETSTANDARD2_0
            return(framework + "-" + System.Runtime.InteropServices.RuntimeInformation.OSDescription);
#else
            string result = string.Empty;
            ManagementObjectCollection.ManagementObjectEnumerator enumerator = null;

            try
            {
                enumerator = (
                    new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem")
                    ).Get()
                             .GetEnumerator();

                if (enumerator.MoveNext())
                {
                    result = ((ManagementObject)enumerator.Current)["Caption"].ToString();
                }
            }
            catch (UnauthorizedAccessException)
            {
                // Hosted solution - Many not allow access to WMI
                return("Hosted");
            }
            catch (System.NotImplementedException)
            {
                return(".Net Core-" + System.Environment.OSVersion.VersionString);
            }
            finally
            {
                if (enumerator != null)
                {
                    ((IDisposable)enumerator).Dispose();
                }
            }
            return(result + "-" + framework);
#endif
        }
예제 #21
0
        //
        // METHODS
        //

        // <doc>
        // <desc>
        //     Create associator instance nodes under this grouping.
        // </desc>
        // </doc>
        public override Node[] CreateChildren()
        {
            GetRelatedOptions opts = new GetRelatedOptions(null,                     //context
                                                           TimeSpan.MaxValue,        //timeout
                                                           50,                       //block size
                                                           false,                    //rewindable
                                                           true,                     //return immediately
                                                           true,                     //use amended
                                                           true,                     //locatable
                                                           false,                    //prototype only
                                                           false,                    //direct read
                                                           theComp.targetClass,      //related class
                                                           theComp.associationClass, //RELATIONSHIP CLASS
                                                           string.Empty,             //relationship qualifier
                                                           string.Empty,             //related qualifier
                                                           theComp.targetRole,       //related role
                                                           string.Empty,             //this role
                                                           false                     //classes only
                                                           );
            ManagementObjectCollection assocInstances = theComp.sourceInst.GetRelated(opts);

            if (assocInstances == null)
            {
                return(null);
            }

            ArrayList arNodes = new ArrayList(50);

            ManagementObjectCollection.ManagementObjectEnumerator enumAssocInst = assocInstances.GetEnumerator();

            while (enumAssocInst.MoveNext())
            {
                ManagementObject curObj = (ManagementObject)enumAssocInst.Current;
                arNodes.Add(new WMIInstanceNode(curObj,
                                                WmiHelper.GetClassObject(curObj, connectAs, password),
                                                connectAs, password));
            }

            Node[] childNodes = new Node[arNodes.Count];

            arNodes.CopyTo(childNodes);

            return(childNodes);
        }
        public static ArgumentTokenCollection Lookup(int processId)
        {
            string wmiQuery = string.Format("SELECT CommandLine FROM Win32_Process WHERE ProcessId = {0}", processId);
            ManagementObjectSearcher   searcher            = new ManagementObjectSearcher(wmiQuery);
            ManagementObjectCollection retObjectCollection = searcher.Get();

            try
            {
                string commandLine = string.Empty;

                if (retObjectCollection.Count == 0 || retObjectCollection.Count > 1)
                {
                    return(ArgumentTokenCollection.Empty);
                }

                using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = retObjectCollection.GetEnumerator())
                {
                    if (enumerator.MoveNext())
                    {
                        commandLine = enumerator.Current["CommandLine"].ToString();
                    }
                }

                ArgumentParser parser = new ArgumentParser(commandLine);
                return(parser.GetArguments());
            }
            finally
            {
                if (searcher != null)
                {
                    searcher.Dispose();
                }

                if (retObjectCollection != null)
                {
                    retObjectCollection.Dispose();
                }
            }

            //foreach (ManagementObject retObject in retObjectCollection)
            //{
            //    return retObject["CommandLine"].ToString();
            //}
        }
예제 #23
0
        /* Methode zum Herunterfahren und Booten eines Systems */
        public static void ShutdownSystem(string hostName, string remoteAuthUser,
                                          string remoteAuthPassword, bool reboot)
        {
            // Den Hostnamen auf localhost setzen, wenn keiner übergeben wurde
            if (hostName == null || hostName == "")
            {
                hostName = "localhost";
            }

            // ManagementScope-Objekt erzeugen, damit die EnablePrivileges-Eigenschaft
            // gesetzt und die Authentifizierungs-Informationen übergeben werden
            // können
            ManagementScope scope = new ManagementScope(@"\\" + hostName +
                                                        "\\root\\cimv2");

            scope.Options.EnablePrivileges = true;
            scope.Options.Username         = remoteAuthUser;
            scope.Options.Password         = remoteAuthPassword;

            // Win32_OperatingSystem-Instanz für das aktive Betriebssystem ermitteln
            ManagementClass mc = new ManagementClass(scope, new ManagementPath(
                                                         "Win32_OperatingSystem"), new ObjectGetOptions());
            ManagementObjectCollection moc = mc.GetInstances();

            ManagementObjectCollection.ManagementObjectEnumerator
                mocEnumerator = moc.GetEnumerator();
            mocEnumerator.MoveNext();
            ManagementObject mo = (ManagementObject)mocEnumerator.Current;

            // Rechner über die Win32Shutdown-Methode neu starten oder herunterfahren
            if (reboot)
            {
                mo.InvokeMethod("Reboot", null);
            }
            else
            {
                mo.InvokeMethod("Shutdown", null);
            }

            // WMI-Objekte freigeben um den Speicher möglichst schnell zu entlasten
            mo.Dispose();
            moc.Dispose();
            mc.Dispose();
        }
예제 #24
0
 // Token: 0x0600004D RID: 77 RVA: 0x000052CC File Offset: 0x000034CC
 static GClass8()
 {
     GClass8.RunningOnMono = (Type.GetType("Mono.Runtime") != null);
     GClass8.Name          = "Unknown OS";
     using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem"))
     {
         using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectSearcher.Get().GetEnumerator())
         {
             if (enumerator.MoveNext())
             {
                 ManagementObject managementObject = (ManagementObject)enumerator.Current;
                 GClass8.Name = managementObject["Caption"].ToString();
             }
         }
     }
     GClass8.Name     = Regex.Replace(GClass8.Name, "^.*(?=Windows)", "").TrimEnd(new char[0]).TrimStart(new char[0]);
     GClass8.Is64Bit  = Environment.Is64BitOperatingSystem;
     GClass8.FullName = string.Format("{0} {1} Bit", GClass8.Name, GClass8.Is64Bit ? 64 : 32);
 }
예제 #25
0
파일: Utils.cs 프로젝트: a532367171/WC
        public static string Win32_GetMainBoardBiosSerialNumber()
        {
            ManagementClass            managementClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection instances       = managementClass.GetInstances();
            string result = "";

            using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = instances.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    ManagementObject managementObject = (ManagementObject)enumerator.Current;
                    if ((bool)managementObject["IPEnabled"])
                    {
                        result = managementObject["MacAddress"].ToString();
                    }
                }
            }
            return(result);
        }
예제 #26
0
 // Token: 0x0600021A RID: 538 RVA: 0x00010FF4 File Offset: 0x0000F1F4
 public static string smethod_8()
 {
     try
     {
         ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_VideoController");
         using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = managementObjectSearcher.Get().GetEnumerator())
         {
             if (enumerator.MoveNext())
             {
                 ManagementObject managementObject = (ManagementObject)enumerator.Current;
                 return(Convert.ToString(managementObject["Caption"]));
             }
         }
     }
     catch
     {
     }
     return("Unknown");
 }
예제 #27
0
    public static string GetBIOSUuid(ManagementScope scope)
    {
        string str = (string)null;

        using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(scope, new ObjectQuery("Select * from Win32_ComputerSystemProduct")))
        {
            using (ManagementObjectCollection objectCollection = managementObjectSearcher.Get())
            {
                using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = objectCollection.GetEnumerator())
                {
                    if (enumerator.MoveNext())
                    {
                        str = (string)enumerator.Current["UUID"];
                    }
                }
            }
        }
        return(str);
    }
    public static int Main(string[] args)
    {
        ManagementClass diskClass =
            new ManagementClass("Win32_LogicalDisk");
        ManagementObjectCollection disks =
            diskClass.GetInstances();

        ManagementObjectCollection.ManagementObjectEnumerator
            disksEnumerator =
            disks.GetEnumerator();
        while (disksEnumerator.MoveNext())
        {
            ManagementObject disk =
                (ManagementObject)disksEnumerator.Current;
            Console.WriteLine(
                "Disk found: " + disk["deviceid"]);
        }
        return(0);
    }
예제 #29
0
파일: WmiAPI.cs 프로젝트: s-h-a-d-o-w/alfc
        private static Tuple <ManagementClass, ManagementObject> GetWmiClassAndObject(string className)
        {
            ManagementScope scope = new ManagementScope("root\\WMI", new ConnectionOptions
            {
                EnablePrivileges = true,
                Impersonation    = ImpersonationLevel.Impersonate
            });
            ManagementPath  path     = new ManagementPath(className);
            ManagementClass wmiClass = new ManagementClass(scope, path, null);

            ManagementObjectCollection.ManagementObjectEnumerator enumerator = wmiClass.GetInstances().GetEnumerator();

            if (enumerator.MoveNext())
            {
                return(new Tuple <ManagementClass, ManagementObject>(wmiClass, (ManagementObject)enumerator.Current));
            }

            return(null);
        }
예제 #30
0
        /// <summary>
        /// Returns a management object for the host
        /// </summary>
        /// <param name="hostName"></param>
        /// <returns></returns>
        public static ManagementObject GetHostObject(string hostName)
        {
            ManagementScope            scope   = GetManagementScope();
            ObjectQuery                query   = new ObjectQuery(string.Format(CultureInfo.InvariantCulture, "select * from {0} where name = '{1}'", new object[] { "MSBTS_Host", hostName }));
            ManagementObjectCollection objects = new ManagementObjectSearcher(scope, query, null).Get();

            if (objects.Count == 0)
            {
                throw new ArgumentException("The host does not exist or could not be found.", "hostName");
            }
            using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = objects.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    return((ManagementObject)enumerator.Current);
                }
            }
            return(null);
        }