在不用第三方軟件前提下想定時檢查服務器的cpu使用率硬盤使用率和內存使用率,並生成報表在服務器巡檢過程當中至關實用,其實在Windows下,能夠用批處理命令寫一個腳本,在必定程度上完成這些簡單的任務,可是若是想要實現複雜的功能,批處理命令就力不從心了。處理批處理命令,微軟還提供了WSH。咱們能夠使用VBScript來寫腳本,訪問其內置對象或COM對象,而後讓其在WSH中執行,就能夠完成較爲複雜的功能。下面提供幾種實用的代碼,只須要將代碼複製到文本文檔而後保存爲vbs格式就能夠在windows上直接運行了,若是是win2k的系統那麼你須要從xp或win2003的system32下copy 「CScript.exe」到vbs的腳本目錄。windows
CPU 使用率代碼以下服務器
CPU 使用率代碼以下ide
On Error Resume Next Set objProc = GetObject("winmgmts:\\.\root\cimv2:win32_processor='cpu0'") Wscript.Echo "CPU 使用率: " & objProc.LoadPercentage & "%"硬盤 使用率代碼以下對象
Set fsoobj = CreateObject("Scripting.FileSystemObject") DriversInfo = GetDriversInfo DriversInfo = Replace(DriversInfo, "|", vbCrLf) sReturn ="硬盤信息:" & vbCrLf & DriversInfo Wscript.Echo sReturn Function GetDriversInfo() GetDriversInfo = "" Set drvObj = fsoobj.Drives For Each D In drvObj Err.Clear If D.DriveLetter <> "A" Then If D.isReady Then GetDriversInfo = GetDriversInfo & "分區:" & D.DriveLetter & vbCrLf GetDriversInfo = GetDriversInfo & "可用空間:" & cSize(D.FreeSpace) & vbCrLf GetDriversInfo = GetDriversInfo & "總大小:" & cSize( D.TotalSize) & vbCrLf GetDriversInfo = GetDriversInfo & "使用率 :" & (100*((D.TotalSize-D.FreeSpace)/D.TotalSize)) &"%" & vbCrLf GetDriversInfo = GetDriversInfo & "|" Else End If Else End If Next End Function Function cSize(tSize) If tSize >= 1073741824 Then cSize = Int((tSize / 1073741824) * 1000) / 1000 & " GB" ElseIf tSize >= 1048576 Then cSize = Int((tSize / 1048576) * 1000) / 1000 & " MB" ElseIf tSize >= 1024 Then cSize = Int((tSize / 1024) * 1000) / 1000 & " KB" Else cSize = tSize & "B" End If End Function內存 使用率代碼以下ip
strComputer = "." set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") set colOS = objWMI.InstancesOf("Win32_OperatingSystem") for each objOS in colOS strReturn = "內存總數: " & round(objOS.TotalVisibleMemorySize / 1024) & " MB" & vbCrLf &"內存可用數: " & round(objOS.FreePhysicalMemory / 1024) & " MB" & vbCrLf &"內存使用率 :" & Round(((objOS.TotalVisibleMemorySize-objOS.FreePhysicalMemory)/objOS.TotalVisibleMemorySize)*100) & "%" Wscript.Echo strReturn next若是想把結果保存在文本里只須要用批處理調用內存
echo off echo CPU信息:>info.xls cscript //Nologo cpu.vbs >> info.xls echo.>>info.xls echo 內存信息:>>info.txt cscript //Nologo ram.vbs >> info.txt echo.>>info.xls cscript //Nologo hard.vbs >> info.txt rem copy info.xls "%date%".xls