---
sourceDocument: Zurich Workflow Data Fabric
sourceDocumentLink: https://www.servicenow.com/docs/r/zurich/integrate-applications

 Release :

    - zurich

ft:locale :

    - en-US

ft:publication_title :

    - Zurich Workflow Data Fabric

ft:clusterId :

    - crint

bundleId :

    - crint

workflow :

    - Creator


---

# MID Server PowerShell files

# MID Server PowerShell files {#ariaid-title1}

* Release version: Zurich
* 
* Updated July 31, 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 minutes to read

Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of MID Server PowerShell files

PowerShell functions for ServiceNow MID Server are organized in script files (.ps1) and PowerShell Script module files (.psm1).
These functions enable automation and orchestration activities across various ServiceNow activity packs such as Active Directory, Exchange, and SCCM.
The primary script,PSScript.ps1, handles credential testing, password encryption, and execution of scripts defined in orchestration workflows or MID Server script files.
Show full answer Show less  

## PowerShell Credential Handling

**PSScript.ps1** uses the **credential.psm1** module to verify access to remote hosts by testing Windows credentials stored in the MID Server's credential table. The script supports credential types specific to target systems, including:

* WMI (default if no type specified)
* Active Directory (AD)
* Exchange
* SCCM

Based on the credential type passed (via the `credType` parameter), the MID Server runs the corresponding test function to authenticate against the target host. If credential tests fail, the MID Server attempts to execute commands using its own service account.

The credential selection follows this logic:

* If the target host is the MID Server itself, the service account is used directly.
* If the target host is remote, all stored credentials are tested first.
* On failure of all credentials, the service account is used as a fallback.

## Exit Codes and Diagnostics

**PSScript.ps1** returns specific exit codes logged in the MID Server logs to indicate success or failure of script execution, aiding troubleshooting:

* 0: Script ran successfully
* 1: Test passed but script failed to execute
* 2: Syntax error in script parameters
* 3: All credential tests failed
* 4: Test passed but runtime error occurred

The **DiagnosticsUtil.psm1** module provides utilities to enhance PowerShell debugging within orchestration activities by logging debug messages, function parameter values, and obfuscating sensitive data such as passwords, helping maintain security during troubleshooting.

## Activity Pack Modules

Each ServiceNow orchestration activity pack includes its own PowerShell module files that contain relevant functions for that domain:

* **ActiveDirectory.psm1** -- Functions for Active Directory activities
* **Exchange.psm1** -- Functions for Exchange activities
* **SCCM.psm1** -- Functions for SCCM activities

## Key Benefits for ServiceNow Customers

* Streamlined management of credential testing and validation across multiple target systems via standardized PowerShell modules.
* Built-in fallback to MID Server service account ensures continuity if stored credentials fail.
* Diagnostic utilities enable efficient debugging and secure handling of sensitive information in automation workflows.
* Modular design supports easy customization and extension within specific orchestration activity packs.  
PowerShell functions are stored in script files (\*.ps1) that use a PowerShell Script
module (\*.psm1) file name extension.
The PowerShell functions are used by the PowerShell MID Server script files included in these activity packs:

* Active Directory
* Exchange
* SCCM
* PowerShell
{#mid-server-powershell-files__ul_gd5_554_cw}

## PSScript.ps1

This script performs a few tasks, such as credential testing, password encryption, and the
execution of scripts configured in the Orchestration Activity Designer or in MID Script
Files. However, this document focuses on how PSScript.ps1 uses the
credential.psm1 module for testing access to remote hosts.  
The PowerShell variables are generally used directly in the [PowerShell execution command](https://www.servicenow.com/docs/2U~DwkrONpzytSkwkNt8lA#t_MapPowershellVariablesToExecCmd "Use the input variables you created to configure the command that Orchestration executes on the Windows target machine.") or as arguments in the MID Server script file you specify. There are special variables that are passed to PSScript.ps1, such as credType. Figure 1. Using credType in execution parameters

## PowerShell credTypes

The PowerShell credential types:  
{#mid-server-powershell-files__table_pm5_b1p_cw__entry__2}

| Type | Description |
|-|-|
| WMI | testCredentialWMI |
| Exchange | testCredentilExchange |
| AD | testCredentilAD |
| SCCM | testCredentilSCCM |
[ ]

{#mid-server-powershell-files__table_pm5_b1p_cw}

If no credential type is passed to the PSScrip.ps1 script, the MID Server defaults to the
WMI test function to test access to the target host. If there is a credential type used, the
MID Server runs the corresponding test function for that credential type.

## Exit codes

These exit codes are returned from the PSScript.ps1 script and logged in the MID Server log
file.  
{#mid-server-powershell-files__table_r4l_n5q_dw__entry__2}

| Type | Test function |
|-|-|
| 0 | PowerShell command/script ran successfully. |
| 1 | Test finished successfully, but the command/script failed to execute. |
| 2 | Incorrect syntax passed to script. |
| 3 | All credentials including MID Server service account failed to execute the command/script. |
| 4 | Passed test and executed the activity, but an error was returned. Example user cannot be found. |
[Table 1. PSScript.ps1 exit codes]

{#mid-server-powershell-files__table_r4l_n5q_dw}

## DiagnosticsUtil.psm1 {#mid-server-powershell-files__section_rd2_vkl_4bb}

The MID Server uses this module file to perform PowerShell logging that assists debugging any Orchestration activity using PowerShell scripting. You can also add debugging statements directly to custom scripts.{#mid-server-powershell-files__table_sd2_vkl_4bb__entry__2}

| Utility | Description |
|-|-|
| SNCLog-DebugInfo | Log a debug message for a PowerShell script or PowerShell Orchestration activity. Examples: * `SNCLog-DebugInfo -message "My debug message..."` * `SNCLog-DebugInfo "My debug message"` {#mid-server-powershell-files__ul_qw4_knl_4bb} |
| SNCLog-ParameterInfo | Log a function parameter value. For `"function getHostName{ param( [String] $target )"`, the first value to the PowerShell hashtable is a string to indicate which function executes, and the values for each of the function parameters. Examples: * Function with single parameter: `SNCLog-ParameterInfo @("Running getHostName", $target)` Note: The debug message shows, '`Running getHostName $target:[actual value of $target]`'. * Function with multiple parameters: `SNCLog-ParameterInfo @("Running functionName", $param1, $param2, $param3)` {#mid-server-powershell-files__ul_azp_p4l_4bb} |
| SNCObfuscate-Value | Use this utility to encrypt values for security purposes. The function displays `"$variableName":***`, where \*\*\* is the obfuscated value. Example: `SNCObfuscate-Value $password` Note: The debug message reads: `"$password : ***"`. |
[Table 2. PowerShell diagnostic utilities]

{#mid-server-powershell-files__table_sd2_vkl_4bb}

## Credentials.psm1

The MID Server uses this module file to test access to a target host. The MID Server loops through all Windows credentials stored in its credentials table using the following access type functions, unless the PowerShell activity has a credential type (credType) defined. All ServiceNow® authored PowerShell activities are hard-coded to use a specific credential type. As a result, the MID Server only tests credential access against the designated function.{#mid-server-powershell-files__table_qmm_z1p_cw__entry__2}

| Function | Description |
|-|-|
| testCredentialWMI | Tests the given user and password on the target host using the Get-WMI object. |
| testCredentilAD | Tests the given user and password on the target host using the built-in DirectoryEntry object. |
| testCredentialExchange | Tests the given user and password to create a session on an Exchange host. This test uses the built-in PowerShell remoting feature on a remote host. WinRM is configured on Exchange servers by default. |
| testCredentialSCCM | Tests the given user and password to create a session on an SCCM server. This test uses the built-in PowerShell remoting feature on a remote host. This test requires WinRM to be configured. |
| testNoCredentialAccessWMI | Tests the given user and password on the target host, using the Get-WMI object. This test is used when no credType is used. |
[Table 3. PowerShell test functions]

{#mid-server-powershell-files__table_qmm_z1p_cw}  
Note:  
If the test passes using one of these functions, that credential is used to run the PowerShell script/command. If the tests fail to access the target host using these functions, the MID Server runs the PowerShell script/command under the account of the MID Server service.

This diagram illustrates the dependency of the credential selection behavior on the host
being targeted by the PowerShell activity. If the target host is the IP address or host name
of the MID Server, the MID Server bypasses all credentials in the Credentials table and uses
the account of the MID Server service. If the target host is not the MID Server, then all
Windows credentials are used first.
If all credentials in the Credentials table are unsuccessful in running the PowerShell
activity, then the MID Server uses the MID Server service account.  
Figure 2. PowerShell credential selection criteria

## ActiveDirectory.psm1

This module file stores the functions used by the PowerShell scripts shipped with the [Active Directory](https://www.servicenow.com/docs/access?context=c_OrchActiveDirectoryActivities&version=zurich&pubname=zurich-servicenow-platform&ft:locale=en-US) activity pack.

## Exchange.psm1

This module file stores the functions used by the PowerShell scripts shipped with the [Exchange](https://www.servicenow.com/docs/EOiKEN9aoJuYiOdX1sjSaw "The Exchange activity pack allows workflows to manage Microsoft Exchange mail systems.") activity pack.

## SCCM.psm1

This module file stores the functions used by the PowerShell scripts shipped with the [SCCM](https://www.servicenow.com/docs/z_xdoxo8BIKsaog_uxLafA "The Microsoft System Center Configuration Management (SCCM) activity pack provides Orchestration activities you can use to manage software deployments and collections on an SCCM server.") activity pack.

