在Jscrīpt中使用WMI51Testing软件测试网T`|i&j5tcy;F
51Testing软件测试网(dEu"PV;N;I:k ?
陈能技
1v4C QQo02007-9-29
*Ov$BVs k0 51Testing软件测试网@{Yba0SS
WMI,全称Windows Management Instrumentation,即Windows管理规范。通过WMI,我们可以访问和管理几乎所有Windows资源,包括:性能数据、文件系统、注册表、服务、操作系统设置、事件日志、进程等等。51Testing软件测试网oVu NJ7o+O!H
51Testing软件测试网 Yae I.l:i5n4V o#c
而Jscrīpt通过创建winmgmts对象可以获取WMI的任何管理对象的实例。例如,下面脚本获取的是内存管理对象:51Testing软件测试网,^.c2ih;{
{:p
L`6Ipo
Var Win32Memory =51Testing软件测试网/~
o7llq$c
W+~ T
GetObject("winmgmts:").InstancesOf("Win32_LogicalMemoeryConfiguration");
#g_ ^Yr
X!J tg U0for(e= new Enumerator(Win32Memory);!e.atEnd();e.moveNext())51Testing软件测试网j,X+kD,s"_tOa
Wscrīpt.Echo(e.item().TotalPhysicalMemory);51Testing软件测试网 _$c4r#^3G v8Jl+U
5c NqN `kU0在测试过程中,我们经常需要监视windows的资源使用情况,例如,看服务的状态如何,性能表现如何等等,Jscrīpt透过WMI的访问,可以提供我们简单获取这些信息的方法。
&_zl/X+J F0
w"ws,yV$Zh3f\X)m0下面脚本查找windows服务中的Themes服务,并显示它的状态:
-VM,d3?jDx1t0Win32Service= GetObject("winmgmts:").InstancesOf("Win32_Service");51Testing软件测试网6G?F0~,a"?#R P~
for(e = new Enumerator(Win32Service);!e.atEnd();e.moveNext())51Testing软件测试网\)h
c ev#K[!\/v&hk
{51Testing软件测试网}TaNKa\fd
service = e.item();51Testing软件测试网 X%R
k(T-F
//Wscrīpt.Echo(service.Name);
#R(?\!`4vu#K_rMm0 if(service.Name=="Themes")51Testing软件测试网
H4o\)Yq9Y/f6W-l
{
JE*?r'pey"Y&zK0 Wscrīpt.Echo(service.Descrīption+ " " +service.Status);
E"\e!X)jp0 }
Ht+_8i%_%u*d3H,l4P0}
!hSF4n{rR
_?0
*n%G/xJ+a0在MSDN上关于WMI有个很生动的比喻,可以用来说明WMI的用途:WMI规范的用途非常类似于汽车控制面板上的仪表板所提供的用途。仪表板可以监视各种组件(如油量表)的信息,指示器则告诉你各种事件何时发生(如开门警报)。所有这些仪器的使用使您可以决定如何驾驶和维护您的汽车。51Testing软件测试网;t3P,i}h/E
]Yq PN#c7Z)u0对于测试而言,WMI提供给我们的是方便地监视、诊断被测试程序状态以及对操作系统的更改和影响的作用。
h|l0j![N3f0