.net 使用ManagementObjectSearcher 获取cpu、mac、硬盘sn
需要按照对应的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 【所有设备】
属性说明
Caption --简短说明
ConfigOptions --数组,表示位于在底板上跳线和开关的配置。
CreationClassName --表示类的名称(就是Win32_baseboard类)
Depth --以英寸为单位的物理封装。
Description --对象的描述(底板)
Height --用英寸表示的物理包的高度
HostingBoard --如果为TRUE,该卡是一个主板,或在一个机箱中的基板。
HotSwappable --如果为TRUE,就是支持热插拔(判断是否支持热插拔)
InstallDate --日期和时间对象安装。此属性不需要的值以表示已安装的对象。
Manufacturer --表示制造商的名称
Model --物理元素的名称是已知。
Name --对象的名称标签
OtherIdentifyingInfo --捕获附加数据,超出资产标签的信息,可以用来标识物理元件
PartNumber --由负责生产或制造的物理元素的组织分配部件编号。
PoweredOn --如果为真,物理元素处于开机状态。
Product --产品的型号
Removable --判断是否可拆卸的
Replaceable --判断是否可更换的
RequirementsDescription --自由格式字符串描述方式,这张卡是身体不同于其他卡。该属性才有意义时,相对应的布尔值属性特殊要求是集真的
RequiresDaughterBoard --如果是TRUE,至少一个子板或辅助卡才能正常工作。
SerialNumber --制造商分配的用于识别所述物理元件数目。
SKU --库存的物理单元号。
SlotLayout --描述插槽位置
SpecialRequirements --如果为真,此卡是同类型的其他卡物理上唯一的,因此需要一个专门的插槽
Status --对象的当前状态。
Tag --符系统的基板唯一标识
Version --物理元素的版本
Weight --物理元素的重量英镑表示
Width --用英寸表示的物理元素的宽度
wmic
也可以使用wmic命令获取对应信息
常用命令如下
基础信息
计算机的序列号: wmic csproduct
屏幕信息: wmic desktopmonitor
操作系统的名称: wmic os get name
CPU信息
查看计算机CPU信息:wmic cpu
查看cpu详细信息: wmic cpu list brief
获取cpu名称: wmic cpu get Name
获取cpu核心数: wmic cpu get NumberOfCores
获取cpu线程数: wmic cpu get NumberOfLogicalProcessors
查询cpu序列号: wmic cpu get processorid
主板信息
主板信息: wmic baseboard
查询主板序列号:wmic baseboard get serialnumber
BIOS信息: wmic bios
BIOS序列号:wmic bios get serialnumber
磁盘信息
查看磁盘驱动器信息:wmic diskdrive
查看硬盘序列号:wmic diskdrive where index=0 get serialnumber
查看磁盘逻辑分区信息: wmic logicaldisk [get caption]
查看磁盘卷信息: wmic volume
查看磁盘的剩余空间【以C盘为例】: fsutil volume diskfree c:
内存信息
内存芯片信息:wmic memorychip
查看物理内存: wmic memphysical list brief
查看逻辑内存: wmic memlogical list brief
查看缓存内存: wmic memcache list brief
查看虚拟内存: wmic pagefile list brief
声卡信息
声卡信息: wmic sounddev
网卡信息
网卡信息: wmic nic
查看网卡: wmic nic list brief
网络协议信息: wmic netprotocal
其他
Window下其他查看硬件信息方法【命令】
systeminfo :计算机及其操作系统的详细配置信息,包括Windows系统安装时间补丁等详细信息、处理器、内存、BISO、网卡和IP地址等,也最常用的;
sysdm.cpl :打开系统属性【鼠标选中计算机–>右键–>属性】
dxdiag :打开DirectX诊断工具【可以显示显卡信息】
start msinfo32 :打开系统信息窗口
devmgmt.msc :打开设备管理
taskmgr :打开任务管理器,或按Ctrl+Alt+Del) 在性能选项卡看物理内存和pagefile
winver 检查Windows版本
关闭本地计算机: wmic process call create shutdown.exe
获取进程名称以及可执行路径: wmic process get name,executablepath
留待后查,同时方便他人
联系我:renhanlinbsl@163.com
联系我:renhanlinbsl@163.com