需要按照對應的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 //CD光牒驅動器
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 【所有裝置】