`
tiandirensoon
  • 浏览: 595846 次
文章分类
社区版块
存档分类
最新评论

.NET 框架中的 WMI 命名空间

 
阅读更多
.NET 框架中的 WMI 命名空间
.NET框架中与WMI规范有关的命名空间有两个,分别是System.ManagementSystem.Management.Instrumentation两个命名空间。其中System.Managemen命名空间提供的类对象为访问各种管理对象提供了面向对象的编程接口,而System.Management.Instrumentation命名空间提供的类用来设置用户自定义的应用程序,使得这些应用程序对象能够符合WMI的规范,从而通过WMI向使用该应用程序的管理者公开其提供的管理信息和事件,这些使用者有可能是Microsoft Application Center Microsoft Operations Manager这样的,也有可能是自定义编写的高端管理应用程序(您可以通过System.Management命名空间提供的类对象来编写自己的管理应用程序)。因此,如果您想使自己的产品的管理可以在这些管理工具,您就得使您自己的应用程序符合WMI的规范,而针对.NET平台上的应用程序WMI规范编写来说,使用的是System.Management.Instrumentation命名空间提供的类。
System.Management 命名空间
System.Management 命名空间是 .NET Framework 中的 WMI 命名空间。此命名空间包括以下重要的类对象:
ManagementClass:管理类,它的构造函数输入参数为WMI类名称,标识管理对象,例如:
diskman = new ManagementClass("Win32_LogicalDisk");
diskman为Win32平台下的整个逻辑磁盘的管理对象。
ManagementObjectCollection:ManagementObject管理对象的集合。
ManagementObject和:ManagementObject为具体的数据管理对象,对于上面的例子而言,可以对应逻辑磁盘的C分区管理对象。看下面的代码:
*****************************************************
ManagementObjectCollection disks = diskman.GetInstances();
foreach (ManagementObject disk in disks)
{
Console.WriteLine("Disk = {0}" , disk["Name"].ToString());
Console.WriteLine("Disk = {0}" , disk["FileSystem"].ToString());
Console.WriteLine("Disk = {0}" , disk["Size"].ToString());
}
*****************************************************
disks为逻辑磁盘分区C,D,E的集合,对于每一个逻辑分区,由一个disk对象管理其数据,并输出名称,文件系统和磁盘空间大小。
ManagementQuery:用作所有查询类的基础。在前面说过,对于管理对象,可以像在关系数据库里面使用SQL查询语句一样进行您感兴趣的数据过滤查询,如:
SELECT * FROM Win32_ LogicalDisk
ManagementQuery作为查询的抽象基类,您可以继承以实现其方法,SelectQuery即是。
ManagementObjectSearcher:用于根据指定的查询或枚举检索管理对象的集合。
*****************************************************
SelectQuery selectQuery = new SelectQuery("win32_logicaldisk");
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject disk in searcher.Get())
{
Console.WriteLine(disk.ToString());
}
****************************************************
以上代码指定searcher的查询为selectQuery,即Win32逻辑磁盘的集合查询,然后将这些逻辑磁盘分区输出。当然您也可以直接使用SQL查询语句来实例化ManagementObjectSearcher对象,代码如下:
ManagementObjectSearcher search=new ManagementObjectSearcher(SELECT * FROM Win32_ LogicalDisk
);
ManagementEventWatcher:用于预定WMI事件通知,这个在后面的章节中将详细讲述。
对于这个命名空间其他的类将在后面的实例讲解中再做叙述。
System.Management.Instrumentation命名空间
从前面讲述的内容,您应该知道如果想使得您自己的应用程序或产品能够使用诸如Microsoft Application Center Microsoft Operations Manager这样的管理工具,您就应该将您的应用程序对象向支持WMI的工具公开信息。使用的将是System.Management.Instrumentation命名空间提供的类。
System.Management.Instrumentation命名空间可以使得您轻松的完成以下任务:
n 规范化应用程序;
n 将应用程序事件暴露为WMI事件;
n 创作管理对象;
n 定义和使用管理对象之间的关系。
规范应用程序的对象,使其符合WMI的规范,这样的工作对于.NET程序员来说是直接简单的。因为WMI的架构模式本来就是面向对象的,并且有很多的特性与.NET元数据是相通的。因此应用程序的对象可以直接映射为WMI对象,相同的,使应用程序代码转化为可管理的应用程序代码将不会需要很大的代价。举例来说您可以如此规范化.NET应用程序:
n 应用程序的组件可以发生事件。
n 提供可管理的对象使得应用程序可以配置。
n 暴露运行时数据,如性能特性
分享到:
评论

相关推荐

    WMI Browser(VB.NET)

    通过Windows Management ...新版的Windows优化大师就是通过WMI得到硬件信息的。在命令行下输入WMIC可以访问WMI,可以查看许多资源的信息。此程序可以枚举所有能够使用的WMI资源,以列表的方法显示出来,直观易懂。

    asp.net知识库

    利用委托机制处理.NET中的异常 与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文...

    WindowsMonitor:WMI命名空间和类

    Windows监控器WMI(Windows Management Instrumentation)命名空间和类的完全包装的包装。 对于检索本地和远程计算机上安装的软件和硬件的信息很有用。 //Retrieve voltage information from local probes var ...

    C# WMI编程 电脑硬件识别,硬盘,CD-ROM,USB

    电脑硬件信息 硬盘 CD-ROM USB 添加自己的属性 用C#和WMI获取逻辑驱动器详细信息 获取磁盘信息的API函数来分别获取像卷标、序列号以及剩余空间等信息 .Net框架System.Management 命名空间的相关类和WMI编程

    Wmi与Vb.Net结合

    此程序是利用系统WMI管理脚本托管写成,内容包含不安全代码,程序代码都已经用中文注释,别说看不懂 ~特此声明

    微软WMI代码生成器

    利用WMI代码生成器可以执行查询或者执行一个方法等,还可以查看当前或者远程电脑上的命名空间以及其下的类,并且还可以生成相关的代码(不然就不叫WMI代码生成器了),支持生成的代码类型包括VBS、C#及VB.NET,默认...

    vb.net/C#双码 获取CPU温度/主板温度/显卡温度 硬盘温度 驱动获取非wmi

    vb.net/C#双码 获取CPU温度/主板温度/显卡温度 硬盘温度 驱动获取非wmi 源码+中文注释,vb.net+c#双码

    如何使用WMI查询声音设备信息编程小程序,C++.net源代码编

    如何使用WMI查询声音设备信息编程小程序,C++.net源代码编写,VisualStudio.net

    vb.net 获取 内存总量、使用量、可用量

    网上和csdn上很多关于vb.net获取内存总量的代码,无非wmi,API,以及一些vb6的,虽然vb6和.net有通用的地方,但还不能直接就用。反正我没找到一个直接拷贝粘贴就能用的。 我上传的压缩包里是vb.net工程,运行后label...

    WMI查看工具

    WMI查看工具,很好用的,我一直在使用的工具。

    Windows Management Instrumentation(WMI):常见问题

    9:如何设置 WMI 命名空间的安全性? 10:如何使用 WMI 管理远程计算机? 11:远程操作涉及到第三台计算机的时候为何失败? 12:为什么我的查询需要很长时间才能完成? 13:如何列出特定计算机上已经安装的所有...

    C# .NET And The WPF Listview - Using WMI in Async mode to power the Listview.pdf

    异步使用WMI来增强ListView C# .NET And The WPF Listview - Using WMI in Async mode to power the Listview.pdf

    WMI查询系统信息

    在.NET中,System.Management命名空间提供对系统管理信息和管理事件集合的访问,这些信息和事件是与Windows管理规范(WMI)结构对系统,设备和应用程序设置检测点有关的.一般情况下,应用程序和服务可以使用该命名空间下的...

    WMI VB 中文视频

    WMI VB 中文视频 脚本WMI VB 中文视频 脚本

    亮剑.NET深入体验与实战精要2

    1.3.2 命名空间 10 1.3.3 C#语法格式要点 10 1.3.4 变量 12 1.3.5 类型推断 12 1.3.6 变量的作用域 13 1.3.7 常量 16 1.3.8 流程控制 16 1.3.9 字符串常见操作 21 1.3.10 几个常用的数学函数 27 1.4 .NET的面向对象...

    Win7 WMI报错

    Win7事件查看器出现WMI错误,这是微软官方提供补丁。

    msdn精选(集合的精华)

    【Office开发】.NET框架下Excel报表组件编程 【Web开发】了解和扩展ASP.NET 2.0中的站点导航系统 【工具与技巧】构建高性能的ASP.NET应用程序 【工具与技巧】使用WMI和MOM 2005检测和监视ASP.NET应用程序 【软件测试...

    WMI轻松入门

    微软有很多说法,大家可以到脚本中心查阅,我这样理解,WMI是一个用于管理Windows系统资源的对象,其内部应是一个树状的数据库,数据库中包含了很多个分支,每个分支被称作命名空间,每个命名空间包含了很多个对托管...

    ASP.NET和IIS出错问题总结

    ASP.NET和IIS出错问题总结 ASP.NET和IIS出错问题总结 ASP.NET和IIS出错问题总结

    WMI代码生成器.rar

    利用WMI代码生成器可以执行查询或者执行一个方法等,还可以查看当前或者远程电脑上的命名空间以及其下的类,并且还可以生成相关的代码(不然就不叫WMI代码生成器了),支持生成的代码类型包括VBS、C#及VB.NET,默认...

Global site tag (gtag.js) - Google Analytics