snmp.vbs - vbscript script by ActiveXperts Software
snmp.vbs connects to the SNMP agent, reads the OID value and performs a match.
Use snmp.vbs directly from ActiveXperts Network Monitor; in the Manager's 'Monitor' menu, select 'New Check (Script)' and select snmp.vbs. Configure the required parameter, or press 'Load a working sample'.
In ActiveXperts Network Monitor, Administrators can use three different scripting languages: Powershell, VBScript and SSH.
snmp.vbs script code
' /////////////////////////////////////////////////////////////////////////////// ' // ActiveXperts Network Monitor - VBScript based checks ' // For more information about ActiveXperts Network Monitor and VBScript, visit ' // http://www.activexperts.com/support/network-monitor/online/vbscript/ ' /////////////////////////////////////////////////////////////////////////////// Option Explicit ' Declaration of global variables Dim SYSDATA, SYSEXPLANATION ' SYSDATA is displayed in the 'Data' column in the Manager; SYSEXPLANATION in the 'LastResponse' column ' Constants - return values Const retvalUnknown = 1 ' ActiveXperts Network Monitor functions should always return True (-1, Success), False (0, Error) or retvalUnknown (1, Uncertain) ' // To test a function outside Network Monitor (e.g. using CSCRIPT from the ' // command line), remove the comment character (') in the following lines: ' Dim bResult ' bResult = CheckSnmp( "localhost", "public", "1.3.6.1.2.1.1.5.0", "My Computer Name" ) ' WScript.Echo "Return value: [" & bResult & "]" ' WScript.Echo "SYSDATA: [" & SYSDATA & "]" ' WScript.Echo "SYSEXPLANATION: [" & SYSEXPLANATION & "]" Function CheckSnmp( strHost, strCommunity, strOID, strExpectedValue ) ' Description: ' Connect to the (remote) SNMP agent, read the OID value and match it ' This function uses ActiveXperts Network Component. ' ActiveXperts Network Component is automatically licensed when ActiveXperts Network Monitor is purchased ' For more information about ActiveXperts Network Component, see: www.activexperts.com/network-component ' Parameters: ' 1) strHost - Host name or IP address of the (remote) SNMP agent ' 2) strCommunity - Community string. Default: "public" ' 3) strOID - Retrieve value of this OID. ' 4) strExpectedValue - Match retrieved value against this expected value ' Usage: ' CheckSnmp( "<Hostname | IP>", "community name", "<x.x.x.x.x....>", "<expected value>" ) ' Sample: ' CheckSnmp( "localhost", "public", "1.3.6.1.2.1.1.5.0", "My Computer Name" ) Dim objSnmpManager, objConstants, objSnmpObject CheckSnmp = retvalUnknown ' Default return value SYSDATA = "" ' Not used by this function SYSEXPLANATION = "" ' Set initial value ' Create instance of SNMP object Set objSnmpManager = CreateObject( "AxNetwork.SnmpManager" ) Set objConstants = CreateObject( "AxNetwork.NwConstants" ) ' Initialize SNMP object objSnmpManager.ProtocolVersion = objConstants.nwSNMP_VERSION_V2C objSnmpManager.Initialize If( objSnmpManager.LastError <> 0 ) Then SYSEXPLANATION = "Unable to initialize ActiveXperts Network Component SNMP object" CheckSnmp = retvalUnknown Exit Function End If ' Open connection to (remote) SNMP agent objSnmpManager.Open strHost, strCommunity If( objSnmpManager.LastError <> 0 ) Then SYSEXPLANATION = "Unable to connect to agent [" & strHost & "] in [" & strCommunity & "] community. Make sure SNMP agent is running" CheckSnmp = retvalUnknown Exit Function End If On Error Resume Next Set objSnmpObject = objSnmpManager.Get( strOID ) If( objSnmpManager.LastError <> 0 ) Then SYSEXPLANATION = "Unable to retrieve [" & strOID & "]. Make sure SNMP agent is running" CheckSnmp = retvalUnknown Exit Function End If If( UCase( objSnmpObject.Value ) = UCase( strExpectedValue ) ) Then SYSEXPLANATION = "Value read: [" & objSnmpObject.Value & "], expected:[" & strExpectedValue & "]" CheckSnmp = True Else SYSEXPLANATION = "Value read: [" & objSnmpObject.Value & "], expected:[" & strExpectedValue & "]" CheckSnmp = False End If ' Note: type ID's are described in ActiveXperts Network Component manual, and included in ActiveXperts Network Component samples. objSnmpManager.Close() objSnmpManager.Shutdown() End Function