一、計算機操作系統信息
(1)獲取操作系統版本描述

/// <summary> /// 操作系統版本 /// </summary> public static string OSDescription { get; } = System.Runtime.InteropServices.RuntimeInformation.OSDescription;
(2)獲取操作系統架構

/// <summary> /// 操作系統架構(<see cref="Architecture">) /// </summary> public static string OSArchitecture { get; } = System.Runtime.InteropServices.RuntimeInformation.OSArchitecture.ToString();
(3)判斷操作系統是否為指定的操作系統

/// <summary> /// 是否為Windows操作系統 /// </summary> public static bool IsOSPlatform { get; } = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows);
二、計算機基本系統信息
通過 VMI中的 ManagementClass 類輸入路徑 “Win32_ComputerSystemProduct”,可獲取電腦型號、UUID等基本信息,全部如下:

/// <summary> /// 電腦型號 // Caption:計算機系統產品 // Description:計算機系統產品 // ElementName: // IdentifyingNumber:CND0162XZ1 // InstanceID: // Name:HP ENVY x360 Convertible 15-ed0xxx // SKUNumber: // UUID:A6C31C0E-997C-EA11-8104-B05CDA905B6C // Vendor:HP // Version:Type1ProductConfigId // WarrantyDuration: // WarrantyStartDate: /// </summary> /// <returns></returns> public static string GetComputerVersion() { var version = new StringBuilder(); var moc = new ManagementClass("Win32_ComputerSystemProduct").GetInstances(); foreach (ManagementObject mo in moc) { foreach (var item in mo.Properties) { version.Append($"{item.Name}:{item.Value}\r\n"); } } return version.ToString(); ; }
三、計算機主板信息
通過 VMI中的 ManagementClass 類輸入路徑 “Win32_BaseBoard”,可獲取主板型號、主板標識等基本信息,全部如下:

/// <summary> /// 主板信息 // Caption:簡短說明 // ConfigOptions:數組,表示位於在底板上跳線和開關的配置 // CreationClassName:表示類的名稱(就是Win32_baseboard類) // Depth:對象的描述(底板) // Description:基板 // Height: // HostingBoard:如果為TRUE,該卡是一個主板,或在一個機箱中的基板。 // HotSwappable:如果為TRUE,就是支持熱插拔(判斷是否支持熱插拔) // InstallDate: // Manufacturer:表示制造商的名稱 // Model: // Name:對象的名稱標簽 // OtherIdentifyingInfo: // PartNumber: // PoweredOn:如果為真,物理元素處於開機狀態 // Product:產品的型號 // Removable:判斷是否可拆卸的 // Replaceable:判斷是否可更換的 // RequirementsDescription: // RequiresDaughterBoard:False // SerialNumber:制造商分配的用於識別所述物理元件數目 // SKU: // SlotLayout: // SpecialRequirements: // Status:對象的當前狀態 // Tag:符系統的基板唯一標識 // Version:08.32 // Weight: // Width: /// </summary> /// <returns></returns> public static string GetBaseBoardInfo() { var baseBoard = new StringBuilder(); var moc = new ManagementClass("Win32_BaseBoard").GetInstances(); foreach (ManagementObject mo in moc) { foreach (var item in mo.Properties) { baseBoard.Append($"{item.Name}:{item.Value}\r\n"); } } return baseBoard.ToString(); }
四、計算機處理器信息
通過 VMI中的 ManagementClass 類輸入路徑 “Win32_Processor”,可獲取CPU個數、最高主頻、當前主頻等基本信息,全部如下:

/// <summary> /// 處理器信息(<see cref="https://www.cnblogs.com/zhesong/p/wmiid.html">) // AddressWidth:在32位操作系統,該值是32,在64位操作系統是64 // Architecture:所使用的平台的處理器架構 // AssetTag:代表該處理器的資產標簽 // Availability:設備的狀態 // Caption:設備的簡短描述 // Characteristics:處理器支持定義的功能 // ConfigManagerErrorCode:Windows API的配置管理器錯誤代碼 // ConfigManagerUserConfig:如果為TRUE,該裝置是使用用戶定義的配置 // CpuStatus:處理器的當前狀態 // CreationClassName:出現在用來創建一個實例繼承鏈的第一個具體類的名稱 // CurrentClockSpeed:處理器的當前速度,以MHz為單位 // CurrentVoltage:處理器的電壓。如果第八位被設置,位0-6包含電壓乘以10,如果第八位沒有置位,則位在VoltageCaps設定表示的電壓值。 CurrentVoltage時SMBIOS指定的電壓值只設置 // DataWidth:在32位處理器,該值是32,在64位處理器是64 // Description:描述 // DeviceID:在系統上的處理器的唯一標識符 // ErrorCleared:如果為真,報上一個錯誤代碼的被清除 // ErrorDescription:錯誤的代碼描述 // ExtClock:外部時鍾頻率,以MHz為單位 // Family:處理器系列類型 // InstallDate:安裝日期 // L2CacheSize:二級緩存大小 // L2CacheSpeed:二級緩存處理器的時鍾速度 // L3CacheSize:三級緩存大小 // L3CacheSpeed:三級緩存處理器的時鍾速度 // LastErrorCode:報告的邏輯設備上一個錯誤代碼 // Level:處理器類型的定義。該值取決於處理器的體系結構 // LoadPercentage:每個處理器的負載能力,平均到最后一秒 // Manufacturer:處理器的制造商 // MaxClockSpeed:處理器的最大速度,以MHz為單位 // Name:處理器的名稱 // NumberOfCores:處理器的當前實例的數目。核心是在集成電路上的物理處理器 // NumberOfEnabledCore:每個處理器插槽啟用的內核數 // NumberOfLogicalProcessors:用於處理器的當前實例邏輯處理器的數量 // OtherFamilyDescription:處理器系列類型 // PartNumber:這款處理器的產品編號制造商所設置 // PNPDeviceID:即插即用邏輯設備的播放設備標識符 // PowerManagementCapabilities:邏輯設備的特定功率相關的能力陣列 // PowerManagementSupported:如果為TRUE,該裝置的功率可以被管理,這意味着它可以被放入掛起模式 // ProcessorId:描述處理器功能的處理器的信息 // ProcessorType:處理器的主要功能 // Revision:系統修訂級別取決於體系結構 // Role:所述處理器的作用 // SecondLevelAddressTranslationExtensions:如果為True,該處理器支持用於虛擬地址轉換擴展 // SerialNumber:處理器的序列號 // SocketDesignation:芯片插座的線路上使用的類型 // Status:對象的當前狀態 // StatusInfo:對象的當前狀態信息 // Stepping:在處理器家族處理器的版本 // SystemCreationClassName:創建類名屬性的作用域計算機的價值 // SystemName:系統的名稱 // ThreadCount:每個處理器插槽的線程數 // UniqueId:全局唯一標識符的處理器 // UpgradeMethod:CPU插槽的信息 // Version:依賴於架構處理器的版本號 // VirtualizationFirmwareEnabled:如果真,固件可以虛擬化擴展 // VMMonitorModeExtensions:如果為True,該處理器支持Intel或AMD虛擬機監控器擴展。 // VoltageCaps:該處理器的電壓的能力 /// </summary> /// <returns></returns> public static string GetCPUInfo() { var cpu = new StringBuilder(); var moc = new ManagementClass("Win32_Processor").GetInstances(); foreach (var mo in moc) { foreach (var item in mo.Properties) { cpu.Append($"{item.Name}:{item.Value}\r\n"); } } return cpu.ToString(); }
五、計算機內存信息
通過 VMI中的 ManagementClass 類輸入路徑 “Win32_PhysicalMemory”,可獲取內存總大小等基本信息,輸入路徑 “Win32_PerfRawData_PerfOS_Memory”,可獲取可利用內存大小等基本信息,全部如下:

/// <summary> /// 內存信息(<see cref="https://www.cnblogs.com/zhesong/p/wmiid.html">) // Attributes:1 // BankLabel:BANK 2 // Capacity:獲取內存容量(單位KB) // Caption:物理內存還虛擬內存 // ConfiguredClockSpeed:配置時鍾速度 // ConfiguredVoltage:配置電壓 // CreationClassName:創建類名 // DataWidth:獲取內存帶寬 // Description:描述 // DeviceLocator:獲取設備定位器 // FormFactor:構成因素 // HotSwappable:是否支持熱插拔 // InstallDate:安裝日期 // InterleaveDataDepth:數據交錯深度 // InterleavePosition:數據交錯的位置 // Manufacturer:生產商 // MaxVoltage:最大電壓 // MemoryType:內存類型 // MinVoltage:最小電壓 // Model:型號 // Name:名字 // OtherIdentifyingInfo:其他識別信息 // PartNumber:零件編號 // PositionInRow:行位置 // PoweredOn:是否接通電源 // Removable:是否可拆卸 // Replaceable:是否可更換 // SerialNumber:編號 // SKU:SKU號 // SMBIOSMemoryType:SMBIOS內存類型 // Speed:速率 // Status:狀態 // Tag:唯一標識符的物理存儲器 // TotalWidth:總寬 // TypeDetail:類型詳細信息 // Version:版本信息 // AvailableBytes:可利用內存大小(B) // AvailableKBytes:可利用內存大小(KB) // AvailableMBytes:可利用內存大小(MB) // CacheBytes:125460480 // CacheBytesPeak:392294400 // CacheFaultsPersec:70774721 // Caption: // CommitLimit:31939616768 // CommittedBytes:20280020992 // DemandZeroFaultsPersec:759274721 // Description: // FreeAndZeroPageListBytes:2097152 // FreeSystemPageTableEntries:12528527 // Frequency_Object:0 // Frequency_PerfTime:10000000 // Frequency_Sys100NS:10000000 // LongTermAverageStandbyCacheLifetimes:14400 // ModifiedPageListBytes:41500672 // Name: // PageFaultsPersec:1560432075 // PageReadsPersec:19173703 // PagesInputPersec:98834167 // PagesOutputPersec:25921396 // PagesPersec:124755563 // PageWritesPersec:103362 // PercentCommittedBytesInUse:2727084283 // PercentCommittedBytesInUse_Base:4294967295 // PoolNonpagedAllocs:0 // PoolNonpagedBytes:798519296 // PoolPagedAllocs:0 // PoolPagedBytes:709898240 // PoolPagedResidentBytes:496873472 // StandbyCacheCoreBytes:247545856 // StandbyCacheNormalPriorityBytes:847036416 // StandbyCacheReserveBytes:0 // SystemCacheResidentBytes:125460480 // SystemCodeResidentBytes:0 // SystemCodeTotalBytes:0 // SystemDriverResidentBytes:17592179236864 // SystemDriverTotalBytes:16953344 // Timestamp_Object:0 // Timestamp_PerfTime:5838028983825 // Timestamp_Sys100NS:132532052633540000 // TransitionFaultsPersec:792343233 // TransitionPagesRePurposedPersec:78554340 // WriteCopiesPersec:17253788 /// </summary> /// <returns></returns> public static string GetRAMInfo() { var ram = new StringBuilder(); var searcher = new ManagementObjectSearcher() { Query = new SelectQuery("Win32_PhysicalMemory"), }.Get().GetEnumerator(); while (searcher.MoveNext()) { ManagementBaseObject baseObj = searcher.Current; foreach (var item in baseObj.Properties) { ram.Append($"{item.Name}:{item.Value}\r\n"); } } searcher = new ManagementObjectSearcher() { Query = new SelectQuery("Win32_PerfRawData_PerfOS_Memory"), }.Get().GetEnumerator(); while (searcher.MoveNext()) { ManagementBaseObject baseObj = searcher.Current; foreach (var item in baseObj.Properties) { ram.Append($"{item.Name}:{item.Value}\r\n"); } } return ram.ToString(); }
六、計算機顯卡信息
通過 VMI中的 ManagementClass 類輸入路徑 “Win32_VideoController”,可獲取顯卡類型、屏幕分辨率等基本信息,全部如下:

/// <summary> /// 顯卡信息 // AcceleratorCapabilities: // AdapterCompatibility:Intel Corporation // AdapterDACType:Internal // AdapterRAM:1073741824 // Availability:3 // CapabilityDescriptions: // Caption:Intel(R) UHD Graphics // ColorTableEntries: // ConfigManagerErrorCode:0 // ConfigManagerUserConfig:False // CreationClassName:Win32_VideoController // CurrentBitsPerPixel:32 // CurrentHorizontalResolution:1920 // CurrentNumberOfColors:4294967296 // CurrentNumberOfColumns:0 // CurrentNumberOfRows:0 // CurrentRefreshRate:60 // CurrentScanMode:4 // CurrentVerticalResolution:1080 // Description:Intel(R) UHD Graphics // DeviceID:VideoController1 // DeviceSpecificPens: // DitherType:0 // DriverDate:20200109000000.000000-000 // DriverVersion:26.20.100.7755 // ErrorCleared: // ErrorDescription: // ICMIntent: // ICMMethod: // InfFilename:oem41.inf // InfSection:iCML_w10_DS // InstallDate: // InstalledDisplayDrivers:C:\windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d512f7a0dbcb7a2f\igdumdim64.dll,C:\windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d512f7a0dbcb7a2f\igd10iumd64.dll,C:\windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d512f7a0dbcb7a2f\igd10iumd64.dll,C:\windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d512f7a0dbcb7a2f\igd12umd64.dll // LastErrorCode: // MaxMemorySupported: // MaxNumberControlled: // MaxRefreshRate:75 // MinRefreshRate:50 // Monochrome:False // Name:Intel(R) UHD Graphics // NumberOfColorPlanes: // NumberOfVideoPages: // PNPDeviceID:PCI\VEN_8086&DEV_9B41&SUBSYS_8757103C&REV_02\3&11583659&2&10 // PowerManagementCapabilities: // PowerManagementSupported: // ProtocolSupported: // ReservedSystemPaletteEntries: // SpecificationVersion: // Status:OK // StatusInfo: // SystemCreationClassName:Win32_ComputerSystem // SystemName:DESKTOP-OLA70V5 // SystemPaletteEntries: // TimeOfLastReset: // VideoArchitecture:5 // VideoMemoryType:2 // VideoMode: // VideoModeDescription:屏幕描述 // VideoProcessor:Intel(R) UHD Graphics Family // AcceleratorCapabilities: // AdapterCompatibility:NVIDIA // AdapterDACType:Integrated RAMDAC // AdapterRAM:4293918720 // Availability:8 // CapabilityDescriptions: // Caption:顯卡描述 // ColorTableEntries: // ConfigManagerErrorCode:0 // ConfigManagerUserConfig:False // CreationClassName:Win32_VideoController // CurrentBitsPerPixel: // CurrentHorizontalResolution: // CurrentNumberOfColors: // CurrentNumberOfColumns: // CurrentNumberOfRows: // CurrentRefreshRate: // CurrentScanMode: // CurrentVerticalResolution: // Description:NVIDIA GeForce MX330 // DeviceID:VideoController2 // DeviceSpecificPens: // DitherType: // DriverDate:20200923000000.000000-000 // DriverVersion:27.21.14.5241 // ErrorCleared: // ErrorDescription: // ICMIntent: // ICMMethod: // InfFilename:oem123.inf // InfSection:Section043 // InstallDate: // InstalledDisplayDrivers:C:\windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_c87780efe1918cc5\nvldumdx.dll,C:\windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_c87780efe1918cc5\nvldumdx.dll,C:\windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_c87780efe1918cc5\nvldumdx.dll,C:\windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_c87780efe1918cc5\nvldumdx.dll // LastErrorCode: // MaxMemorySupported: // MaxNumberControlled: // MaxRefreshRate: // MinRefreshRate: // Monochrome:False // Name:NVIDIA GeForce MX330 // NumberOfColorPlanes: // NumberOfVideoPages: // PNPDeviceID:PCI\VEN_10DE&DEV_1D16&SUBSYS_8757103C&REV_A1\4&24375CB2&0&00E0 // PowerManagementCapabilities: // PowerManagementSupported: // ProtocolSupported: // ReservedSystemPaletteEntries: // SpecificationVersion: // Status:OK // StatusInfo: // SystemCreationClassName:Win32_ComputerSystem // SystemName:DESKTOP-OLA70V5 // SystemPaletteEntries: // TimeOfLastReset: // VideoArchitecture:5 // VideoMemoryType:2 // VideoMode: // VideoModeDescription: // VideoProcessor:GeForce MX330 /// </summary> /// <returns></returns> public static string GetGPUInfo() { var gpu = new StringBuilder(); var moc = new ManagementObjectSearcher("select * from Win32_VideoController").Get(); foreach (var mo in moc) { foreach (var item in mo.Properties) { gpu.Append($"{item.Name}:{item.Value}\r\n"); } } return gpu.ToString(); ; }
七、計算機硬盤信息
通過 VMI中的 ManagementClass 類輸入路徑 “Win32_LogicalDisk”,可獲取硬盤分區名稱、各分區總容量、可利用容量,全部如下:

/// <summary> /// 硬盤驅動器信息(<see cref="https://www.cnblogs.com/zhesong/p/wmiid.html">) // Access:0 // Availability: // BlockSize: // Caption:硬盤描述,例如“C:” // Compressed:False // ConfigManagerErrorCode:Windows配置管理器錯誤代碼 // ConfigManagerUserConfig:如果為True,該設備使用用戶定義的配置 // CreationClassName:Win32_LogicalDisk // Description:本地固定磁盤 // DeviceID:磁盤驅動器與系統中的其他設備的唯一標識符,例如“C:” // DriveType:3 // ErrorCleared:如果為True,報告LastErrorCode錯誤現已清除 // ErrorDescription:關於可能采取的糾正措施記錄在LastErrorCode錯誤,和信息的詳細信息 // ErrorMethodology:誤差檢測和校正的類型被此設備支持 // FileSystem:NTFS // FreeSpace:可使用硬盤大小 // InstallDate: // LastErrorCode: // MaximumComponentLength:255 // MediaType:由該設備使用或訪問的媒體類型 // Name:硬盤名字 // NumberOfBlocks: // PNPDeviceID:即插即用邏輯設備的播放設備標識符 // PowerManagementCapabilities: // PowerManagementSupported: // ProviderName: // Purpose: // QuotasDisabled:True // QuotasIncomplete:False // QuotasRebuilding:False // Size:硬盤總大小 // Status:對象的當前狀態 // StatusInfo:邏輯設備的狀態 // SupportsDiskQuotas:True // SupportsFileBasedCompression:True // SystemCreationClassName:Win32_ComputerSystem // SystemName:DESKTOP-OLA70V5 // VolumeDirty:False // VolumeName:Windows // VolumeSerialNumber:硬盤的序列號 /// </summary> /// <returns></returns> public static string GetDiskInfo() { var disk = new StringBuilder(); var moc = new ManagementClass("Win32_LogicalDisk").GetInstances(); foreach (ManagementObject mo in moc) { foreach (var item in mo.Properties) { disk.Append($"{item.Name}:{item.Value}\r\n"); } } return disk.ToString(); }
github地址:https://github.com/Dwayne112401/ComputerInfo.git