使用 VBScript 脚本监测 Windows 性能

来源:互联网 发布:python 字典迭代 编辑:程序博客网 时间:2024/04/28 22:42

使用 VBScript 脚本监测 Windows 性能

 

作者:终南   <li.zhongnan@hotmail.com>

 

 

在Windows下,可以用批处理命令写一个脚本,在一定程度上完成一些简单的任务,但是如果想要实现复杂的功能,批处理命令就力不从心了。

处理批处理命令,微软还提供了WSH。它是微软脚本技术系列中的一种,是一种脚本环境。我们可以使用VBScript来写脚本,访问其内置对象或COM对象,然后让其在WSH中执行,就可以完成较为复杂的功能。

例如,使用记事本编写一个文件,输入以下内容:

Wscript.Echo "Current Time: " & date() & " " & time()

将其保存为mytime.vbs,然后双击该文件,就会弹出如下对话框:

 

处理双击可以运行脚本外,还可以在命令行环境下,通过输入:

Wscript.exe mytime.vbs

Cscript.exe mytime.vbs

来运行脚本。

1、监测CPU使用情况

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!//" & strComputer & "/root/cimv2")

For i = 0 to 10
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor ",,48)
load = 0
n = 0
For Each objItem in colItems
   load = load + objItem.LoadPercentage
   n = n + 1
Next
Wscript.Echo date() & " " & time() & vbTab & (load/n)
Wscript.Sleep 3000
Next

该脚本循环10次,每隔3秒输出一次当前时间和CPU的使用率。

2、查看内存情况

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!//" & strComputer & "/root/cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory",,48)
For Each objItem in colItems
memory = Clng(memory) + Clng(objItem.capacity)
Next
Wscript.Echo "物理内存:" & memory/1024 & "K"

set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set objMemory = objRefresher.AddEnum _
(objWMIService, "Win32_PerfFormattedData_PerfOS_Memory").objectSet
objRefresher.Refresh
objRefresher.Refresh
objRefresher.Refresh
For each myMemory in objMemory
Wscript.Echo "可用内存:" & myMemory.AvailableBytes/1024 & "K,已用内存:" & myMemory.CommittedBytes/1024 & "K"
Next

该脚本显示总的物理内存大小,以及可用内存与内存使用情况。

3、查看硬盘可用空间

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!//" & strComputer & "/root/cimv2")
Const HARD_DISK = 3
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")
For Each objDisk in colDisks
' Disk label size
Wscript.Echo objDisk.DeviceID & " 共" &CLng(objDisk.Size/1024/1024/1024) & "G,可用" &Clng(objDisk.FreeSpace/1024/1024/1024) & "G"
Next

该脚本显示每个分区总空间以及可用空间大小。

 

4、查看网络接口流量信息

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!//" & strComputer & "/root/cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfRawData_Tcpip_NetworkInterface",,48)
For Each objItem in colItems
Wscript.Echo objItem.Name & " " & objItem.BytesReceivedPerSec & " " & objItem.BytesSentPerSec
Next

该脚本显示每个网络接口自启动后接收和发送字节数,对此稍加改造,就可以向显示CPU使用率一样显示网络接口的速度了。

以上4个事例都利用Windows下的WMI技术,如向了解详细情况,可以参考:

http://msdn.microsoft.com/en-us/library/aa394084(VS.85).aspx

原创粉丝点击