Ejemplo n.º 1
0
        private static void SetDriveInfo(HardwareInfo result)
        {
            result.Drives = new List <DriveInfo>();

            var drives =
                new ManagementObjectSearcher("select * from Win32_DiskDrive")
                .Get()
                .Cast <ManagementObject>()
                .ToList();

            if (drives?.Any() != true)
            {
                return;
            }

            foreach (var managementObject in drives)
            {
                var drive = new DriveInfo
                {
                    Name = managementObject.GetValue <string>("Caption"),
                    Size = managementObject.GetValue <ulong>("Size")
                };

                result.Drives.Add(drive);
            }
        }
Ejemplo n.º 2
0
        public static ManagementObject NewResource(this ManagementObject VM, ResourceTypes ResType, string SubType, ManagementScope Scope)
        {
            var pool = new ManagementObjectSearcher(Scope, new SelectQuery(VMStrings.ResourcePool,
                                                                           "ResourceType = " + (ushort)ResType +
                                                                           " and ResourceSubType = '" + SubType + "'"))
                       .Get().Cast <ManagementObject>().ToArray();


            return(!pool.Any()
                       ? null
                       : new ManagementObject(pool.SelectMany(
                                                  item =>
                                                  item.GetRelated("MSVM_AllocationCapabilities")
                                                  .Cast <ManagementObject>()
                                                  .SelectMany(
                                                      cap =>
                                                      cap.GetRelationships("MSVM_SettingsDefineCapabilities")
                                                      .Cast <ManagementObject>()
                                                      .Where(defCap => uint.Parse(defCap["ValueRole"].ToString()) == 0))).First()["PartComponent"].ToString()));

            /*
             * if (!pool.Any())
             *         return null;
             * var var1 = pool.SelectMany(item => item.GetRelated("MSVM_AllocationCapabilities").Cast<ManagementObject>());
             * var var2 = var1.SelectMany(cap =>cap.GetRelationships("MSVM_SettingsDefineCapabilities").Cast<ManagementObject>());
             * var var3 = var2.Where(defCap => uint.Parse(defCap["ValueRole"].ToString()) == 0);
             * var var4 = var3.First();
             * return var4;
             */

            /*
             * var AllocQuery = new SelectQuery("MSVM_AllocationCapabilities",
             *      "ResourceType = " + (ushort)ResType +" and ResourceSubType = '" + SubType + "'");
             * var AllocResult = new ManagementObjectSearcher(Scope, AllocQuery).Get().Cast<ManagementObject>().FirstOrDefault();
             * var objQuery = new SelectQuery("MSVM_SettingsDefineCapabilities",
             *      "ValueRange = 0");
             * var objOut = new ManagementObjectSearcher(Scope, objQuery).Get().Cast<ManagementObject>();
             * objOut = objOut.Where(each => {
             *                              return each == null ? false
             *                                   : each["GroupComponent"] == null ? false
             *                                   : each["GroupComponent"].ToString().Equals(AllocResult["__Path"].ToString());
             *                             });
             * var Out = objOut.First();
             * var MC = GetObject(Out["PartComponent"].ToString());
             *
             * return MC;
             * /*
             * var MgmtSvc = GetServiceObject(Scope, ServiceNames.VSManagement);
             * ManagementBaseObject inputs = MgmtSvc.GetMethodParameters("AddVirtualSystemResources");
             * inputs["TargetSystem"] = VM.Path.Path;
             * inputs["ResourceSettingData"] = new []{MC.GetText(TextFormat.WmiDtd20)};
             *
             * var result = MgmtSvc.InvokeMethod("AddVirtualSystemResources", inputs, null);
             *
             * switch (Int32.Parse(result["ReturnValue"].ToString()))
             * {
             *  case (int)ReturnCodes.OK:
             *      var tmp = result["NewResources"];
             *      return GetObject(((ManagementObject[])result["NewResources"]).First()["__Path"].ToString());
             *  case (int)ReturnCodes.JobStarted:
             *      var job = GetObject(result["Job"].ToString());
             *      var r = WaitForJob(job);
             *      if (r == 0)
             *      {
             *          var res = result["NewResources"];
             *          var arr = (ManagementBaseObject[])res;
             *          var fir = arr.First();
             *          var path = fir["__Path"].ToString();
             *          var o = GetObject(path);
             *          return GetObject(((ManagementObject[])result["NewResources"]).First()["__Path"].ToString());
             *      }
             *      return null;
             *  default:
             *      return null;
             * }
             */
        }