This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

[Tool]ARM Template Generator V2 - Updated 22/11/21

Hi everyone,

I am pleased to announce the availability of the second version of the ARM Template Generator Tool.

The documentation is now included in the download package.

What´s new?

- Interface redesign

- Darkmode

- Support for User Template Import

- Option for creating a User Template based on an existing Account

- Support for Group Template Creation & Import

- Support for Open Template Creation & Import

- Help links now open in Browser and have been updated

- Tooltips and watermarks throughout the tool

- GUI for building creation rules

- Added selection of premade validation rules

- Added REGEX cheat sheet

- Multiple values are now configurable for Exchange Database and Policy fields

- Script parameter fields make autocomplete suggestions based on configured properties

- Added out of order navigation

Since i can only test so much on my own I would ask everyone using the Import feature to keep backups of the original template files or just not save over them, at least for now.

If you have any issues or see wonky behaviour please let me know, preferably with a detailed description of the expected and actual behaviour.

The old version will stay available under the old link for now.

Changelog 21/06/19:

- fixed an issue while importing templates with completely missing modules section

- fixed an issue with loading and writing the first parameter of the regexpr method

- fixed an issue with dragging list items into the builder UI when their index in the list is higher than the highest index that is displayed by default

Changelog 26/07/19:

- made sure the import function respects the order of AD Attributes (should have been the case before, if you see anything to the contrary let me know)

- added buttons for re-ordering AD Attributes

- fixed issue with the import and export function reading/writing the "IsScriptEnabledDefault" property in the scriptoptions as "IsScriptEnabledByDefault" (note that when you import a template with the faulty property name the value will have to be reconfigured manually)

Changelog 23/08/19:

- fixed a crash after editing lookuptables

- added minimum length field to password options - changed default value from 12 to 8

Changelog 25/03/21:

- added a check to ensure uniqueness of lookuptable names

Changelog 09/04/21:

-fixed crash when editing MultiValueTextField

-fixed issue with creationrules not automatically saving when using out of order navigation

-added newline variable token in creationrule builder (linebreaks in imported templates are parsed to type hardcoded text instead of the token)

Changelog 22/11/21:

-fixed nullpointer exception

-changed input validation on domain field to allow fqdns with digits in the tld

Download Link:

http://bit.ly/ARMtemplateV2

VirusTotal:

*note: the 1 detection is most likely a false positive, apart from an added catch clause and a change to a regex nothing changed from the last release (which had 0 detections)

Virus Total (new) / VirusTotal (Old)

Here´s a glimpse of the new interface:

pastedImage_2.pngpastedImage_3.pngpastedImage_4.pngpastedImage_5.pngpastedImage_6.pngpastedImage_8.png

Parents
  • Hi Paul,

    I looked for a possibility to have a lookup ( searchfield )  for the manager in a user creation template. I only saw this option available at the Open Template. I had created templates manually and there I had implemented the following option after a hint from support:

    {
    "Name": "manager",
    "Definition": {
    "Type": "SearchField",
    "IsEnabled": "true",
    "IsRequired": "true",
    "Label": "['en-us:manager', 'de-de:Vorgesetzter']",
    "ObjectType": "Account",
    "Filters": {
    "ActiveDirectory": "PropertyValues{TypeId = -100 AND Value='user'}"
    }
    }
    }

    So after creating a template with your really helpful tool I opened it with a editor and added the above code. The template verifies o.k. and the manager option is there when I use it to create a user with this template. ARMTG doesn't pick it up, when opening a template and removes it from the code as well. Is there any way to have this code stay in the template or even be able ti use that n ARMTG ?

    Thanks

    Thomas

Reply
  • Hi Paul,

    I looked for a possibility to have a lookup ( searchfield )  for the manager in a user creation template. I only saw this option available at the Open Template. I had created templates manually and there I had implemented the following option after a hint from support:

    {
    "Name": "manager",
    "Definition": {
    "Type": "SearchField",
    "IsEnabled": "true",
    "IsRequired": "true",
    "Label": "['en-us:manager', 'de-de:Vorgesetzter']",
    "ObjectType": "Account",
    "Filters": {
    "ActiveDirectory": "PropertyValues{TypeId = -100 AND Value='user'}"
    }
    }
    }

    So after creating a template with your really helpful tool I opened it with a editor and added the above code. The template verifies o.k. and the manager option is there when I use it to create a user with this template. ARMTG doesn't pick it up, when opening a template and removes it from the code as well. Is there any way to have this code stay in the template or even be able ti use that n ARMTG ?

    Thanks

    Thomas

Children
  • Hi Thomas,

    see the bottom of my post for an answer to your actual question.

    It is important to know in which interface you want to use the resulting template since there are some inconsistencies between controls available in the fat client and the web interface.

    The approach you are currently using should work for the fat client.

    To get it to work in the web interface you´ll need to use the AccountSearchTextField control (if i remember correctly that is "officially" only supported in openTemplates but works in usertemplates as well). That control does only return the displayname to the field it is defined on though so you will need an additional field to fetch the DN.

    For your setup you´ll need:

    1 attribute to hold the control (i´ll use extensionAttribute1 in my example, it needs to be a valid attribute)

    1 attribute (the manager attribute) to fetch the result from the control

    First the field that holds the control:

    {
    "Name": "extensionAttribute1",
    "Definition": {
    "Type": "AccountSearchTextField",
    "Label": "User",
    "IsRequired": false,
    "LookupTableId": "AccountSuchergebnis",
    "AttributesToLoad": ["distinguishedname"]
    }
    },

    The control creates a lookuptable with the defined lookuptableId, which you can then use to fetch the distinguishedname in your second field:

    {
    "Name": "manager",
    "Definition": {
    "Type": "TextField",
    "Label": "ManagerDN",
    "IsHidden": true,
    "Constraints": {
    "CreationRule": "<lookup>(AccountSuchergebnis,distinguishedname)"
    }
    }
    },

    Regards

    Paul

    P.S. looks like i answered too fast without reading the last few sentences but i´ll leave it here for future reference. 

    To answer your question in the current version of the template generator the output contains only controls that the TG explicitly supports which is not the case for the Searchfield (if i remember correctly that didnt exist in that form at the time or at least i wasnt aware of it). So unfortunately you will have to add it manually after editing a template with the TG.