WMI in C#[强类型操作]
C# 进行WMI操作的内容封装在System.Management.dll中,具体的在MSDN有详细描述,默认是用[“**’]去读取和设置属性等。
此处介绍一个自动生成强类型的包装软件,这样处理起来就简单了很多,不用在反复的查看参数等信息了。
1、 使用WMIExplorer生成WMI对应的包装类
2、 针对生成类可以进行强类型操作。
WMIExplorer可以在http://www.primaltools.com/downloads/communitytools/中找到。
如上图示,选择需要操作的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
转载于:https://www.cnblogs.com/2018/archive/2010/09/25/1834880.html
WMI in C#[强类型操作]相关推荐
- Visual C#中用WMI编写网络应用程序
WMI是Windows Management Instrumentation的简称,即:视窗管理规范.在Windows 2000或以后的版本中均安装得有,NT4.0则需要安装WMI的核心组件.通过WM ...
- 【逗老师带你学IT】PRTG通过WMI远程监控windows10运行状态
网上很多关于Windows开启WMI的文章,但是到了Windows10之后,网上说的办法行不通了,本文介绍在最新的Windows 10 21H1版本开启WMI进行远程监控的办法 目录 一.Window ...
- C++实现获取Windows操作系统内核版本号
作为一名Windows开发者,能熟练掌握WMI技术,在开发Windows应用程序的时候往往能够事半功倍.今天来给大家分享一个使用WMI来获取Windows操作系统内核版本号的例子. 首先我们打开WMI ...
- windows系统巡检命令及日常管理操作
一.基础环境管理 1.CPU使用率 wmic CPU get loadpercentage /value|findstr [1-9] 或 wmic path win32_perfformattedda ...
- java wmi_WMI入门教程之什么是WMI?
WMI出现至今已经二十多年了,但很多人对它并不熟悉.知道它很好很强大,但不知道它从哪里来,怎么工作,使用范围是什么?现在我跟大家说说我的理解... WMI有一组API.我们不管使用VBScript.P ...
- Castle ActiveRecord 泛型应用
Castle ActiveRecord在.Net2.0下支持泛型,这极大的方便了我们创建强类型集合以及对对象的强类型操作.本文引用了Castle站点上泛型的例子来详细介绍如何应用泛型. 另外你需要在这 ...
- java windows域_域环境中的windows软件安装
这几天要在单位部署一个软件包,是msi形式的,据说可以通过"域推送"的形式安装,搜索了一下,发现需要在 组策略->软件设置->软件安装 里面添加放在共享目录里的软件包. ...
- 用过 mongodb 吧, 这三个大坑踩过吗?
一:背景 1. 讲故事 前段时间有位朋友在微信群问,在向 mongodb 中插入的时间为啥取出来的时候少了 8 个小时,8 在时间处理上是一个非常敏感的数字,又吉利又是一个普适的话题,后来我想想初次使 ...
- 内网环境下的横向移动总结
前言 在内网渗透中,当攻击者获取到内网某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围.通过此类手段,攻击者最终可能获得域控制器的访问权限, ...
最新文章
- 基于自适应策略转移的深度强化学习
- Microsoft Sync Framework 2.1 软件开发包 (SDK)
- VS2019安全函数scanf_s问题
- 数据结构之图的存储结构:邻接矩阵法
- 字符串压缩——C语言
- LAMP+Varnish缓存详解(一)——Varnish简介
- retinex算法小感
- openwrt源码下载移植
- 特斯拉造芯片:不能失去集成电路的高地,就像西方不能失去耶路撒冷
- 2020年数维杯数学建模C题 垃圾转运优化模型设计求解全过程文档及程序
- ubuntu14.04彻底卸载ibus安装fcitx拼音输入法
- 法人 法人代表和法定代表人的区别
- Numpy切片与索引
- Java实验3-2【在职研究生类设计实验】
- VMware12安装Windows7(二)-ghost win7
- Dynamics CRM 系统自定义部分的语言翻译
- docker(一):基本组成与常用命令
- 机器学习---回归模型和分类模型的评价指标体系
- 开发购物商城app需要多少钱
- GUESS手表全新推出2022年农历新年系列
热门文章
- centos 7.6安装java_Hadoop的安装
- vmware6.5.2序列号_教你如何查询苹果序列号,查询是否为官换机、激活时间等
- 哪些原因会导致rs485转换器信号受干扰?
- 【渝粤教育】国家开放大学2018年春季 8623-22T燃气行业法律法规 参考试题
- 【渝粤题库】陕西师范大学202012 刑事诉讼法专论 作业
- 【渝粤题库】国家开放大学2021春2617生产与运作管理题目
- 8. Geometric problems
- 弗林斯传输公式、天线温度
- 多媒体计算机属于哪种教学,多媒体计算机属于哪种教学媒体(???)。
- java调用php session_php读取memcahed java session