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

 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事件通知。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值