zoukankan      html  css  js  c++  java
  • WMI in C#[强类型操作]

    C# 进行WMI操作的内容封装在System.Management.dll中,具体的在MSDN有详细描述,默认是用[“**’]去读取和设置属性等。

    此处介绍一个自动生成强类型的包装软件,这样处理起来就简单了很多,不用在反复的查看参数等信息了。

    1、 使用WMIExplorer生成WMI对应的包装类

    2、 针对生成类可以进行强类型操作。

    WMIExplorer可以在http://www.primaltools.com/downloads/communitytools/中找到。

    clip_image002

    如上图示,选择需要操作的CIM类别,右键生成即可。生成类包括了各种属性和操作的方法。

    以Win32_Process管理机器上的进程为例,针对生成的类的操作方法:

    using ROOT.CIMV2.Win32;Process.StaticScope = this.scope;
    var ps = Process.GetInstances();
    foreach (var p in ps)
    {
    using(Process m = p as Process)
    {
    System.Diagnostics.Debug.WriteLine(m.Name);
    if (m.Name == "notepad.exe")
    {
    m.Terminate(1);
    }
    }
    }
    uint pid;
    Process.Create("notepad.exe", null, null, out pid);
    var my = Process.GetInstances(this.scope, "ProcessId=" + pid.ToString());
    if (my.Count > 0)
    {
    var i = my.GetEnumerator();
    i.MoveNext();
    Process p = i.Current as Process;
    p.Terminate(1);
    }
    
    //另一种形式的对比:
    ManagementObject mo = new ManagementClass(this.scope, new ManagementPath("MSFT_SIPESUserContactData"), new ObjectGetOptions()).CreateInstance();
                        mo["UserInstanceID"] = this.userId;
                        mo["SIPURI"] = sip;
                        mo["GroupID"] = groupIds;
                        mo["Name"] = name;
                        mo["Subscribed"] = true;
                        mo.Put();
     
                        SIPESUserContactData.StaticScope = this.scope;
                        SIPESUserContactData c = SIPESUserContactData.CreateInstance();
                        c.LateBoundObject["UserInstanceID"] = this.userId;
                        c.LateBoundObject["SIPURI"] = sip;
                        c.LateBoundObject["GroupID"] = groupIds;
                        c.LateBoundObject["Name"] = name;
                        c.LateBoundObject["Subscribed"] = true;
                         c.CommitObject();
    以上可见,由于生成类中包括了属性名字,即使使用名字时,直接参考类就行了。

    方便了很多。

    这个例子是操作进程和Office Communicator服务器上的联系人的操作示例等。

    http://cid-56b433ad3d1871e3.office.live.com/self.aspx/.Public/WMIDemo.zip

  • 相关阅读:
    第一次个人作业-热身
    OO总结
    oo第三单元总结
    oo第二单元总结
    软件工程 —— 课程回顾与个人总结
    BUAA软件案例分析——智能表单抽取识别
    软件工程—结对项目博客
    轨迹预测文献阅读整理(轨迹多样性、车辆轨迹、图神经网络、潜码)
    软件工程
    软件工程
  • 原文地址:https://www.cnblogs.com/2018/p/1834880.html
Copyright © 2011-2022 走看看