当前位置:早雪网网络学院编程文档.NET → 简介WMI的功能

简介WMI的功能

减小字体 增大字体 作者:佚名  来源:本站原创  发布时间:2005-6-24 2:47:16
简介WMI的功能

编译:http://www.aspcn.com 飞刀
原文:http://www.csharpcorner.com

Windows管理仪器(WMI)在本地建立一个WINMSD是非常有用的,如果将其放在局域网中,那就更加有用了。

很多公司都拥有成千上万台计算机,他们都想将这些列表进行储存管理,但是又不想花费昂贵的价格去购买微软的SMS产品,此时只要你指要你指定你的IP列表,并告诉服务器去扫描这些计算机信息,一个通霄这个问题就解决了,也许你还想把这些数据入库呢:)注意WMI支持收集性能数据。

WMI在Win2000以上的版本中被默认安装,在NT4中使用WMI则需要下载WMI核心程序(在VS.Net的安装盘中就有这个程序),当然操作WMI的前提是你有管理的权限。

下面是一个收集信息的例子:

using System;
using System.Management;

namespace WMI2
{
/// <summary>
/// Summary description for Class1.
/// </summary>

class Class1
{
static void Main(string[] args)
{
Console.WriteLine("Computer details retrieved using Windows Management Instrumentation (WMI)");
Console.WriteLine("mailto:Written%2001/23/02%20By%20John%20O'Donnell%20-%20csharpconsulting@hotmail.com");
Console.WriteLine("=========================================================================");


//连接远程计算机
ConnectionOptions co = new ConnectionOptions();
co.Username = "john";
co.Password = "john";
System.Management.ManagementScope ms = new System.Management.ManagementScope("\\\\192.168.1.4\\root\\cimv2", co);

//查询远程计算机
System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher query1 = new ManagementObjectSearcher(ms,oq);
ManagementObjectCollection queryCollection1 = query1.Get();

foreach( ManagementObject mo in queryCollection1 )
{
Console.WriteLine("Name : " + mo["name"].ToString());
Console.WriteLine("Version : " + mo["version"].ToString());
Console.WriteLine("Manufacturer : " + mo["Manufacturer"].ToString());
Console.WriteLine("Computer Name : " +mo["csname"].ToString());
Console.WriteLine("Windows Directory : " +mo["WindowsDirectory"].ToString());
}

oq = new System.Management.ObjectQuery("SELECT * FROM Win32_ComputerSystem");
query1 = new ManagementObjectSearcher(ms,oq) ;
queryCollection1 = query1.Get();

foreach( ManagementObject mo in queryCollection1 )
{
Console.WriteLine(mo["systemtype"].ToString());
Console.WriteLine("Total Physical Memory : " + mo["totalphysicalmemory"].ToString());

}



oq = new System.Management.ObjectQuery("SELECT * FROM Win32_processor") ;

query1 = new ManagementObjectSearcher(ms,oq) ;
queryCollection1 = query1.Get();
foreach( ManagementObject mo in queryCollection1 )
{
Console.WriteLine(mo["caption"].ToString());
}

oq = new System.Management.ObjectQuery("SELECT * FROM Win32_bios");
query1 = new ManagementObjectSearcher(ms,oq) ;
queryCollection1 = query1.Get();

foreach( ManagementObject mo in queryCollection1 )
{
Console.WriteLine(mo["version"].ToString());
}
}
}
}

[数据载入中...] [返回上一页] [打 印]