'# Windows memory monitorization plugin for Pandora FMS agent
'# Author: Manuel A. GulĂn Bejarano
'# Version: 1.0
'# Date: 22/04/2013
'#
'# This program is free software: you can redistribute it and/or modify
'# it under the terms of the GNU General Public License as published by
'# the Free Software Foundation, either version 3 of the License, or
'# (at your option) any later version.
'#
'# This program 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 General Public License for more details.
'#
'# You should have received a copy of the GNU General Public License
'# along with this program. If not, see .
'#
'#
'# Load with:
'# module_plugin cscript.exe //B "%ProgramFiles%\pandora_agent\util\memory_plugin.vbs"
Option Explicit
On Error Resume Next
' Variables
Dim objWMIService, objItem, colItems, argc, argv, i, Percent
' Parse command line parameters
argc = Wscript.Arguments.Count
Set argv = CreateObject("Scripting.Dictionary")
For i = 0 To argc - 1
argv.Add Wscript.Arguments(i), i
Next
' Get drive information
Set objWMIService = GetObject ("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objItem in colItems
If argc = 0 Or argv.Exists(objItem.SerialNumber) Then
' Include only ethernet and wireless (type 0 and 9)
If (objItem.TotalVisibleMemorySize <> "") Then
'# Module to get the total physical memory in megabytes
Wscript.StdOut.WriteLine ""
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " generic_data"
Wscript.StdOut.WriteLine " MB"
Wscript.StdOut.WriteLine " 0"
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine ""
Wscript.StdOut.flush
End If
If (objItem.FreePhysicalMemory <> "") AND (objItem.TotalVisibleMemorySize <> "") Then
'# Module to get the physical used memory in megabytes
Wscript.StdOut.WriteLine ""
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " generic_data"
Wscript.StdOut.WriteLine " MB"
Wscript.StdOut.WriteLine " 0"
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine ""
Wscript.StdOut.flush
'# Module to get the percentage of physical used memory
Percent = round (100*(objItem.TotalVisibleMemorySize-objItem.FreePhysicalMemory)/objItem.TotalVisibleMemorySize, 2)
Wscript.StdOut.WriteLine ""
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " generic_data"
Wscript.StdOut.WriteLine " %"
Wscript.StdOut.WriteLine " 0"
Wscript.StdOut.WriteLine " 85"
Wscript.StdOut.WriteLine " 94.99"
Wscript.StdOut.WriteLine " 95"
Wscript.StdOut.WriteLine " 100"
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine ""
Wscript.StdOut.flush
End If
If (objItem.TotalVirtualMemorySize <> "") Then
'# Module to get the total virtual memory in megabytes
Wscript.StdOut.WriteLine ""
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " generic_data"
Wscript.StdOut.WriteLine " MB"
Wscript.StdOut.WriteLine " 0"
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine ""
Wscript.StdOut.flush
End If
If (objItem.FreeVirtualMemory <> "") AND (objItem.TotalVirtualMemorySize <> "") Then
'# Module to get the virtual used memory in megabytes
Wscript.StdOut.WriteLine ""
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " generic_data"
Wscript.StdOut.WriteLine " MB"
Wscript.StdOut.WriteLine " 0"
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine ""
Wscript.StdOut.flush
'# Module to get the percentage of virtual used memory
Percent = round (100*(objItem.TotalVirtualMemorySize-objItem.FreeVirtualMemory)/objItem.TotalVirtualMemorySize, 2)
Wscript.StdOut.WriteLine ""
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine " generic_data"
Wscript.StdOut.WriteLine " %"
Wscript.StdOut.WriteLine " 0"
Wscript.StdOut.WriteLine " 85"
Wscript.StdOut.WriteLine " 94.99"
Wscript.StdOut.WriteLine " 95"
Wscript.StdOut.WriteLine " 100"
Wscript.StdOut.WriteLine " "
Wscript.StdOut.WriteLine ""
Wscript.StdOut.flush
End If
End If
Next