1.WMI简介
WMI是英文Windows Management Instrumentation的简写,通过使用WMI,我们可以获取本地或远程服务器的性能参数和进程运行情况,以及大部分硬件信息,但前提是运行的用户要有足够的权限,如administrator组用户等。这也是做负载均衡所需要且比较方便快捷的途径。
2.使用时首先添加System.Management.dll,然后引用
using System.Management;
3.定义远程访问
public class ManagementConnectPool
{
private static System.Management.ConnectionOptions Conn = new ConnectionOptions() ;
private static ManagementObjectSearcher mos = new ManagementObjectSearcher();
private string username = "";
private string pwd = "";
private string space="";
private string server = "";
public ManagementConnectPool(string mpusername,string mppwd , string mpspace ,string mpserver)
{
this.username = mpusername;
this.pwd = mppwd;
this.space = mpspace;
this.server = mpserver;
Conn.Username = mpusername;
Conn.Password = mppwd;
string scopestring ="//" + mpserver + mpspace;
System.Management.ManagementScope Ms = new ManagementScope(scopestring);
Ms.Connect();
mos.Scope = Ms;
}
public ManagementObjectCollection getQueryResult(string queryString)
{
ObjectQuery oq = new ObjectQuery();
oq.QueryString = queryString;
mos.Query = oq;
ManagementObjectCollection moc =mos.Get();
return moc;
}
}
4.获取CPU,内存,网络流量等信息
public class Monitor
{
private string username = "";
private string pwd ="";
private string ip = "";
ManagementConnectPool mcp;
WMSServerClass server;
public Monitor(string username,string pwd,string ip){
this.username = username;
this.pwd = pwd ;
this.ip = ip;
mcp = new ManagementConnectPool(username,pwd,"/root/cimv2",ip);
server = new WMSServerClass();
}
WMI方式获取网卡流量
WMI方式获取CPU信息
WMI方式获取内存使用率
}
5.获取本地机器信息(WEB)
1.如何用WMI获得指定磁盘的容量
2.如何用WMI获得指定磁盘的容量
3.如何列出机器中所有的共享资源
4.怎样写程控制让系统中的某个文件夹共享或取消共享
5.如何获得系统服务的运行状态
6.通过WMI修改IP,而实现不用重新启动
7.如何利用WMI远程重启远程计算机
8.利用WMI创建一个新的进程
9.如何通过WMI终止一个进程
10.如何用WMI 来获取远程机器的目录以及文件
11.网卡的MAC地址
12.CPU的系列号
13.主板的系列号
14.获取硬盘ID
15.获取本机的用户列表
}
通过上面介绍的方法,可以很轻松的获取远程或本地机器的性能,进程和硬件信息等。另外:WMI也可以通过使用Vbscript等脚本调用。
说明:其中部分资源来自网友小山的blog。但不够详细说明WMI在服务器性能方面的能力!