How to add `loaduserProfile` to an existing property on IIS Pool

You can modify this type in order to add additional properties. In the case of the IIS plugin, you would also need to modify the script the performs the action, in this case -
create-or-modify-application-pool.ps1 .

Add the following to <XLD_HOME>/ext/synthetic.xml .

    <type-modification type="iis.ApplicationPool">
        <property name="loadUserProfile" kind="boolean" default="false" hidden="false" required="false" />
    </type-modification>

You can then change the script that controls this action and use it to overwrite the script the is normally run from the plugin. In order to do that - create a directory <XLD_HOME>/ext/iis or <XLD_HOME>/ext/iis6 (if deploying to an iis6 container) and place your script in there (see attached).

Add a line to the script to assign loadUserProfile .

$applicationPool.processModel.loadUserProfile = $deployed.loadUserProfile

The property is then assigned on deployment.

Note:
This example shows the basics of adding a new property to an existing type and doesn’t fall under the support scope. It completely a customer responsibility moving forward
If you are using an iis.ApplicationPool container that was created before this modification, it will fail as the property doesn’t exist.
For this to work you would need to create a new iis.ApplicationPool .

REF
https://docs.xebialabs.com/v.9.6/xl-deploy/how-to/customize-an-existing-ci-type/