TABLE OF CONTENTS
- 1. Introduction
- 2. Configuration Location
- 3. Configuration Keys
- 4. Example Configuration for Executable with Parameters
- 5. Console Process Steps That Can Receive Data
- 6. Important: Encoding of Paths and Parameters
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", 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
- 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).
- { "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
Please note:If you want to use special characters in the executable path or parameters, remember to encode them 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
Disclaimer
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article