使用 VBScript 腳本監測 Windows 性能

使用 VBScript 腳本監測 Windows 性能

作者:終南   <[email protected]>

在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
&apos; 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章