Thank you for your feedback.
Form temporarily unavailable. Please try again or contact to submit your comments.

Create a PowerShell activity

Log in to subscribe to topics and get notified when content changes.

Create a PowerShell activity

Create a custom PowerShell activity return data to a workflow from a host using Microsoft PowerShell.

Before you begin

Role required: activity_creator or workflow_admin

About this task

ServiceNow supports PowerShell 2.0 and above. PowerShell 3.0 does not support Windows 2003 Server.


  1. Create a custom activity.
    This action creates a custom activity using a template.
  2. After setting up general properties and creating input variables, configure the PowerShell Execution Command:
    Map the input variables Use the variables you created to configure the command that Orchestration executes on the MID Server.
    Target host Host name or IP address of the target server for this PowerShell activity.
    Script type Type of PowerShell script to run on the PowerShell host. Available options are:
    • Custom PowerShell command
    • MID Server script file
    MID Server script file The MID Server script file contains the PowerShell scripts. This field is available when the Script type selected is MID Server script file.
    Command PowerShell command the activity executes. This field is available when the Script type selected is Custom PowerShell command. You can create your commands by dragging and dropping input variables from the variable builder into this field.
    PowerShell variables Name-value pairs to pass to the host with PowerShell. You can create these variables manually, or drag input variables into the Value field. Encrypted input variables retain their encryption, regardless of the data type settings in this field. If you type in a value and select the Encrypted data type, your value appears in plain text. It is only encrypted when it passes to the ECC Queue.
    Use MID Service Account If checked, this activity authenticates on the target host using the credentials of the MID Server service account only, without trying any other credentials.
    Note: The Credential tag field is not available.
    Credential tag Credential tag this activity must use to run PowerShell commands on the host. If this field is left blank, the MID Server tries all the available credentials until it finds a valid one, ending with the MID Server service account. If a credential tag is defined, the MID Server tries the credentials with that tag specified only and does not try the MID Server service account.
    Note: This field is not available when the Use MID service account check box is selected.
    Required MID Server capabilities MID Server to use for querying PowerShell, by capabilities. By default, the system selects a PowerShell MID Server.
    Note: You can map parameter values in a test payload to variables in the Outputs tab automatically. See automap output variables.

What to do next

Finish creating your PowerShell activity by creating output variables, creating a parsing rule, or creating template conditions. Refer to the create custom activities topic to know your template options.

PowerShell template execution parameters

You use execution parameters to create the input process script in the Pre Processing form of the activity designer.

For descriptions of the Powershell command fields, see the table in Configure the PowerShell execution command.
Note: You must use the executionParam. prefix with all variables in this table.
Table 1. Powershell execution parameters
Name Variable Type Usage
Source source String Target host on which to execute the command.
Script type script_type Enumeration Type of script to run. The possible types are:
  • command: Custom PowerShell command.
  • file: Identifies the MID Server script file to run.
Command command String Command sent to the MID Server for it to run on the target host.
MidScriptFile midScriptFile Reference Reference sys_id of the MID Server script file to execute, when the script_type is file.
PowershellVariables powershellVariables Array of hashmap Hashmap of JavaScript objects with name, value, and type for each object. The type of each object can be one of plain, encrypted, boolean, or null, corresponding to the PowerShell variable type selected in the inputs tab. For example, you might enter:
var newParameter = {"name":"parameterName","value":"parameterValue", "type": "plain" };
Credential tag credential_tag String Specific credential tag this activity must use to run PowerShell commands on the host.
MidCapabilities midCapabilities String (comma separated) List of required MID Server capabilities.
ValueCapabilities valueCapabilities Array of hashmap Capability values used to select the MID Server. For more information, see MID Server capabilities. If there are additional capabilities that are assigned by value, use this example to customize the MID Server selection:

Powershell post-processing parameters and payload parsing

Use these parameters to create a post-processing script, payload parsing, and tagging.

Table 2. Powershell post-processing parameters
Name Variable Type Usage
Tags tags Hashmap of tag values to return from the PowerShell command. Contains the tags used to extract output using the PowerShell commands. The tag output is delimited by double percentage signs, as in %%tagname%% … %%. Set up the command using the format in this example:
Write-Host %%tagname1%%
output1 line 1
output1 line 2

Write-Host %%tagname2%%
output2 line 1
output2 line 2

The tags returned are JavaScript hashmap objects in which each key is prefixed with tag appended with the tagname.

{"__text__": "", 
"tagtagname1":"output1 line1\noutput1 line2\n", 
"tagtagname2":"output2 line1\noutput2 line2\n"}
Hresult hresult String Contains any hresult returned from the PowerShell command. If no hresult is returned, this parameter is null.
Output output String Contains the raw output from the PowerShell command.
EccSysID eccSysID String Contains the reference ID associated with the ECC Queue input message returned by the activity.
ErrorMessages errorMessages String Contains any error messages retrieved from the PowerShell command. This value is null if there are no error messages.