制作了一个WMI 查询分析工具
2005-05-26 01:29
597 查看
WMI 全称为:Microsoft®Windows®Management Instrumentation (WMI)
按微软的介绍大致如下:
WMI 是 Microsoft 主要的针对 Windows 的管理支持技术。在 WMI 之前,所有的 Windows 图形化管理工具都依赖于 Win32 应用程序编程接口(Application Programming Interfaces,APIs)来访问和管理 Windows 资源。在 WMI 之前,能够以编程方式访问 Windows 资源的惟一方法就是通过 Win32 API。这种情况使 Windows 系统管理员无法通过一种简便的方法利用常见的脚本语言来自动化常用的系统管理任务,因为大多数脚本语言都不能直接调用 Win32 API。通过提供一致的模型和框架,WMI 改变了这种情况 — 通过模型和框架,所有的 Windows 资源均被描述并公开给外界。最好的一点是,系统管理员可以使用 WMI 脚本库创建系统管理脚本,从而管理任何通过 WMI 公开的 Windows 资源!
我已经不记得什么时候就知道的这个WMI,但直到今天才认真的学学;可能是采用SQL的语法吸引了我吧,至少用它来做到“windows 优化大师”所获取的系统信息是很容易的。晚上一直在弄这个小程序,因为WMI设计到windows的方方面面,所以我想做一个想sqlserver带的查询分析器的工具,专门用于调试WMI的查询;用了后才发现使用起来确实方便,.net提供一个System.Management.ManagementObjectSearcher类,用它很简单的就可操作WMI;如下是简单实例:
ManagementObjectSearcher search = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem");
sysInfoListTest.Items.Clear();
sysInfoListTest.Items.Add("Computer System Information");
foreach(ManagementObject info in search.Get())
foreach(ManagementObject mo in mos.Get())
DataRow dr = dt.NewRow();
PropertyDataCollection.PropertyDataEnumerator oEnum;
//显示系统类
//获取属性,系统类
oEnum = (mo.Properties.GetEnumerator() as PropertyDataCollection.PropertyDataEnumerator);
while(oEnum.MoveNext())
PropertyData prop = (PropertyData)oEnum.Current;
if(dt.Columns.IndexOf(prop.Name)==-1)
dt.Columns.Add(prop.Name);
Console.Out.WriteLine(prop.Name);
dt.Columns[dt.Columns.Count-1].DefaultValue = "";
}
try
//该类未实例化,所以需要异常结构,表示为null
dr[prop.Name] = mo[prop.Name].ToString();
Console.Out.WriteLine(prop.Name + " row");
}
catch
Console.Out.WriteLine(prop.Name + " row error");
}
}
}
可以看到这句代码 :
mo.Properties.GetEnumerator() as PropertyDataCollection.PropertyDataEnumerator
这里的Properties所访问的是非系统属性集合,既然是调试工具那么就得把SystemProperties也列出来,实现的过程同上。
下面的帖图是运行界面:
PS:我刻意缩小了,因为每次帖的图片过大了
下次再实现读出所有的可访问的类;
点这里下载工程源码,带执行文件
按微软的介绍大致如下:
WMI 是 Microsoft 主要的针对 Windows 的管理支持技术。在 WMI 之前,所有的 Windows 图形化管理工具都依赖于 Win32 应用程序编程接口(Application Programming Interfaces,APIs)来访问和管理 Windows 资源。在 WMI 之前,能够以编程方式访问 Windows 资源的惟一方法就是通过 Win32 API。这种情况使 Windows 系统管理员无法通过一种简便的方法利用常见的脚本语言来自动化常用的系统管理任务,因为大多数脚本语言都不能直接调用 Win32 API。通过提供一致的模型和框架,WMI 改变了这种情况 — 通过模型和框架,所有的 Windows 资源均被描述并公开给外界。最好的一点是,系统管理员可以使用 WMI 脚本库创建系统管理脚本,从而管理任何通过 WMI 公开的 Windows 资源!
我已经不记得什么时候就知道的这个WMI,但直到今天才认真的学学;可能是采用SQL的语法吸引了我吧,至少用它来做到“windows 优化大师”所获取的系统信息是很容易的。晚上一直在弄这个小程序,因为WMI设计到windows的方方面面,所以我想做一个想sqlserver带的查询分析器的工具,专门用于调试WMI的查询;用了后才发现使用起来确实方便,.net提供一个System.Management.ManagementObjectSearcher类,用它很简单的就可操作WMI;如下是简单实例:
ManagementObjectSearcher search = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem");
sysInfoListTest.Items.Clear();
sysInfoListTest.Items.Add("Computer System Information");
foreach(ManagementObject info in search.Get())
foreach(ManagementObject mo in mos.Get())
DataRow dr = dt.NewRow();
PropertyDataCollection.PropertyDataEnumerator oEnum;
//显示系统类
//获取属性,系统类
oEnum = (mo.Properties.GetEnumerator() as PropertyDataCollection.PropertyDataEnumerator);
while(oEnum.MoveNext())
PropertyData prop = (PropertyData)oEnum.Current;
if(dt.Columns.IndexOf(prop.Name)==-1)
dt.Columns.Add(prop.Name);
Console.Out.WriteLine(prop.Name);
dt.Columns[dt.Columns.Count-1].DefaultValue = "";
}
try
//该类未实例化,所以需要异常结构,表示为null
dr[prop.Name] = mo[prop.Name].ToString();
Console.Out.WriteLine(prop.Name + " row");
}
catch
Console.Out.WriteLine(prop.Name + " row error");
}
}
}
可以看到这句代码 :
mo.Properties.GetEnumerator() as PropertyDataCollection.PropertyDataEnumerator
这里的Properties所访问的是非系统属性集合,既然是调试工具那么就得把SystemProperties也列出来,实现的过程同上。
下面的帖图是运行界面:
PS:我刻意缩小了,因为每次帖的图片过大了
下次再实现读出所有的可访问的类;
点这里下载工程源码,带执行文件
相关文章推荐
- 阿庆SQL智能查询分析器,使用delphi开发的一个数据库查询分析管理工具.分享给大家
- WMI (performancecounter)查询分析工具更新
- QTP的那些事—WMI+SQL分析查询工具
- WMI 查询分析工具更新
- python写一个日志查询工具(登录ftp服务器得到日志并分析)
- AWStats是一个基于Perl的WEB日志分析工具。
- [MySQL 工具] pt-index-usage使用 --> 对查询中的索引进行分析
- android ota 升级包制作分析 (5 工具)
- Sun宣布MySQL企业版添加查询分析工具(MySQL Query Analyzer)
- 大数据时代必不可少的大数据分析和制作工具大全
- 【裸奔吧linux】vmstat:一个系统监控工具,常用于性能分析
- percona慢查询分析工具:pt-query-digest使用介绍
- 一个轻松制作和处理矢量图的工具和方法, 希望对大家能够有帮助
- 一个图标制作工具AWiconsPro
- 慢查询日志分析工具mysqldumpslow
- 给Ambari集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)
- 利用百度apistore的身份证查询API制作的身份证信息查询工具
- Solr/Lucene日志分析-查询热点词-脚本工具
- Vs2005之简单日志工具的制作--1.需求分析与功能设计
- 一个拼图工具TImageBox的制作思路