snmp.ps1 - powershell script by ActiveXperts Software
snmp.ps1 connects to the SNMP agent, reads the OID value and performs a match.
Use snmp.ps1 directly from ActiveXperts Network Monitor; in the Manager's 'Monitor' menu, select 'New Check (Script)' and select snmp.ps1. 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.ps1 script code
################################################################################# # ActiveXperts Network Monitor PowerShell script, © ActiveXperts Software B.V. # For more information about ActiveXperts Network Monitor, visit the ActiveXperts # Network Monitor web site at http://www.activexperts.com ################################################################################# # Script # Snmp.ps1 # 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 # Declare Parameters: # 1) strHost (string) - Host name or IP address of the (remote) SNMP agent # 2) strCommunity (string) - Community string. Default: 'public' # 3) strOID (string) - Retrieve value of this OID. # 4) strExpectedValue (string) - Match retrieved value against this expected value # Usage: # .\SNMP.ps1 '<Hostname | IP>' '<Community name' '<x.x.x.x.x....>' '<Expected value>' # Sample: # .\SNMP.ps1 'localhost' 'public' '1.3.6.1.2.1.1.5.0' 'My Computer Name' ################################################################################# # -- Declare Parameters param( [string]$strHost = '', [string]$strCommunity = '', [string]$strOID = '', [string]$strExpectedValue = '' ) # -- Use _activexperts.ps1 with common functions . 'C:\Program Files\ActiveXperts\Network Monitor\Scripts\Monitor (ps1)\_activexperts.ps1' ################################################################################# # // --- Main script --- ################################################################################# # -- Clear screen and clear error cls $Error.Clear() # -- Validate parameters, return on parameter mismatch if( $strHost -eq '' -or $strCommunity -eq '' -or $strOID -eq '' -or $strExpectedValue -eq '' ) { $res = 'UNCERTAIN: Invalid number of parameters - Usage: .\SNMP.ps1 "<Hostname | IP>" "<community name>" "<x.x.x.x.x....>" "<expected value>"' echo $res exit } # Declare local variables by assigning an initial value to it $strExplanation = '' # Create instance of SNMP object $objSnmpManager = new-object -comobject AxNetwork.SnmpManager $objConstants = new-object -comobject AxNetwork.NwConstants # Initialize SNMP object $objSnmpManager.ProtocolVersion = $objConstants.nwSNMP_VERSION_V2C $objSnmpManager.Initialize() if( $objSnmpManager.LastError -ne 0 ) { $res = 'UNCERTAIN: Unable to initialize ActiveXperts Network Component SNMP object' echo $res exit } # Open connection to (remote) SNMP agent $objSnmpManager.Open( $strHost, $strCommunity ) if( $objSnmpManager.LastError -ne 0 ) { $res = 'UNCERTAIN: Unable to connect to agent [' + $strHost + '] in [' + $strCommunity + '] community. Be sure SNMP agent is running' echo $res exit } $objSnmpObject = $objSnmpManager.Get( $strOID ) if( $objSnmpManager.LastError -ne 0 ) { $res = 'UNCERTAIN: Unable to retrieve [' + $strOID + ']. . Be sure SNMP agent is running' echo $res exit } if( $objSnmpObject.value.ToUpper() -eq $strExpectedValue.ToUpper() ) { $res = 'SUCCESS: Value read: [' + $objSnmpObject.value + '], expected:[' + $strExpectedValue + '], Type:[' + $objSnmpObject.Type + ']' } else { $res = 'ERROR: Value read: [' + $objSnmpObject.value + '], expected:[' + $strExpectedValue + '], Type:[' + $objSnmpObject.Type + ']' } # Note: type ID#s are described in ActiveXperts Network Component manual, and included in ActiveXperts Network Component samples. $objSnmpManager.Close() $objSnmpManager.Shutdown() echo $res exit ################################################################################# # // --- Catch script exceptions --- ################################################################################# trap [Exception] { $res = "UNCERTAIN: " + $_.Exception.Message echo $res exit }