public static void GetOperatingSystemInfo(ManagementScope scope, ref OperatingSystemInfo OsInfo, ref string systemPath, ref string systemVolume) { OsInfo = WMIUtils.GetOperatingSystemInfo(scope); using (ManagementObject managementObject = WMIUtils.QueryFirst(scope, "Select * from Win32_OperatingSystem")) { systemPath = managementObject["SystemDirectory"].ToString().Replace("\\system32", ""); systemVolume = systemPath.Substring(0, 2); } }
public static VolumeInfo[] GetVolumes(ManagementScope scope) { ObjectQuery query = new ObjectQuery("Select * from Win32_LogicalDisk"); List <VolumeInfo> volumeInfoList = new List <VolumeInfo>(); OperatingSystemInfo OsInfo = (OperatingSystemInfo)null; string empty1 = string.Empty; string empty2 = string.Empty; WMIUtils.GetOperatingSystemInfo(scope, ref OsInfo, ref empty1, ref empty2); using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(scope, query)) { using (ManagementObjectCollection objectCollection = managementObjectSearcher.Get()) { foreach (ManagementObject managementObject in objectCollection) { try { uint num1 = (uint)managementObject["DriveType"]; if ((int)num1 == 3) { string str1 = managementObject["Name"].ToString(); string str2 = managementObject["FileSystem"].ToString(); if (!string.IsNullOrEmpty(str1)) { if (!string.IsNullOrEmpty(str2)) { VolumeInfo volumeInfo1 = new VolumeInfo(); volumeInfo1.DriveLetter = str1.Replace(":", ""); volumeInfo1.Format = str2; volumeInfo1.Label = managementObject["VolumeName"].ToString(); volumeInfo1.DiskSizeMB = (long)((ulong)managementObject["Size"] / 1048576UL); volumeInfo1.FreeSpaceMB = (long)((ulong)managementObject["FreeSpace"] / 1048576UL); volumeInfo1.DriveType = (int)num1; int num2 = empty2.StartsWith(str1) ? 1 : 0; volumeInfo1.IsSystemVolume = num2 != 0; VolumeInfo volumeInfo2 = volumeInfo1; volumeInfo2.UsedSpaceMB = volumeInfo2.DiskSizeMB - volumeInfo2.FreeSpaceMB; volumeInfoList.Add(volumeInfo2); } } } } catch (Exception ex) { } } } } return(volumeInfoList.ToArray()); }
public HostCfgInfo GetCfg(string address, string username, string password) { using (IVirtualSystemManagementService managmentService = VirtualSystemManagementService.GetVirtualSystemManagmentService(this._Host)) { using (IVirtualSystemManagementServiceSettingData serviceSettingData = VirtualSystemManagementServiceSettingData.GetRelated(managmentService).FirstOrDefault <IVirtualSystemManagementServiceSettingData>()) { ManagementScope server = WMIUtils.ConnectToServer(address, username, password); ManagementObject managementObject = WMIUtils.QueryFirst(server, "Select * From Win32_ComputerSystem"); return(new HostCfgInfo() { Name = this._Host.ElementName, DefaultExternalDataRoot = serviceSettingData.DefaultExternalDataRoot, DefaultVirtualHardDiskPath = serviceSettingData.DefaultVirtualHardDiskPath, CpuNum = (long)(uint)WMIUtils.GetPropertyValue((ManagementBaseObject)managementObject, "NumberOfLogicalProcessors"), Ram = (long)(ulong)WMIUtils.GetPropertyValue((ManagementBaseObject)managementObject, "TotalPhysicalMemory"), Volumes = SystemStateReader.GetVolumes(server), VirtualSwitches = this.GetAllVirtualSwitchesWithUuid().Values.Select <IVirtualSwitch, VirtualSwitchInfo>((Func <IVirtualSwitch, VirtualSwitchInfo>)(vs => vs.GetCfg())).ToList <VirtualSwitchInfo>(), OsInfo = WMIUtils.GetOperatingSystemInfo(server) }); } } }
public OperatingSystemInfo GetOS(string address, string username, string password) { using (VirtualSystemManagementService.GetVirtualSystemManagmentService(this._Host)) return(WMIUtils.GetOperatingSystemInfo(WMIUtils.ConnectToServer(address, username, password))); }
public static SystemState GetSystemState(ManagementScope scope, ManagementScope defaultScope, string serverName, ILogger logger) { SystemState systemState = new SystemState(); try { systemState.RAM = CUtils.RoundUp(WMIUtils.GetRAM(scope) / 1048576L); systemState.CPUs = WMIUtils.GetNumberOfCPUs(scope); WMIUtils.GetOperatingSystemInfo(scope, ref systemState.OsInfo, ref systemState.SystemPath, ref systemState.SystemVolume); try { string str = CUtils.PathToUNC(serverName, systemState.SystemPath) + "\\System32\\hal.dll"; if (File.Exists(str)) { FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(str); systemState.HalInternalName = versionInfo.InternalName; systemState.HalVersion = versionInfo.FileVersion; } } catch (Exception ex) { if (logger != null) { logger.Verbose("Could not get Hal information. Exception: " + ex.Message, "SystemState"); } throw; } try { systemState.ProgramFilesPath = WMIUtils.GetRemoteRegistryValueString(defaultScope, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion", "ProgramFilesDir"); } catch (Exception ex) { if (logger != null) { logger.Verbose("Could not get \"Program Files\" path. Exception: " + ex.Message, "SystemState"); } throw; } try { systemState.NetworkAdapters = SystemStateReader.GetNetworkAdapterList(scope); } catch (Exception ex) { if (logger != null) { logger.Verbose("Could not get the logical network adpater info from " + serverName + ". Exception: " + ex.Message, "SystemState"); } throw; } try { systemState.Volumes = SystemStateReader.GetVolumes(scope); } catch (Exception ex) { if (logger != null) { logger.Verbose("Could not get the volume info from " + serverName + ". Exception: " + ex.Message, "SystemState"); } throw; } } catch (Exception ex) { if (logger != null) { logger.Verbose("Exception thrown getting the system state for server " + serverName + ". Exception: " + ex.Message, "SystemState"); } throw; } return(systemState); }