Documentation forServer & Application Monitor
Monitoring your applications and environment is a key capability of Hybrid Cloud Observability and is also available in a standalone module, Server & Application Monitor (SAM). Hybrid Cloud Observability and SAM are built on the self-hosted SolarWinds Platform.

Windows Script Monitors

Windows Script Monitors are SAM component monitors that run a PowerShell, Perl, VBScript, or any other Windows script against SNMP- or WMI-managed nodes, and then process the script's exit code and text output.

By default, scripts run locally on the SolarWinds Platform server, which often functions as the Main Polling Engine, or on the Additional Polling Engine (APE) to which the node is assigned. To execute scripts on the managed node itself, you can either install the SolarWinds Platform Agent for Windows on the node, or rewrite the script in PowerShell utilizing WinRM.

  • With agentless polling, the local execution of the script is local and the script is executed on the polling engine.
  • For SolarWinds Platform agent polling, the local script execution allows the script to be run on the target node.

To learn about creating custom scripts, see these topics in the SAM Custom Application Monitor Template Guide:


The statistic for this component monitor is the value returned by the script. This monitor can return up to ten output pairs — 10 statistic values and 10 optional messages. If you exceed the maximum allowed, remove the excess output pairs. Excess pairs are ignored.

Script Monitor Formatting

At least one message and statistic is required. The statistic must be a valid integer and be able to be converted to double, otherwise it is handled as Not as Number (NaN). There is no maximum length for the message; however, only alphanumeric characters and the underscore are allowed.

Field descriptions


A default description of the monitor. You can override the default description by adding to or replacing the text, which will then be automatically saved. The variable to access this field is ${UserDescription}.

Component Type

The type of monitor you are using.

Enable Component

Determines if the component is enabled. Disabling this component leaves it in the application as deactivated and does not influence application availability or status.

Credential for Monitoring

Select a Windows credential that can log in to the SolarWinds Platform server, and has sufficient rights on the target node (which may be the SolarWinds Platform server itself, depending upon your application) to do whatever the script needs to do. For example, if the script does something with WMI, the credentials also need WMI rights on the target node.

Click a credential in the list, or use the <Inherit credential from node> option. If the credential you need is not in the credentials list, add it in the Credentials Library. See Understand the Credentials Library for details.

Script Arguments

Specify arguments to pass to the script. You may include the variables ${IP}, ${USER}, and ${PASSWORD}, which are replaced respectively by the IP address of the target node, the credential user name, and the credential password.

Script Body

Click Edit to open the script editing window where you can type or paste script text.

Script Engine

Specify the scripting language to be used. The default value is vbscript. Click here for a list of supported scripting engines in the SAM Custom Application Monitor Template Guide.

Count statistic as difference

Enable this option to show the statistical different from the last polling cycle. For example, if the statistic collected in one poll is 7 and that changes to 10 in the next poll, the difference is 3. This data can be helpful when working with alerts.

Status Roll-Up

Choose how you want the monitor to report the returned results based on the output provided by the script. With the ability to have multiple values returned, selecting how scripts report back offers more flexibility. The default selection is “Show worst status."

User Notes

Add notes for easy reference. You can access this field by using the variable, ${UserNotes}.