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
  
    