需要按照对应的nuget包: System.Management

获取cpu信息

ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();

string strCpuID = null;
foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}

return strCpuID;

获取mac信息

ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
ManagementObjectCollection queryCollection = query.Get();
string mac = string.Empty;
foreach (ManagementObject mo in queryCollection)
{
if (mo["IPEnabled"].ToString() == "True")
mac = mo["MacAddress"].ToString();
}
return mac;

获取硬盘sn有两种方法

第一种 - 使用此方法获取到的待选数据较少所以速度稍快一些,但整体性能与第二种并无量级上的区别

string sn = string.Empty;
var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
foreach (ManagementObject wmi_HD in searcher.Get())
{
foreach (var item in wmi_HD.Properties)
{
if (wmi_HD.Properties["SerialNumber"] != null)
{
sn = wmi_HD.Properties["SerialNumber"].Value.ToString();
break;
}
}
}
Console.WriteLine(sn);

第二种

string sn = string.Empty;
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject wmi_HD in searcher.Get())
{
if (wmi_HD.Properties["SerialNumber"] != null)
{
sn = wmi_HD.Properties["SerialNumber"].Value.ToString();
break;
}
}
Console.WriteLine(sn);

可用的搜索项如下

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_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 //已安装的网络协议
Win32_PnPEntity //all device 【所有设备】