ActiveXperts Network Monitor ships with a powerful set of pre-defined checks. Each individual check has a static number of configuration items. To monitor other items, or to combine monitoring items, you can make use of custom PowerShell checks.
Most of the built-in checks have a PowerShell equivalent, implemented as a PowerShell (.ps1) script file. Out-of-the-box, each PowerShell script monitors the same items as the built-in check. Feel free to modify the script.
To add a new PowerShell-based Memory PagesPerSecond monitoring check, do the following:
- On the 'Monitor menu', open 'New Monitoring Check (Script)' and choose 'New PowerShell Check'. The 'PowerShell Check' dialog box appears;
- In the 'Script File' selection box, select 'Memory-CheckPagesPerSecond.ps1';
- In the 'Script Parameters'group box enter the required parameters. You can also load a working sample first by clicking on the 'Click here to load a sample' link.
To customize the above monitoring check, click on the 'Edit button' next to the 'Script File' selection box. Notepad will be launched. You can now make changes to the PowerShell script.
################################################################################# # ActiveXperts Network Monitor PowerShell script, (c) ActiveXperts Software B.V. # For more information about ActiveXperts Network Monitor, visit the ActiveXperts # Network Monitor web site at https://www.activexperts.com ################################################################################# # Script: # Memory-CheckPagesPerSecond.ps1 # Description: # Check pages per second on the computer specified by strComputer # Parameters: # 1) strComputer As String - Hostname or IP address of the computer you want to check # 2) nMaxPages As Number - Maximum pages per second allowed # 3) strCredentials As String - Specify an empty string to use Network Monitor service credentials. # To use alternate credentials, enter a server that is defined in Server Credentials table. # (To define Server Credentials, choose Tools->Options->Server Credentials) # Usage: # .\Memory-CheckPagesPerSecond.ps1 '<computer>' <nMaxPages> '<alt-credentials> | <>' # Sample: # .\Memory-CheckPagesPerSecond.ps1 'localhost' 5 '' ################################################################################# # Parameters param ( [string]$strComputer, [int]$nMaxPages, [string]$strAltCredentials ) cls # Check paramters input if ( ([string]$strComputer -eq "") -or ([int]$nMaxPages -eq 0) ) { $res = "UNCERTAIN: Invalid number of parameters - Usage: .\Memory-CheckPagesPerSecond.ps1 '<computer>' '<alt-credentials> | <>' <nMaxPages>" echo $res exit } # Create object if ( [string]$strAltCredentials -eq "" ) { $objMem = Get-WmiObject -ComputerName $strComputer -Class Win32_PerfFormattedData_PerfOS_Memory } else { $objNmCredentials = new-object -comobject ActiveXperts.NMServerCredentials $strLogin = $objNmCredentials.GetLogin( $strAltCredentials ) $strPassword = $objNmCredentials.GetPassword( $strAltCredentials ) if($strPassword -ne "") { $strPasswordSecure = ConvertTo-SecureString -string $strPassword -AsPlainText -Force } $objCredentials = new-object -typename System.Management.Automation.PSCredential $strLogin, $strPasswordSecure $objMem = Get-WmiObject -ComputerName $strComputer -Class Win32_PerfFormattedData_PerfOS_Memory -Credential $objCredentials } ################################################################################# # The script itself ################################################################################# if ( $objMem -eq $null ) { $res = "UNCERTAIN: Unable to connect. Please make sure that PowerShell and WMI are both installed on the monitered system. Also check your credentials" echo $res exit } $nPages = $objMem.PagesPerSec $nDiffPages = $nMaxPages - $nPages if ( $nDiffPages -gt 0 ) { $res = "SUCCESS: " } else { $res = "ERROR: " } $res = $res + "Pages per second=[" + $nPages + "], maximum allowed=[" + $nMaxPages + "]" echo $res exit