'# 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