public static ICollection <HardDrive> GetHardDrives() { List <HardDrive> hddList = new List <HardDrive>(); string[] requiredProperties = new string[] { "Caption", "Model", "Signature", "Size" }; WmiClassCollection classCollection = Wmi.Query(Wmi.DISKDRIVE_CLASSNAME, requiredProperties); if (classCollection == null) { return(hddList); } foreach (WmiClass wmiClass in classCollection) { HardDrive hdd = new HardDrive( (string)wmiClass["Caption"].Value, (string)wmiClass["Model"].Value, (uint?)wmiClass["Signature"].Value, (ulong?)wmiClass["Size"].Value); hddList.Add(hdd); } return(hddList); }
public static ICollection <GraphicsCard> GetGraphicsCards() { List <GraphicsCard> gpuList = new List <GraphicsCard>(); string[] requiredProperties = new string[] { "AdapterRAM", "Caption", "Description", "Name" }; WmiClassCollection classCollection = Wmi.Query(Wmi.VIDEOCONTROLLER_CLASSNAME, requiredProperties); if (classCollection == null) { return(gpuList); } foreach (WmiClass wmiClass in classCollection) { GraphicsCard gpu = new GraphicsCard( (uint?)wmiClass["AdapterRAM"].Value, (string)wmiClass["Caption"].Value, (string)wmiClass["Description"].Value, (string)wmiClass["Name"].Value); gpuList.Add(gpu); } return(gpuList); }
// Token: 0x06000054 RID: 84 RVA: 0x00002ABC File Offset: 0x00000CBC public static ICollection <Processor> GetProcessors() { List <Processor> list = new List <Processor>(); string[] properties = new string[] { "CurrentClockSpeed", "CurrentVoltage", "Name", "Manufacturer", "NumberOfCores", "ProcessorId" }; WmiClassCollection wmiClassCollection = Wmi.Query("Win32_Processor", properties, null); bool flag = wmiClassCollection == null; ICollection <Processor> result; if (flag) { result = list; } else { foreach (WmiClass wmiClass in wmiClassCollection) { Processor item = new Processor((uint?)wmiClass["CurrentClockSpeed"].Value, (ushort?)wmiClass["CurrentVoltage"].Value, (string)wmiClass["Name"].Value, (string)wmiClass["Manufacturer"].Value, (uint?)wmiClass["NumberOfCores"].Value, (string)wmiClass["ProcessorId"].Value); list.Add(item); } result = list; } return(result); }
public static BaseBoard GetBaseBoard() { string condition = "PoweredOn = TRUE"; string[] requiredProperties = new string[] { "Model", "Product", "Name", "Manufacturer", "SerialNumber", "PoweredOn" }; WmiClassCollection classCollection = Wmi.Query(Wmi.BASEBOARD_CLASSNAME, requiredProperties, condition); if (classCollection == null || classCollection.Count == 0) { return(null); } WmiClass wmiClass = classCollection[0]; BaseBoard baseBoard = new BaseBoard( (string)wmiClass["Model"].Value, (string)wmiClass["Product"].Value, (string)wmiClass["Name"].Value, (string)wmiClass["Manufacturer"].Value, (string)wmiClass["SerialNumber"].Value); return(baseBoard); }
private async Task PollCpuUtilization() { const string query = @" SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name = '_Total'"; using (var q = Wmi.Query(Name, query)) { var data = await q.GetFirstResult(); if (data == null) { return; } CPULoad = (short)data.PercentProcessorTime; var cpuUtilization = new CPUUtilization { DateEpoch = DateTime.UtcNow.ToEpochTime(), AvgLoad = CPULoad }; UpdateHistoryStorage(CPUHistory, cpuUtilization); } }
public static ICollection <NetworkAdapter> GetNetworkAdapter() { List <NetworkAdapter> adapterList = new List <NetworkAdapter>(); string[] requiredProperties = new string[] { "Caption", "Description", "IPEnabled", "MacAddress" }; WmiClassCollection classCollection = Wmi.Query(Wmi.NETWORKADAPTER_CLASSNAME, requiredProperties); if (classCollection == null) { return(adapterList); } foreach (WmiClass wmiClass in classCollection) { NetworkAdapter adapter = new NetworkAdapter( (string)wmiClass["Caption"].Value, (string)wmiClass["Description"].Value, (bool?)wmiClass["IPEnabled"].Value, (string)wmiClass["MACAddress"].Value); adapterList.Add(adapter); } return(adapterList); }
// Token: 0x0600006B RID: 107 RVA: 0x000034C0 File Offset: 0x000016C0 public static ICollection <UserAccount> GetUsers() { List <UserAccount> list = new List <UserAccount>(); string[] properties = new string[] { "Name", "FullName", "Disabled" }; WmiClassCollection wmiClassCollection = Wmi.Query("Win32_UserAccount", properties, null); bool flag = wmiClassCollection == null; ICollection <UserAccount> result; if (flag) { result = list; } else { foreach (WmiClass wmiClass in wmiClassCollection) { UserAccount item = new UserAccount((string)wmiClass["Name"].Value, (string)wmiClass["FullName"].Value, (bool?)wmiClass["Disabled"].Value); list.Add(item); } result = list; } return(result); }
private static void QueryExample() { // Print Caption and OSArchitecture from Win32_OperatingSystem class WmiClassCollection classCollection = Wmi.Query("Win32_OperatingSystem", new string[] { "Caption", "OSArchitecture" }); foreach (WmiClass wmiClass in classCollection) { Console.WriteLine(wmiClass["Caption"].Value); Console.WriteLine(wmiClass["OSArchitecture"].Value); } // Print out all properties for all Win32_Processor classes WmiClassCollection classCollection2 = Wmi.Query("Win32_Processor"); foreach (WmiClass wmiClass in classCollection2) { foreach (WmiProperty property in wmiClass.Properties) { Console.WriteLine($"{property.Value}: {property.Name}"); } } // Get a single property from Win32_OperatingSystem string windowsName = Wmi.PropertyQuery <string>("Win32_OperatingSystem", "Caption"); Console.WriteLine(windowsName); }
private async Task PollMemoryUtilization() { const string query = @" SELECT AvailableKBytes FROM Win32_PerfFormattedData_PerfOS_Memory"; using (var q = Wmi.Query(Name, query)) { var data = await q.GetFirstResult(); if (data == null) { return; } var available = data.AvailableKBytes * 1024; MemoryUsed = TotalMemory - available; var utilization = new MemoryUtilization { DateEpoch = DateTime.UtcNow.ToEpochTime(), AvgMemoryUsed = MemoryUsed }; UpdateHistoryStorage(MemoryHistory, utilization); } }
// Token: 0x06000055 RID: 85 RVA: 0x00002C04 File Offset: 0x00000E04 public static BaseBoard GetBaseBoard() { string condition = "PoweredOn = TRUE"; string[] properties = new string[] { "Model", "Product", "Name", "Manufacturer", "SerialNumber", "PoweredOn" }; WmiClassCollection wmiClassCollection = Wmi.Query("Win32_Baseboard", properties, condition, null); bool flag = wmiClassCollection == null || wmiClassCollection.Count == 0; BaseBoard result; if (flag) { result = null; } else { WmiClass wmiClass = wmiClassCollection[0]; BaseBoard baseBoard = new BaseBoard((string)wmiClass["Model"].Value, (string)wmiClass["Product"].Value, (string)wmiClass["Name"].Value, (string)wmiClass["Manufacturer"].Value, (string)wmiClass["SerialNumber"].Value); result = baseBoard; } return(result); }
public async Task <ServiceActionResult> UpdateServiceAsync(string serviceName, NodeService.Action action) { string query = $"SELECT Name FROM Win32_Service WHERE Name = '{serviceName}'"; uint returnCode = 0; using (var q = Wmi.Query(Endpoint, query)) { foreach (var service in await q.GetDynamicResultAsync().ConfigureAwait(false)) { switch (action) { case NodeService.Action.Stop: returnCode = service.StopService(); break; case NodeService.Action.Start: returnCode = service.StartService(); break; default: throw new ArgumentOutOfRangeException(nameof(action)); } } } return(new ServiceActionResult(returnCode == 0, Win32ServiceReturnCodes[(int)returnCode])); }
private async Task PollCpuUtilization() { const string query = @"select PercentProcessorTime from Win32_PerfFormattedData_PerfOS_Processor where Name = '_Total'"; using (var q = Wmi.Query(Name, query)) { var data = await q.GetFirstResult(); if (data == null) { return; } CPULoad = (short)data.PercentProcessorTime; var cpuUtilization = new CPUUtilization { DateTime = DateTime.UtcNow, MaxLoad = CPULoad, AvgLoad = CPULoad }; AddCpuUtilization(cpuUtilization); } }
private async Task PollMemoryUtilization() { const string query = @"select AvailableKBytes from Win32_PerfFormattedData_PerfOS_Memory"; using (var q = Wmi.Query(Name, query)) { var data = await q.GetFirstResult(); if (data == null) { return; } var available = data.AvailableKBytes * 1024; MemoryUsed = TotalMemory - available; var utilization = new MemoryUtilization { DateTime = DateTime.UtcNow, MaxMemoryUsed = MemoryUsed, AvgMemoryUsed = MemoryUsed }; AddMemoryUtilization(utilization); } }
// Token: 0x0600005A RID: 90 RVA: 0x00003148 File Offset: 0x00001348 public static ICollection <NetworkAdapter> GetNetworkAdapter() { List <NetworkAdapter> list = new List <NetworkAdapter>(); string[] properties = new string[] { "Caption", "Description", "IPEnabled", "MacAddress" }; WmiClassCollection wmiClassCollection = Wmi.Query("Win32_NetworkAdapterConfiguration", properties, null); bool flag = wmiClassCollection == null; ICollection <NetworkAdapter> result; if (flag) { result = list; } else { foreach (WmiClass wmiClass in wmiClassCollection) { NetworkAdapter item = new NetworkAdapter((string)wmiClass["Caption"].Value, (string)wmiClass["Description"].Value, (bool?)wmiClass["IPEnabled"].Value, (string)wmiClass["MACAddress"].Value); list.Add(item); } result = list; } return(result); }
// Token: 0x06000052 RID: 82 RVA: 0x000028D0 File Offset: 0x00000AD0 public static ICollection <RamStick> GetRamSticks() { List <RamStick> list = new List <RamStick>(); string[] properties = new string[] { "Capacity", "ConfiguredClockSpeed", "Manufacturer", "SerialNumber", "PositionInRow" }; WmiClassCollection wmiClassCollection = Wmi.Query("Win32_PhysicalMemory", properties, null); bool flag = wmiClassCollection == null; ICollection <RamStick> result; if (flag) { result = list; } else { foreach (WmiClass wmiClass in wmiClassCollection) { RamStick item = new RamStick((ulong?)wmiClass["Capacity"].Value, (uint?)wmiClass["ConfiguredClockSpeed"].Value, (string)wmiClass["Manufacturer"].Value, (string)wmiClass["SerialNumber"].Value, (uint?)wmiClass["PositionInRow"].Value); list.Add(item); } result = list; } return(result); }
private async Task <string> GetRealAdapterName(string pnpDeviceId) { var query = $"SELECT Name FROM Win32_PnPEntity WHERE DeviceId = '{pnpDeviceId.Replace("\\", "\\\\")}'"; var data = await Wmi.Query(Endpoint, query).GetFirstResultAsync().ConfigureAwait(false); return(data?.Name); }
private async Task PollNetworkUtilizationAsync() { var utilizationTable = _canQueryAdapterUtilization ? "Win32_PerfRawData_Tcpip_NetworkAdapter" : "Win32_PerfRawData_Tcpip_NetworkInterface"; var query = $@" SELECT Name, Timestamp_Sys100NS, BytesReceivedPersec, BytesSentPersec, PacketsReceivedPersec, PacketsSentPersec FROM {utilizationTable}"; var queryTime = DateTime.UtcNow.ToEpochTime(); var combinedUtil = new Interface.InterfaceUtilization { DateEpoch = queryTime, InAvgBps = 0, OutAvgBps = 0 }; using (var q = Wmi.Query(Endpoint, query)) { foreach (var data in await q.GetDynamicResultAsync().ConfigureAwait(false)) { var perfData = new PerfRawData(this, data); var name = perfData.Identifier; var iface = Interfaces.Find(i => name == GetCounterName(i.Name)); if (iface == null) { continue; } iface.InBps = (float)perfData.GetCalculatedValue("BytesReceivedPersec", 10000000); iface.OutBps = (float)perfData.GetCalculatedValue("BytesSentPersec", 10000000); iface.InPps = (float)perfData.GetCalculatedValue("PacketsReceivedPersec", 10000000); iface.OutPps = (float)perfData.GetCalculatedValue("PacketsSentPersec", 10000000); var util = new Interface.InterfaceUtilization { DateEpoch = queryTime, InAvgBps = iface.InBps, OutAvgBps = iface.OutBps }; var netData = NetHistory.GetOrAdd(iface.Name, k => new List <Interface.InterfaceUtilization>(1024)); UpdateHistoryStorage(netData, util); if (PrimaryInterfaces.Contains(iface)) { combinedUtil.InAvgBps += util.InAvgBps; combinedUtil.OutAvgBps += util.OutAvgBps; } } } UpdateHistoryStorage(CombinedNetHistory, combinedUtil); }
public static ICollection <RamStick> GetRamSticks() { List <RamStick> ramSticks = new List <RamStick>(); string[] requiredProperties = new string[] { "Capacity", "ConfiguredClockSpeed", "Manufacturer", "SerialNumber", "PositionInRow" }; WmiClassCollection classCollection = Wmi.Query(Wmi.PHYSICALMEMORY_CLASSNAME, requiredProperties); if (classCollection == null) { return(ramSticks); } foreach (WmiClass wmiClass in classCollection) { RamStick ramStick = new RamStick( (ulong?)wmiClass["Capacity"].Value, (uint?)wmiClass["ConfiguredClockSpeed"].Value, (string)wmiClass["Manufacturer"].Value, (string)wmiClass["SerialNumber"].Value, (uint?)wmiClass["PositionInRow"].Value); ramSticks.Add(ramStick); } return(ramSticks); }
// Token: 0x06000058 RID: 88 RVA: 0x00002EC0 File Offset: 0x000010C0 public static ICollection <HardDrive> GetHardDrives() { List <HardDrive> list = new List <HardDrive>(); string[] properties = new string[] { "Caption", "Model", "Signature", "Size" }; WmiClassCollection wmiClassCollection = Wmi.Query("Win32_DiskDrive", properties, null); bool flag = wmiClassCollection == null; ICollection <HardDrive> result; if (flag) { result = list; } else { foreach (WmiClass wmiClass in wmiClassCollection) { HardDrive item = new HardDrive((string)wmiClass["Caption"].Value, (string)wmiClass["Model"].Value, (uint?)wmiClass["Signature"].Value, (ulong?)wmiClass["Size"].Value); list.Add(item); } result = list; } return(result); }
// Token: 0x06000056 RID: 86 RVA: 0x00002CF8 File Offset: 0x00000EF8 public static ICollection <GraphicsCard> GetGraphicsCards() { List <GraphicsCard> list = new List <GraphicsCard>(); string[] properties = new string[] { "AdapterRAM", "Caption", "Description", "Name" }; WmiClassCollection wmiClassCollection = Wmi.Query("Win32_VideoController", properties, null); bool flag = wmiClassCollection == null; ICollection <GraphicsCard> result; if (flag) { result = list; } else { foreach (WmiClass wmiClass in wmiClassCollection) { GraphicsCard item = new GraphicsCard((uint?)wmiClass["AdapterRAM"].Value, (string)wmiClass["Caption"].Value, (string)wmiClass["Description"].Value, (string)wmiClass["Name"].Value); list.Add(item); } result = list; } return(result); }
public static ICollection <UserAccount> GetUsers() { List <UserAccount> userList = new List <UserAccount>(); string[] requiredProperties = new string[] { "Name", "FullName", "Disabled" }; WmiClassCollection classCollection = Wmi.Query(Wmi.USERACCOUNT_CLASSNAME, requiredProperties); if (classCollection == null) { return(userList); } foreach (WmiClass wmiClass in classCollection) { UserAccount user = new UserAccount( (string)wmiClass["Name"].Value, (string)wmiClass["FullName"].Value, (bool?)wmiClass["Disabled"].Value); userList.Add(user); } return(userList); }
private async Task GetAllInterfaces() { if (KernelVersion > WindowsKernelVersions.Windows2012And8) { //ActiveMaximumTransmissionUnit //MtuSize // //Speed } else { } const string query = @"SELECT NetConnectionID, Description, Name, MACAddress, Speed FROM Win32_NetworkAdapter WHERE NetConnectionStatus = 2"; //connected adapters. //'AND PhysicalAdapter = True' causes exceptions with old windows versions. using (var q = Wmi.Query(Name, query)) { foreach (var data in await q.GetDynamicResult()) { string name = data.Name, caption = data.NetConnectionID; if (caption == "Ethernet") { caption = name; } var i = Interfaces.FirstOrDefault(x => x.Name == name && x.Caption == caption); if (i == null) { i = new Interface(); Interfaces.Add(i); } i.Alias = "!alias"; i.Caption = caption; i.FullName = data.Description; i.IfName = data.Name; i.Id = $"{Id}-Int-{Interfaces.Count + 1}"; i.NodeId = Id; i.Index = 0; i.IsTeam = false; //TODO: Fix i.LastSync = DateTime.UtcNow; i.Name = name; i.PhysicalAddress = data.MACAddress; i.Speed = data.Speed; i.Status = NodeStatus.Active; i.TypeDescription = ""; } } }
private async Task PollNetworkUtilization() { const string query = @" SELECT Name, BytesReceivedPersec, BytesSentPersec, PacketsReceivedPersec, PacketsSentPersec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface"; var queryTime = DateTime.UtcNow.ToEpochTime(); var combinedUtil = new Interface.InterfaceUtilization { DateEpoch = queryTime, InAvgBps = 0, OutAvgBps = 0 }; using (var q = Wmi.Query(Name, query)) { foreach (var data in await q.GetDynamicResult()) { if (data == null) { continue; } var iface = Interfaces.FirstOrDefault(i => data.Name == GetCounterName(i.Name)); if (iface == null) { continue; } iface.InBps = data.BytesReceivedPersec; iface.OutBps = data.BytesSentPersec; iface.InPps = data.PacketsReceivedPersec; iface.OutPps = data.PacketsSentPersec; var util = new Interface.InterfaceUtilization { DateEpoch = queryTime, InAvgBps = iface.InBps, OutAvgBps = iface.OutBps }; var netData = NetHistory.GetOrAdd(iface.Name, k => new List <Interface.InterfaceUtilization>(1024)); UpdateHistoryStorage(netData, util); if (PrimaryInterfaces.Contains(iface)) { combinedUtil.InAvgBps += util.InAvgBps; combinedUtil.OutAvgBps += util.OutAvgBps; } } } UpdateHistoryStorage(CombinedNetHistory, combinedUtil); }
private async Task GetServicesAsync() { const string query = @" SELECT Caption, Description, DisplayName, Name, Started, StartMode, StartName, State FROM Win32_Service"; // windows services using (var q = Wmi.Query(Endpoint, query)) { foreach (var service in await q.GetDynamicResultAsync().ConfigureAwait(false)) { if (ServicesPatternRegEx?.IsMatch(service.Name) ?? true) { var id = service.Name; var s = Services.Find(x => x.Id == id) ?? new NodeService(); s.Id = id; s.Caption = service.Caption; s.DisplayName = service.DisplayName; s.Description = service.Description; s.Name = service.Name; s.State = service.State; s.LastSync = DateTime.UtcNow; switch (service.State) { case "Running": s.Status = NodeStatus.Active; break; case "Stopped": s.Status = NodeStatus.Down; break; default: s.Status = NodeStatus.Unknown; break; } s.Running = service.Started; s.StartMode = service.StartMode; s.StartName = service.StartName; if (s.Node == null) { s.Node = this; Services.Add(s); } } } } }
private async Task PollVolumePerformanceUtilizationAsync() { const string query = @" SELECT Name, Timestamp_Sys100NS, DiskReadBytesPersec, DiskWriteBytesPersec FROM Win32_PerfRawData_PerfDisk_LogicalDisk"; var queryTime = DateTime.UtcNow.ToEpochTime(); var combinedUtil = new Volume.VolumePerformanceUtilization { DateEpoch = queryTime, ReadAvgBps = 0, WriteAvgBps = 0 }; using (var q = Wmi.Query(Endpoint, query)) { foreach (var data in await q.GetDynamicResultAsync().ConfigureAwait(false)) { var perfData = new PerfRawData(this, data); var name = perfData.Identifier; var iface = Volumes.Find(i => name == GetCounterName(i.Name)); if (iface == null) { continue; } iface.ReadBps = (float)perfData.GetCalculatedValue("DiskReadBytesPersec", 10000000); iface.WriteBps = (float)perfData.GetCalculatedValue("DiskWriteBytesPersec", 10000000); var util = new Volume.VolumePerformanceUtilization { DateEpoch = queryTime, ReadAvgBps = iface.ReadBps, WriteAvgBps = iface.WriteBps }; var netData = VolumePerformanceHistory.GetOrAdd(iface.Name, k => new List <Volume.VolumePerformanceUtilization>(1024)); UpdateHistoryStorage(netData, util); //if (PrimaryInterfaces.Contains(iface)) { combinedUtil.ReadAvgBps += util.ReadAvgBps; combinedUtil.WriteAvgBps += util.WriteAvgBps; } } } UpdateHistoryStorage(CombinedVolumePerformanceHistory, combinedUtil); }
private async Task UpdateNodeDataAsync() { const string machineQuery = @"select DNSHostName, Domain, Manufacturer, Model from Win32_ComputerSystem"; using (var q = Wmi.Query(Endpoint, machineQuery)) { var data = await q.GetFirstResultAsync().ConfigureAwait(false); if (data == null) { return; } Model = data.Model; Manufacturer = data.Manufacturer; // Only use domain if we're on one - not for things like workgroups Name = MachineDomainName.HasValue() && data.Domain != MachineDomainName ? $"{data.DNSHostName}.{data.Domain}" : data.DNSHostName; } const string query = @"select Caption, LastBootUpTime, Version, FreePhysicalMemory, TotalVisibleMemorySize, Version from Win32_OperatingSystem"; using (var q = Wmi.Query(Endpoint, query)) { var data = await q.GetFirstResultAsync().ConfigureAwait(false); if (data == null) { return; } LastBoot = ManagementDateTimeConverter.ToDateTime(data.LastBootUpTime); TotalMemory = data.TotalVisibleMemorySize * 1024; MemoryUsed = TotalMemory - data.FreePhysicalMemory * 1024; KernelVersion = Version.Parse(data.Version); MachineType = data.Caption.ToString() + " " + data.Version.ToString(); } LastSync = DateTime.UtcNow; Status = NodeStatus.Active; }
// Token: 0x0600006A RID: 106 RVA: 0x000033B0 File Offset: 0x000015B0 public static ICollection <SecurityProduct> GetSecurityProducts(SecurityProductType productType) { List <SecurityProduct> list = new List <SecurityProduct>(); ManagementScope scope = new ManagementScope(SecurityGatherer.SecurityScope); string[] properties = new string[] { "displayName", "pathToSignedProductExe" }; WmiClassCollection wmiClassCollection; switch (productType) { case SecurityProductType.AntiVirus: wmiClassCollection = Wmi.Query("AntivirusProduct", properties, scope); break; case SecurityProductType.AntiSpyware: wmiClassCollection = Wmi.Query("AntiSpyWareProduct", properties, scope); break; case SecurityProductType.Firewall: wmiClassCollection = Wmi.Query("FirewallProduct", properties, scope); break; default: wmiClassCollection = null; break; } bool flag = wmiClassCollection == null; ICollection <SecurityProduct> result; if (flag) { result = list; } else { foreach (WmiClass wmiClass in wmiClassCollection) { SecurityProduct item = new SecurityProduct((string)wmiClass["displayName"].Value, (string)wmiClass["pathToSignedProductExe"].Value); list.Add(item); } result = list; } return(result); }
private async Task UpdateNodeData() { const string machineQuery = @"select DNSHostName, Manufacturer, Model from Win32_ComputerSystem"; using (var q = Wmi.Query(Name, machineQuery)) { var data = await q.GetFirstResult(); if (data == null) { return; } Model = data.Model; Manufacturer = data.Manufacturer; Name = data.DNSHostName; } const string query = @"select Caption, LastBootUpTime, Version, FreePhysicalMemory, TotalVisibleMemorySize, Version from Win32_OperatingSystem"; using (var q = Wmi.Query(Name, query)) { var data = await q.GetFirstResult(); if (data == null) { return; } LastBoot = ManagementDateTimeConverter.ToDateTime(data.LastBootUpTime); TotalMemory = data.TotalVisibleMemorySize * 1024; MemoryUsed = TotalMemory - data.FreePhysicalMemory * 1024; KernelVersion = Version.Parse(data.Version); MachineType = data.Caption.ToString() + " " + data.Version.ToString(); } LastSync = DateTime.UtcNow; Status = NodeStatus.Active; }
public static ICollection <SecurityProduct> GetSecurityProducts(SecurityProductType productType) { List <SecurityProduct> productList = new List <SecurityProduct>(); ManagementScope scope = new ManagementScope(SecurityScope); string[] requiredProperties = new string[] { "displayName", "pathToSignedProductExe" }; WmiClassCollection classCollection; switch (productType) { case SecurityProductType.AntiVirus: classCollection = Wmi.Query(Wmi.ANTIVIRUS_CLASSNAME, requiredProperties, scope); break; case SecurityProductType.AntiSpyware: classCollection = Wmi.Query(Wmi.ANTISPYWARE_CLASSNAME, requiredProperties, scope); break; case SecurityProductType.Firewall: classCollection = Wmi.Query(Wmi.FIREWALL_CLASSNAME, requiredProperties, scope); break; default: classCollection = null; break; } if (classCollection == null) { return(productList); } foreach (WmiClass wmiClass in classCollection) { SecurityProduct product = new SecurityProduct( (string)wmiClass["displayName"].Value, (string)wmiClass["pathToSignedProductExe"].Value); productList.Add(product); } return(productList); }
private async Task <bool> GetCanQueryAdapterUtilization() { // it's much faster trying to query something potentially non existent and catching an exception than to query the "meta_class" table. const string query = "SELECT name FROM Win32_PerfRawData_Tcpip_NetworkAdapter"; try { using (var q = Wmi.Query(Endpoint, query)) { await q.GetFirstResultAsync().ConfigureAwait(false); } } catch { return(false); } return(true); }