Option Explicit ' © 2009 Sun Microsystems, Inc. ' ' This library is free software; you can redistribute it and/or ' modify it under the terms of the GNU Lesser General Public ' License as published by the Free Software Foundation; either ' version 2 of the License, or (at your option) any later version. ' ' This library is distributed in the hope that it will be useful, ' but WITHOUT ANY WARRANTY; without even the implied warranty of ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ' Lesser General Public License for more details. ' ' You should have received a copy of the GNU Lesser General Public ' License along with this library; if not, write to the ' Free Software Foundation, Inc., 59 Temple Place - Suite 330, ' Boston, MA 02111-1307, USA. ' Purpose: ' VBScript that prints system status to stdout - reduced version ' ' Usage: ' cscript //NoLogo res\scripts\shell\mysql_system_status.vbs /LoopCount:30 /Interval:1000 ' or ' cscript //NoLogo res\scripts\shell\mysql_system_status.vbs /DoStdIn ' ' Notes: ' Please note that CScript has to be used. ' ----------------------------------------------------------------------------- ' Dim variables Dim oFso, oWmiService, oItems, oItem, oStdOut, oStdIn, sCmd, sCpu, sMem, doStdIn Dim oPhysMemItems, physMem, TotalMem, availMem ' ----------------------------------------------------------------------------- ' Init Objects Set oFso = CreateObject("Scripting.FileSystemObject") Set oWmiService = GetObject("winmgmts:\\.\root\CIMV2") Set oStdOut = oFso.GetStandardStream(1) Set oStdIn = oFso.GetStandardStream(0) TotalMem = 0 Set oPhysMemItems = oWmiService.InstancesOf("Win32_OperatingSystem") oStdOut.WriteLine("1") For Each physMem in oPhysMemItems TotalMem = physMem.TotalVisibleMemorySize Next ' ----------------------------------------------------------------------------- ' Loop as long as required While (1 = 1) ' Reset vars sCpu= "C " sMem= "M " sCmd= oStdIn.ReadLine If (sCmd = "exit") Then WScript.Quit End If ' CPU usage If (sCmd = "cpu") Then Set oItems = oWmiService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name = '_Total'") For Each oItem In oItems sCpu= sCpu + CStr(oItem.PercentProcessorTime) Next oStdOut.WriteLine(sCpu) End If ' Mem usage If (sCmd = "mem") Then Set oItems = oWmiService.ExecQuery("Select * FROM Win32_PerfFormattedData_PerfOS_Memory") availMem = 0 For Each oItem In oItems availMem= availMem + oItem.AvailableKBytes Next oStdOut.WriteLine(sMem + CStr((TotalMem - availMem)/TotalMem * 100)) End If Wend ' Exit WScript.Quit