Run a Powershell script via Automate Joe
    • 20 Sep 2022
    • PDF

    Run a Powershell script via Automate Joe

    • PDF

    Article summary

    You can configure Automate Joe to automatically run Powershell scripts. For general information about setting up Automate Joe, see Automate Joe

    Requirements

    For the scripts to run:

    • You must place the Powershell scripts in a folder on the machine of the Automate Joe agent. For example, C:\SysAidAJAddOns\Scripts. Note the location for use in the parameter mapping.
    • The internal logic of any Powershell script that you want to run must be valid to be executed on the Automate Joe machine.
    • The Automate Joe machine must have access to all resources that are referenced in the scripts.

    Parameter Mapping

    The Automate Joe  process named "Powershell - Execute Script” can support up to ten input parameters and five output parameters. Input parameter values can be taken from the SR, action item, or can be manually entered constants. 

    Output Parameter Mapping

    In order to return the exit code, last message, and output parameters back to SysAid, you need to map them like this:

     You can also create custom columns in the Action Item entity specifically for Exit Code (text) and Last Message (Text Area), if you do not want to use out-of-the-box custom fields.

    Scripting Hint

    To access input parameters from within a script you would use the $args[X] expression, where X is a parameter index from 0 to 9, e.g.:

     $Name = $args[0]

     To return output parameters you would use the Write-Output "out_param_0X@@#@@V”  expression, where X is a  parameter index from 1 to 5 and V is the value for the parameter, e.g.:

    Write-Output "out_param_01@@#@@1"


     Also, it is possible to return a message from a script by using the following expression, e.g. for a “Finished Successfully” message:

    Write-Output "process_last_message@@#@@Finished Successfully"


    To run a script successfully, there should always be an output for the process_exit_code parameter with value of zero at the end:

    Write-Output "process_exit_code@@#@@0"


    The typical skeleton of a script would look like this:

    try {

        $ps code here

     

         Write-Output "out_param_01@@#@@0"

         Write-Output "process_last_message@@#@@Finished Successfully"

    } catch {

      Write-Output "out_param_01@@#@@1"

      Write-Output "process_last_message@@#@@$($_)"

    }

    Write-Output "process_exit_code@@#@@0"