学习WMI有感

原创 2004年08月10日 21:35:00

通过两天的学习发现WMI确实是个好东西:),利用它我们可以很方便的对计算机的硬件信息进行管理,但是用它得到的硬件信息十分有限,特别适用于对硬件信息细节要求不高的用户,例如一些OEM厂商对产线上的产品进行管理和检测,有了它,从此对那些繁琐的API说声byebye了......

下面这几个小例子是我这两天的学习心得:

//Get LAN MAC address
static void GetLanMACAddress()
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
Console.WriteLine("MAC address/t{0}", mo["MacAddress"].ToString());
mo.Dispose();
}
Console.WriteLine ("/n/r");
}
//Get HDD Size / Serial # / Firmware
static void GetHDDInfo()
{
String HDid;
ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].Value;

//Console.WriteLine("HDD Serial/t{0}", mo["Serial Number"].ToString());

Console.WriteLine("HDD Size/t{0} Bytes", mo["Size"].ToString());
Console.WriteLine("HDD Model/t{0}", mo["Model"].ToString());
Console.WriteLine("HDD Manufacturer /t{0}", mo["Manufacturer"].ToString());
//Console.WriteLine("HDD Model/t{0}", mo["Firmware"].ToString());

mo.Dispose ();
}

Console.WriteLine ("/n/r");
}
//Get CPU INFO.
static void GetCpuInfo()
{
//string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
//cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
Console.WriteLine("ProcessorId:/t{0}", mo["ProcessorId"].ToString());
Console.WriteLine("CurrentClockSpeed:/t{0}", mo["CurrentClockSpeed"].ToString());

//Console.WriteLine("L2CacheSize:/t{0}", mo["L2CacheSize"].ToString());
//Console.WriteLine("L2CacheSpeed:/t{0}", mo["L2CacheSpeed"].ToString());

Console.WriteLine("Description:/t{0}", mo["Description"].ToString());
Console.WriteLine("ProcessorType:/t{0}", mo["ProcessorType"].ToString());
Console.WriteLine("Version:/t{0}", mo["Version"].ToString());
Console.WriteLine("Revision:/t{0}", mo["Revision"].ToString());
Console.WriteLine("Manufacturer:/t{0}", mo["Manufacturer"].ToString());
//Console.WriteLine(cpuInfo);
}
Console.WriteLine ("/n/r");
}
//Get Cahce INFO.
static void GetCacheInfo()
{
ManagementClass cimobject = new ManagementClass("Win32_CacheMemory");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
Console.WriteLine("MaxCacheSize:/t{0}", mo["MaxCacheSize"].ToString());
Console.WriteLine("Location:/t{0}", mo["Purpose"].ToString());
}
Console.WriteLine ("/n/r");
}
//Get Memory INFO.
static void GetMemoryInfo()
{
ManagementClass cimobject = new ManagementClass("Win32_PhysicalMemory");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
Console.WriteLine("Capacity:/t{0}", mo["Capacity"].ToString());
Console.WriteLine("DeviceLocator:/t{0}", mo["DeviceLocator"].ToString());
Console.WriteLine("Description:/t{0}", mo["Description"].ToString());
}
Console.WriteLine ("/n/r");
}
//Get the battery INFO.
static void GetBatteryInfo()
{
ManagementClass cimobject = new ManagementClass("Win32_Battery");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
//Console.WriteLine("Capacity:/t{0}", mo["BatteryRechargeTime"].ToString());
//Console.WriteLine("DeviceLocator:/t{0}", mo["BatteryStatus"].ToString());
Console.WriteLine("Description:/t{0}", mo["Chemistry"].ToString());
}
Console.WriteLine ("/n/r");
}
//Get the LCD INFO.
static void GetLCDInfo()
{
ManagementClass cimobject = new ManagementClass("Win32_DesktopMonitor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
Console.WriteLine("Description:/t{0}", mo["Description"].ToString());
Console.WriteLine("PixelsPerXLogicalInch:/t{0}", mo["PixelsPerXLogicalInch"].ToString());
Console.WriteLine("PixelsPerYLogicalInch:/t{0}", mo["PixelsPerYLogicalInch"].ToString());
Console.WriteLine("Manufacturer:/t{0}", mo["MonitorManufacturer"].ToString ()); //[]
Console.WriteLine("MonitorType:/t{0}", mo["MonitorType"].ToString());
Console.WriteLine("ScreenHeight:/t{0}", mo["ScreenHeight"].ToString());
Console.WriteLine("ScreenWidth:/t{0}", mo["ScreenWidth"].ToString ());//datetime to string
}
Console.WriteLine ("/n/r");
}
//Get the BIOS INFO.
static void GetBIOSInfo()
{
ManagementClass cimobject = new ManagementClass("Win32_BIOS");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
Console.WriteLine("Version:/t{0}", mo["Version"].ToString());
//Console.WriteLine("DeviceLocator:/t{0}", mo["BuildNumber"].ToString());
Console.WriteLine("BIOSVersion:/t{0}", mo["BIOSVersion"].ToString ()); //[]
Console.WriteLine("Manufacturer:/t{0}", mo["Manufacturer"].ToString());
Console.WriteLine("SerialNumber:/t{0}", mo["SerialNumber"].ToString());
//Console.WriteLine("InstallDate:/t{0}", (mo["InstallDate"].ToString ());//datetime to string
}
Console.WriteLine ("/n/r");
}
//Get HDD SerialNum
public static void GetHd()
{
ManagementObjectSearcher wmiSearcher = new ManagementObjectSearcher();

wmiSearcher.Query = new SelectQuery(
"Win32_DiskDrive",
"",
new string[]{"PNPDeviceID"}
);
ManagementObjectCollection myCollection = wmiSearcher.Get();
ManagementObjectCollection.ManagementObjectEnumerator em =
myCollection.GetEnumerator();
em.MoveNext();
ManagementBaseObject mo = em.Current;
string id = mo.Properties["PNPDeviceID"].Value.ToString().Trim();
Console.WriteLine("My harddisk is : " + id);
}
//Get Monitor INFO.
public static void GetMonitorInfo()
{
ManagementClass cimobject = new ManagementClass("Win32_DisplayConfiguration");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
Console.WriteLine("Description:/t{0}", mo["Description"].ToString());
Console.WriteLine("DisplayFrequency:/t{0}", mo["DisplayFrequency"].ToString());
Console.WriteLine("PelsHeight:/t{0}", mo["PelsHeight"].ToString());
Console.WriteLine("PelsWidth:/t{0}", mo["PelsWidth"].ToString ()); //[]
//Console.WriteLine("MonitorType:/t{0}", mo["MonitorType"].ToString());
//Console.WriteLine("ScreenHeight:/t{0}", mo["ScreenHeight"].ToString());
//Console.WriteLine("ScreenWidth:/t{0}", mo["ScreenWidth"].ToString ());//datetime to string
}
Console.WriteLine ("/n/r");

}

周志华《机器学习》 读后感

书还是比较厚的,我会挑感兴趣的章节先更新。 以写小结和感想为主。(我也是机器学习入门,所以小结以感性理解为主。) 第四章 决策树 ☑️ ---------第四章 决策树 -----------...
  • Layumi1993
  • Layumi1993
  • 2016年09月16日 20:03
  • 2419

Python学习中的心得体会记录(一)

Python是一门面向对象的解释性语言(脚本语言),这一类语言的特点就是不用编译,程序在运行的过程中,由对应的解释器向CPU进行翻译,个人理解就是一边编译一边执行。而JAVA这一类语言是需要预先编译的...
  • w815878564
  • w815878564
  • 2015年11月02日 01:54
  • 3658

机器学习总结2_感知机算法(PLA)

1.正式开始之前的描述(1)PLA:Perceptron Learning Algorithm。 在正式开始之前,我想先说一下,PLA到底是干嘛的。大部分机器学习的书以及视频都是以感知机算法作为开头...
  • hulingyu1106
  • hulingyu1106
  • 2016年04月21日 20:20
  • 3529

wmi学习文档

  • 2012年05月26日 10:42
  • 349KB
  • 下载

学习使用WMI管理网络

  • 2010年01月07日 14:22
  • 50KB
  • 下载

VBS学习日记(十) WMI 基础

Vbs 脚本编程简明教程—WMI 基础之一 WMI 即 Windows 管理规范,是用户管理本地和远程计算机的一种模型。通过它可以访问、配置、管理和监视几乎所有的 Windows 资源。WMI ...
  • suifenghuidong
  • suifenghuidong
  • 2014年07月21日 19:48
  • 577

[17]Windows PowerShell DSC学习系列---使用WMI Tester调用msft-dsclocalconfigurationmanager类的方法

在这边文章中,其列出了DSC中的本地配置管理引擎中的msft-dsclocalconfigurationmanager类,其列出了这个类中的很多方法。比如GetConfigurationStatus,...
  • chancein007
  • chancein007
  • 2017年02月13日 18:46
  • 1691

学习WMI的心得

1.首先了解什么是WMI:     WMI最初于 1998 年作为一个附加组件与 Windows NT 4.0 Service Pack 4 一起发行,是内置在 Windows 2000、Windo...
  • IT_BB
  • IT_BB
  • 2013年12月06日 11:34
  • 692

VBS学习日记(十一) 初试WMI

Microsoft Windows Management Instrumentation(WMI)。中文名字叫 Windows 管理规范。从 Windows 2000 开始,WMI (Windows ...
  • suifenghuidong
  • suifenghuidong
  • 2014年10月08日 14:06
  • 571

利用WMI获取系统的软硬件信息的学习与总结

文章学习于 http://blog.csdn.net/breaksoftware/article/details/8439975 感谢博主。
  • Feng______
  • Feng______
  • 2014年06月18日 23:49
  • 1231
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习WMI有感
举报原因:
原因补充:

(最多只允许输入30个字)