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 3.0 to 5.1.
Procedure
Create a custom activity.
This action creates a custom activity using a template.
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](automap-output-variable-inputs.md).
What to do next
Finish creating your PowerShell activity by creating output variables, creating a parsing rule, or Conditions. Refer to the create custom activities topic to know your template options.
Parent Topic:Orchestration custom activity templates
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.
| 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" };
executionParam.powershellVariables.push(newParameter); |
| 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.
| 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%% Write-Host %%tagname2%% output2 line 1 output2 line 2 … Write-Host%% |
| 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. |