2025年11月

在解决方案--引用--右键--添加引用---程序集---框架---勾选System.Management

 

前言: 
我们在很多情况下想要获得计算机的硬件或操作系统的信息,比如获得CPU序列号给自己的软件添加机器码锁绑定指定电脑。又或者想要获得硬盘分区,声卡显卡等信息。

开篇:

我们用到的主要类是ManagementObjectSearcher,该类在System.Management命名空间下。 
有时候我们可以通过Environment获得一些简单的系统信息。 
如:Environment.MachineName;获得计算机名。 
Environment.UserName;获得操作系统登录用户名。 
不过在这篇文章中主要讨论ManagementObjectSearcher获取计算机硬件及操作系统的信息。

用法步骤:


添加引用:System.Management

引入命名空间:using System.Management;

创建ManagementObjectSearcher对象

anagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + Key);

其中的key见下面key列表:

通过searcher.Get()获得ManagementObjectCollection集合

遍历ManagementObjectCollection集合获得ManagementObject

通过managementObject[name]或ManagementObject.GetPropertyValue(name)获得想要的属性

若不知道这里的name该写什么可以遍历打印一下:

 

 

获取USB设备是我目前正在使用的代码, 其中的%USB%更换成你想获取的特征字段

文章最下方列出  Win32_PnPEntity 可获取的全部字段

复制代码

// 获取USB设备
      Button_Click( usbDevices = ( usbDevice  List<USBDeviceInfo><USBDeviceInfo> devices =  List<USBDeviceInfo> ( searcher =  (ManagementObjectCollection collection = ( device )device.GetPropertyValue()device.GetPropertyValue()device.GetPropertyValue()device.GetPropertyValue( USBDeviceInfo( name,  deviceID,  pnpDeviceID, .Name =.DeviceID =.PNPDeviceID =.Description =  Name { ;    DeviceID { ;    PNPDeviceID { ;    Description { ;

复制代码

 

复制代码

foreach (var property in managementObject.Properties)
{
Console.WriteLine(property.Name+":"+property.Value);
}
示例://获取CPU序列号public string GetCPUSerialNumber()
{try{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Processor");string sCPUSerialNumber = "";foreach (ManagementObject mo in searcher.Get())
{
sCPUSerialNumber = mo["ProcessorId"].ToString().Trim();break;
}return sCPUSerialNumber;
}catch{return "";
}
}//获取主板序列号public string GetBIOSSerialNumber()
{try{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_BIOS");string sBIOSSerialNumber = "";foreach (ManagementObject mo in searcher.Get())
{
sBIOSSerialNumber = mo.GetPropertyValue("SerialNumber").ToString().Trim();break;
}return sBIOSSerialNumber;
}catch{return "";
}
} 
//获取硬盘序列号public string GetHardDiskSerialNumber()
{try{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");string sHardDiskSerialNumber = "";foreach (ManagementObject mo in searcher.Get())
{
sHardDiskSerialNumber = mo["SerialNumber"].ToString().Trim();break;
}return sHardDiskSerialNumber;
}catch{return "";
}
}//获取网卡地址public string GetNetCardMACAddress()
{try{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");string NetCardMACAddress = "";foreach (ManagementObject mo in searcher.Get())
{
NetCardMACAddress = mo["MACAddress"].ToString().Trim();break;
}return NetCardMACAddress;
}catch{return "";
}
}

复制代码

 

常用Key值:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + Key);

// 硬件

Win32_Processor, // CPU 处理器

Win32_PhysicalMemory, // 物理内存条

Win32_Keyboard, // 键盘

Win32_PointingDevice, // 点输入设备,包括鼠标。

Win32_FloppyDrive, // 软盘驱动器

Win32_DiskDrive, // 硬盘驱动器

Win32_CDROMDrive, // 光盘驱动器

Win32_BaseBoard, // 主板

Win32_BIOS, // BIOS 芯片

Win32_ParallelPort, // 并口

Win32_SerialPort, // 串口

Win32_SerialPortConfiguration, // 串口配置

Win32_SoundDevice, // 多媒体设置,一般指声卡。

Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)

Win32_USBController, // USB 控制器
Win32_USBHub, // USB hub

Win32_NetworkAdapter, // 网络适配器

Win32_NetworkAdapterConfiguration, // 网络适配器设置

Win32_Printer, // 打印机

Win32_PrinterConfiguration, // 打印机设置

Win32_PrintJob, // 打印机任务

Win32_TCPIPPrinterPort, // 打印机端口

Win32_POTSModem, // MODEM

Win32_POTSModemToSerialPort, // MODEM 端口

Win32_DesktopMonitor, // 显示器

Win32_DisplayConfiguration, // 显卡

Win32_DisplayControllerConfiguration, // 显卡设置

Win32_VideoController, // 显卡细节。

Win32_VideoSettings, // 显卡支持的显示模式。

// 操作系统

Win32_TimeZone, // 时区

Win32_SystemDriver, // 驱动程序

Win32_DiskPartition, // 磁盘分区

Win32_LogicalDisk, // 逻辑磁盘

Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。

Win32_LogicalMemoryConfiguration, // 逻辑内存配置

Win32_PageFile, // 系统页文件信息

Win32_PageFileSetting, // 页文件设置

Win32_BootConfiguration, // 系统启动配置

Win32_ComputerSystem, // 计算机信息简要

Win32_OperatingSystem, // 操作系统信息

Win32_StartupCommand, // 系统自动启动程序

Win32_Service, // 系统安装的服务

Win32_Group, // 系统管理组

Win32_GroupUser, // 系统组帐号

Win32_UserAccount, // 用户帐号

Win32_Process, // 系统进程

Win32_Thread, // 系统线程

Win32_Share, // 共享

Win32_NetworkClient, // 已安装的网络客户端

Win32_NetworkProtocol, // 已安装的网络协议

所有Key:

Win32_1394Controller

Win32_1394ControllerDevice

Win32_Account

Win32_AccountSID

Win32_ACE

Win32_ActionCheck

Win32_AllocatedResource

Win32_ApplicationCommandLine

Win32_ApplicationService

Win32_AssociatedBattery

Win32_AssociatedProcessorMemory

Win32_BaseBoard

Win32_BaseService

Win32_Battery

Win32_Binary

Win32_BindImageAction

Win32_BIOS

Win32_BootConfiguration

Win32_Bus

Win32_CacheMemory

Win32_CDROMDrive

Win32_CheckCheck

Win32_CIMLogicalDeviceCIMDataFile

Win32_ClassicCOMApplicationClasses

Win32_ClassicCOMClass

Win32_ClassicCOMClassSetting

Win32_ClassicCOMClassSettings

Win32_ClassInfoAction

Win32_ClientApplicationSetting

Win32_CodecFile

Win32_COMApplication

Win32_COMApplicationClasses

Win32_COMApplicationSettings

Win32_COMClass

Win32_ComClassAutoEmulator

Win32_ComClassEmulator

Win32_CommandLineAccess

Win32_ComponentCategory

Win32_ComputerSystem

Win32_ComputerSystemProcessor

Win32_ComputerSystemProduct

Win32_COMSetting

Win32_Condition

Win32_CreateFolderAction

Win32_CurrentProbe

Win32_DCOMApplication

Win32_DCOMApplicationAccessAllowedSetting

Win32_DCOMApplicationLaunchAllowedSetting

Win32_DCOMApplicationSetting

Win32_DependentService

Win32_Desktop

Win32_DesktopMonitor

Win32_DeviceBus

Win32_DeviceMemoryAddress

Win32_DeviceSettings

Win32_Directory

Win32_DirectorySpecification

Win32_DiskDrive

Win32_DiskDriveToDiskPartition

Win32_DiskPartition

Win32_DisplayConfiguration

Win32_DisplayControllerConfiguration

Win32_DMAChannel

Win32_DriverVXD

Win32_DuplicateFileAction

Win32_Environment

Win32_EnvironmentSpecification

Win32_ExtensionInfoAction

Win32_Fan

Win32_FileSpecification

Win32_FloppyController

Win32_FloppyDrive

Win32_FontInfoAction

Win32_Group

Win32_GroupUser

Win32_HeatPipe

Win32_IDEController

Win32_IDEControllerDevice

Win32_ImplementedCategory

Win32_InfraredDevice

Win32_IniFileSpecification

Win32_InstalledSoftwareElement

Win32_IRQResource

Win32_Keyboard

Win32_LaunchCondition

Win32_LoadOrderGroup

Win32_LoadOrderGroupServiceDependencies

Win32_LoadOrderGroupServiceMembers

Win32_LogicalDisk

Win32_LogicalDiskRootDirectory

Win32_LogicalDiskToPartition

Win32_LogicalFileAccess

Win32_LogicalFileAuditing

Win32_LogicalFileGroup

Win32_LogicalFileOwner

Win32_LogicalFileSecuritySetting

Win32_LogicalMemoryConfiguration

Win32_LogicalProgramGroup

Win32_LogicalProgramGroupDirectory

Win32_LogicalProgramGroupItem

Win32_LogicalProgramGroupItemDataFile

Win32_LogicalShareAccess

Win32_LogicalShareAuditing

Win32_LogicalShareSecuritySetting

Win32_ManagedSystemElementResource

Win32_MemoryArray

Win32_MemoryArrayLocation

Win32_MemoryDevice

Win32_MemoryDeviceArray

Win32_MemoryDeviceLocation

Win32_MethodParameterClass

Win32_MIMEInfoAction

Win32_MotherboardDevice

Win32_MoveFileAction

Win32_MSIResource

Win32_networkAdapter

Win32_networkAdapterConfiguration

Win32_networkAdapterSetting

Win32_networkClient

Win32_networkConnection

Win32_networkLoginProfile

Win32_networkProtocol

Win32_NTEventlogFile

Win32_NTLogEvent

Win32_NTLogEventComputer

Win32_NTLogEventLog

Win32_NTLogEventUser

Win32_ODBCAttribute

Win32_ODBCDataSourceAttribute

Win32_ODBCDataSourceSpecification

Win32_ODBCDriverAttribute

Win32_ODBCDriverSoftwareElement

Win32_ODBCDriverSpecification

Win32_ODBCSourceAttribute

Win32_ODBCTranslatorSpecification

Win32_OnBoardDevice

Win32_OperatingSystem

Win32_OperatingSystemQFE

Win32_OSRecoveryConfiguration

Win32_PageFile

Win32_PageFileElementSetting

Win32_PageFileSetting

Win32_PageFileUsage

Win32_ParallelPort

Win32_Patch

Win32_PatchFile

Win32_PatchPackage

Win32_PCMCIAController

Win32_Perf

Win32_PerfRawData

Win32_PerfRawData_ASP_ActiveServerPages

Win32_PerfRawData_ASPnet_114322_ASPnetAppsv114322

Win32_PerfRawData_ASPnet_114322_ASPnetv114322

Win32_PerfRawData_ASPnet_ASPnet

Win32_PerfRawData_ASPnet_ASPnetApplications

Win32_PerfRawData_IAS_IASAccountingClients

Win32_PerfRawData_IAS_IASAccountingServer

Win32_PerfRawData_IAS_IASAuthenticationClients

Win32_PerfRawData_IAS_IASAuthenticationServer

Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal

Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator

Win32_PerfRawData_MSFTPSVC_FTPService

Win32_PerfRawData_MSSQLSERVER_SQLServerAccessMethods

Win32_PerfRawData_MSSQLSERVER_SQLServerBackupDevice

Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager

Win32_PerfRawData_MSSQLSERVER_SQLServerBufferPartition

Win32_PerfRawData_MSSQLSERVER_SQLServerCacheManager

Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases

Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics

Win32_PerfRawData_MSSQLSERVER_SQLServerLatches

Win32_PerfRawData_MSSQLSERVER_SQLServerLocks

Win32_PerfRawData_MSSQLSERVER_SQLServerMemoryManager

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationAgents

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationDist

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationLogreader

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationMerge

Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationSnapshot

Win32_PerfRawData_MSSQLSERVER_SQLServerSQLStatistics

Win32_PerfRawData_MSSQLSERVER_SQLServerUserSettable

Win32_PerfRawData_netFramework_netCLRExceptions

Win32_PerfRawData_netFramework_netCLRInterop

Win32_PerfRawData_netFramework_netCLRJit

Win32_PerfRawData_netFramework_netCLRLoading

Win32_PerfRawData_netFramework_netCLRLocksAndThreads

Win32_PerfRawData_netFramework_netCLRMemory

Win32_PerfRawData_netFramework_netCLRRemoting

Win32_PerfRawData_netFramework_netCLRSecurity

Win32_PerfRawData_Outlook_Outlook

Win32_PerfRawData_PerfDisk_PhysicalDisk

Win32_PerfRawData_Perfnet_Browser

Win32_PerfRawData_Perfnet_Redirector

Win32_PerfRawData_Perfnet_Server

Win32_PerfRawData_Perfnet_ServerWorkQueues

Win32_PerfRawData_PerfOS_Cache

Win32_PerfRawData_PerfOS_Memory

Win32_PerfRawData_PerfOS_Objects

Win32_PerfRawData_PerfOS_PagingFile

Win32_PerfRawData_PerfOS_Processor

Win32_PerfRawData_PerfOS_System

Win32_PerfRawData_PerfProc_FullImage_Costly

Win32_PerfRawData_PerfProc_Image_Costly

Win32_PerfRawData_PerfProc_JobObject

Win32_PerfRawData_PerfProc_JobObjectDetails

Win32_PerfRawData_PerfProc_Process

Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly

Win32_PerfRawData_PerfProc_Thread

Win32_PerfRawData_PerfProc_ThreadDetails_Costly

Win32_PerfRawData_RemoteAccess_RASPort

Win32_PerfRawData_RemoteAccess_RASTotal

Win32_PerfRawData_RSVP_ACSPerRSVPService

Win32_PerfRawData_Spooler_PrintQueue

Win32_PerfRawData_TapiSrv_Telephony

Win32_PerfRawData_Tcpip_ICMP

Win32_PerfRawData_Tcpip_IP

Win32_PerfRawData_Tcpip_NBTConnection

Win32_PerfRawData_Tcpip_networkInterface

Win32_PerfRawData_Tcpip_TCP

Win32_PerfRawData_Tcpip_UDP

Win32_PerfRawData_W3SVC_WebService

Win32_PhysicalMedia

Win32_PhysicalMemory

Win32_PhysicalMemoryArray

Win32_PhysicalMemoryLocation

Win32_PNPAllocatedResource

Win32_PnPDevice

Win32_PnPEntity

Win32_PointingDevice

Win32_PortableBattery

Win32_PortConnector

Win32_PortResource

Win32_POTSModem

Win32_POTSModemToSerialPort

Win32_PowerManagementEvent

Win32_Printer

Win32_PrinterConfiguration

Win32_PrinterController

Win32_PrinterDriverDll

Win32_PrinterSetting

Win32_PrinterShare

Win32_PrintJob

Win32_PrivilegesStatus

Win32_Process

Win32_Processor

Win32_ProcessStartup

Win32_Product

Win32_ProductCheck

Win32_ProductResource

Win32_ProductSoftwareFeatures

Win32_ProgIDSpecification

Win32_ProgramGroup

Win32_ProgramGroupContents

Win32_ProgramGroupOrItem

Win32_Property

Win32_ProtocolBinding

Win32_PublishComponentAction

Win32_QuickFixEngineering

Win32_Refrigeration

Win32_Registry

Win32_RegistryAction

Win32_RemoveFileAction

Win32_RemoveIniAction

Win32_ReserveCost

Win32_ScheduledJob

Win32_SCSIController

Win32_SCSIControllerDevice

Win32_SecurityDescriptor

Win32_SecuritySetting

Win32_SecuritySettingAccess

Win32_SecuritySettingAuditing

Win32_SecuritySettingGroup

Win32_SecuritySettingOfLogicalFile

Win32_SecuritySettingOfLogicalShare

Win32_SecuritySettingOfObject

Win32_SecuritySettingOwner

Win32_SelfRegModuleAction

Win32_SerialPort

Win32_SerialPortConfiguration

Win32_SerialPortSetting

Win32_Service

Win32_ServiceControl

Win32_ServiceSpecification

Win32_ServiceSpecificationService

Win32_SettingCheck

Win32_Share

Win32_ShareToDirectory

Win32_ShortcutAction

Win32_ShortcutFile

Win32_ShortcutSAP

Win32_SID

Win32_SMBIOSMemory

Win32_SoftwareElement

Win32_SoftwareElementAction

Win32_SoftwareElementCheck

Win32_SoftwareElementCondition

Win32_SoftwareElementResource

Win32_SoftwareFeature

Win32_SoftwareFeatureAction

Win32_SoftwareFeatureCheck

Win32_SoftwareFeatureParent

Win32_SoftwareFeatureSoftwareElements

Win32_SoundDevice

Win32_StartupCommand

Win32_SubDirectory

Win32_SystemAccount

Win32_SystemBIOS

Win32_SystemBootConfiguration

Win32_SystemDesktop

Win32_SystemDevices

Win32_SystemDriver

Win32_SystemDriverPNPEntity

Win32_SystemEnclosure

Win32_SystemLoadOrderGroups

Win32_SystemLogicalMemoryConfiguration

Win32_SystemMemoryResource

Win32_SystemnetworkConnections

Win32_SystemOperatingSystem

Win32_SystemPartitions

Win32_SystemProcesses

Win32_SystemProgramGroups

Win32_SystemResources

Win32_SystemServices

Win32_SystemSetting

Win32_SystemSlot

Win32_SystemSystemDriver

Win32_SystemTimeZone

Win32_SystemUsers

Win32_TapeDrive

Win32_TemperatureProbe

Win32_Thread

Win32_TimeZone

Win32_Trustee

Win32_TypeLibraryAction

Win32_UninterruptiblePowerSupply

Win32_USBController

Win32_USBControllerDevice

Win32_UserAccount

Win32_UserDesktop

Win32_VideoConfiguration

Win32_VideoController

Win32_VideoSettings

Win32_VoltageProbe

Win32_WMIElementSetting

Win32_WMISetting

 

 

Win32_PnPEntity

[Dynamic, Provider("CIMWin32"), UUID("{FE28FD98-C875-11d2-B352-00104BC97924}"), AMENDMENT]
class Win32_PnPEntity : CIM_LogicalDevice
{
uint16   Availability;
string   Caption;
string   ClassGuid;
string   CompatibleID[];
uint32   ConfigManagerErrorCode;
boolean  ConfigManagerUserConfig;
string   CreationClassName;
string   Description;
string   DeviceID;
boolean  ErrorCleared;
string   ErrorDescription;
string   HardwareID[];
datetime InstallDate;
uint32   LastErrorCode;
string   Manufacturer;
string   Name;
string   PNPClass;
string   PNPDeviceID;
uint16   PowerManagementCapabilities[];
boolean  PowerManagementSupported;
boolean  Present;
string   Service;
string   Status;
uint16   StatusInfo;
string   SystemCreationClassName;
string   SystemName;
};