Internal Process Modifications

Modified on Mon, 21 Sep at 12:32 PM

TABLE OF CONTENTS

1. Introduction

In five(9)s Console, most core functionalities (e.g., OSD, SWD, Patch, AddDevice) are implemented as independent Console Processes, each with its own dedicated configuration. These processes can be customized (Internal Process Modifications).

Customizations can be integrated via JSON configuration files, mail templates, and custom executables to extend or modify the default process behavior.


2. Configuration Location

The main process configuration files are stored in the config folder of the Console Processes. This is also the path for custom executables:

C:\inetpub\wwwroot\five9sWS\ConsoleProcess\config

Mail templates are stored in:

C:\inetpub\wwwroot\five9sWS\MailTemplates

The images for the mail templates are located in:

C:\inetpub\wwwroot\five9sWS\MailTemplates\Pictures


3. Configuration Keys

Each JSON file, such as P01StatusChange.json, represents the configuration for a Console Process. Configurations mainly consist of an array of steps (groups of actions) and a set of parameters. Parameters can be used by custom executables. Below is an explanation of the most important keys for each step.

Note: If a specific step is not configured, the internal action is executed by default. However, steps can be configured to be skipped or replaced.

3.1. Name

The name for the Step. Each process has the Step “Main” which can be used to replace the complete process with a customer-specific executable. “Step000” is the first step and can be used to call an executable before any internal actions are called. The other Steps are dependent on the specific five(9)s Console Process.

3.2. Action

Action
Description
Default
The default/internal action for this step will be used.
Add
Adds a custom executable to be called afterthe step.
Replace
Replaces the current step with a custom executable.
Skip
Skips the given step.

3.3. ProcessFailOnError

 Most steps are necessary for the process. If a step fails, the process cannot finish. That’s why the default value is true; but it can be set to false for optional steps.

3.4. Executable

 To execute your own logic, you can use an executable. It must exist in the same folder as the config folder (e.g. “C:\inetpub\wwwroot\five9sWS\ConsoleProcess\configs”.). Subfolders are supported. See below for the ParameterList key and details about passing parameters.


 Example:

"Executable": "subfolder\\example.exe",


 3.5. ParameterList 

You can pass parameters to the executable using the "ParameterList" key in the step configuration/object. All process parameters defined at the end of the process’s JSON file (under the "Parameter" key) can be used. For the OSD process (P03Osd), custom inventory parameters can also be included.

 To make use of a parameter, please follow the structure:

[Parameter:<parametername>]

 And for CI parameters:

[CI:Location]

 In the Add Device process (P09AddDevice), the device has to be created first. At this point, the input from the website is not yet available as a Custom Inventory field, but it is available as a parameter. It can be passed as follows:

[Parameter:Location]

 (Location is the name of a passed CI value for Add Device).
(Site CI Input > P09AddDevice -> Call of GenerateHostName.exe (custom.exe) -> Create device)

 

						Be careful with spaces
					
If you are using a parameter containing spaces, ensure that you add double quotes around the parameter. E.g., Logfile=\"[Parameter:Logfile]\"

4. Example Configuration for Executable with Parameters

 {
     "Name": "Step120"
     "Action": "Add",
     "Description": "Will be called after the Ivanti Provisioning Task is finished. Sends a mail that the provisioning is ready. Sets the device state to Active. In case of error the device state is set to the prior state.",
     "ProcessFailOnError": true,
     "Executable": "subfolder\\example.exe",
     "ParameterList": "/Computername=\"[Parameter:DeviceName]\" /pat=123  /logfile=\"C:\\inetpub\\wwwroot\\five9sWS\\ConsoleProcess\\configs\\AssignComputerGroup\\Logs\\ACG_[Parameter:DeviceName].log\""
 }


5. Console Process Steps That Can Receive Data

 The following Steps can receive data from an external executable: 
  •   OSD Step000 (set NewHostName) 
  •   OSD Step070 
  •   OSD Step090 (set TemplateId) 
  •   OSD Step100 
  •   OSD Step120 
  •   AddDevice Step000 (set HostName) 
  •   AddDevice Step110 (after the device was created set CustomInventory) 
 
This can be used to override the provisioning template id.
The exit code has to be 0 (no error code / everything ok).
 
 The standard output should contain a json string like: 
  •   { "TemplateId":"30", "StaticHostname":"NewVm001" } 
  •   { "[CI:AssetID]":"XYZ123" } 
 
 Remember to escape double quotes. An example PowerShell script:
 
  •   Write-Output "{""TemplateId"":""30""}";

6. Important: Encoding of Paths and Parameters


Encoding using executable

Please note: If you like to use special characters inside the executable path or parameters to encode accordingly.

\b Backspace (ascii code 08)
\f Form feed (ascii code 0C)
\n New line
\r Carriage return
\t Tab
\" Double quote
\\ Backslash character

  Document information 

   Last Modified Date   
  25.02.2026

 
 
 Verified versions   
 five(9)s Console version 5.1

Disclaimer 
 
 
Even though every care has been taken by five(9)s GmbH to ensure that the information contained in this publication is correct and complete, it is possible that this is not the case. five(9)s GmbH provides the publication "as is", without any warranty for its soundness, suitability for a different purpose or otherwise. five(9)s GmbH is not liable for any damage which has occurred or may occur as a result of or in any respect related to the use of this publication. five(9)s GmbH may change or terminate this publication at any time without further notice and shall not be responsible for any consequence(s) arising there from. Subject to this disclaimer, five(9)s GmbH is not responsible for any contributions by third parties to this publication.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article