【WMI】WMI For C# dotNet对WMI的支持

原创 2007年09月15日 22:02:00
 dotNet对于WMI的支持

        .NET框架中与WMI规范有关的命名空间有两个,分别是System.Management和System.Management.Instrumentation命名空间。前者用来访问标准WMI提供程序提供的功能,获取系统信息,或者执行提供程序的方法(比如修改系统的属性、执行关机动作等)等;后者则是用来注册新提供程序、创建新类和发布实例。

System.Management命名空间中的类主要有:
ManagementClass——管理类
        ManagementClass的构造函数输入参数为WMI类名称,标识管理对象(相当于COM中的IWbemServices ),例如:
diskman = new ManagementClass("Win32_LogicalDisk");
        diskman代表Win32平台下的整个逻辑磁盘的管理对象。

ManagementObjectCollection——管理对象的集合。(相当于COM中的枚举器IEnumWbemClassObject)

ManagementObject——为具体的数据管理对象,(相当于COM中的IWbemClassObject)。
        对于上面的例子而言,可以对应逻辑磁盘的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
        用作所有查询类的基础,作为查询的抽象基类,可以继承以实现其方法,它被声明为abstract的,这意味着我们不能创建一个该类的实例,但可以用该类型的对象代表它的所有派生类对象。.NET提供了从ManagementQuery两个派生的类: EventQuery和ObjectQuery分别用于查询管理事件和管理对象,而我们通常使用的SelectQuery是从ObjectQuery派生而来,详细请参见.NET Class Library Reference。

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逻辑磁盘的集合查询,然后将这些逻辑磁盘分区输出。也可以直接使用WQL查询语句来实例化ManagementObjectSearcher对象:
ManagementObjectSearcher search =
       
new ManagementObjectSearcher(“SELECT * FROM Win32_ LogicalDisk”);

ManagementEventWatcher
        用于预订WMI事件通知。

[问题记录.dotnet]取网卡信息报错"找不到"-WMI - Not found

System.Management.ManagementException: 找不到 System.Management.ManagementException: Not found 错误的解决...

c#使用WMI更改IP地址

  • 2012年09月11日 11:30
  • 58KB
  • 下载

WMI For C++/COM基础知识

WMI For C++/COM基础知识 知识背景         WBEM——Web Based Enterprise Management是一种行业规范,建立了在企业网络中访问和共享管理信息...

WMI SDK For XP(the latest)

  • 2008年08月26日 16:17
  • 5.32MB
  • 下载

wmi远程控制(c#源代码)

  • 2009年02月01日 09:56
  • 26KB
  • 下载

C#操作WMI实例

今天本来想获取机器的MAC地址,结果误打误撞碰到了个WMI。

c#利用wmi远程关机

  • 2010年04月28日 17:36
  • 1KB
  • 下载

C#网络编程(WMI、Telnet)

  • 2011年01月16日 22:05
  • 303KB
  • 下载

C# + WMI 管理IIS之:指定匿名访问用户

指定匿名访问用户,IIS6比较简单,在IIsWebVirtualDirSetting有两个属性可以设置到:AnonymousUserName、AnonymousUserPass,代码如下 C...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【WMI】WMI For C# dotNet对WMI的支持
举报原因:
原因补充:

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