SDA - Dynamic selection of SMA actions

Hi all,

a small but useful bit for SDA today! Recently a customer contacted me and asked for a dynamic selector during the OS-Deployment. Use case is that admins or end users can select which items from SMA should be applied after a fresh deployment of the device. So, I put together this SDA Software Selector. Please note that this tool is not covered from Quest support.

In this article i will mention different import-packages. You can download all of them here:  DOWNLOAD

If you need assistance in importing these files to your KACE SMA feel free to contact your local partner, your local sales rep or have a look to this KB article: https://support.quest.com/kace-systems-management-appliance/kb/116949/how-to-import-and-export-resources

Let’s get started!

After importing the “TG_SDA_SoftwareSelector_v*.pkg” file you’ll find a new Task Group in your SDA. It’s called “[TW] Software Selector” and contains one Pre-installation Task and one Mid-level Task.

The Pre-installation Task “[TW] Software Selector” needs some modification to work in your environment. You’ll find the “SDA_SoftwareSelector_v*.zip” attached to this task. These files are within the zip file:

  • run.cmd: This file is only for starting the right binary for your architecture. If you are sure to only run x64 your can directly run the executable.
  • SDA_SoftwareSelector_x*.exe: The executable which brings you the GUI. You can run it with a timeout argument in seconds. The default timeout is 30 seconds (GUI closes and saves the given configuration for this endpoint). The Full Command Line would be: “SDA_SoftwareSelector_x*.exe 60” for a 60 second timeout.
  • SMA_scripts.csv: This is what needs to be modified from you!

You find some sample data from my test lab here. Row 1 contains a headline; this headline needs to be there so don’t remove it. After that you can put unlimited rows with your SMA items you want to assign to the client but always fill out all 3 information’s.

  • Name: The display name you want to see in the GUI for your SMA item and which you can use for your smart labels (more to that later). You can use every functionality of a managed client in SMA like (MI, Patching, Task-Chains, OVAL-Scans, Dell-Updates or Scripts).
  • ID: This can be a fake ID if you want to use smart labels based on the name afterwards. If you want to run SMA scripts which are requested by the client itself, you need to use the actual SMA script ID.
  • Locked: can contain whatever you want. If you put a “yes” there the setting will be locked in the GUI and automatically assigned to your client. This could be used for standard software for example. Every other value will be ignored, and the admin or end user can check or uncheck the item in the GUI.

If you have created your own “SMA_scripts.csv” and attached the new zip file to the Pre-Installation Task, you can assign the Task Group to your installation (it doesn’t matter if you use script or image-based installations). I recommend that you run the Pre-Installation Task as first task in your installation plan.

If everything is correct you should see this GUI when a new deployment has been started.

You can’t minimize the window and both (a klick on save and closing the GUI) will save the configuration for this client. You can navigate through this application using tab and make selections using space. Items which have been marked with “locked” in the csv file can’t be modified.


The midlevel task “[TW] Software Selector Copy” will copy the saved configuration to “C:\ProgramData\Quest\SDASoftwareSelector\software.csv”.

Now you have two possibilities going forward (or a mix of both):

  1. Creating a custom inventory in SMA and let the SMA push the items to the device (my recommendation)
  2. Running SMA script IDs directly from the client.


For scenario number one you need to import the “CI_SDASoftwareSelector_v1.kpkg” to your SMA. This will create a custom inventory field (called “Inventory: SDASoftwareSelector”) in your devices which will list the ID and the name of selected items from your OS-Deployment.

Now you can create smart labels which you can target in all your SMA items (MI, Patching, Task-Chains, OVAL-Scans, Dell-Updates or Scripts). The SMA will then push the items to the freshly installed client based on the settings or schedule in the specific item.


For scenario number two you can import the Post-installation Task “PIT_SDASoftwareExecutor_v*.pkg” to your SDA. You will get a task which is called “[TW] Software Executer” and you can add it optionally to your previously imported Task Group. This task needs to run after the SMA Agent installation and will execute the script IDs which have been chosen in the Pre-Installation Task. There is nothing you need to modify or configure on your site.

Hope that this little SDA AddOn will help you in solving dynamic OS-Deployment scenarios. If there is anything unclear or you need help, feel free to leave a comment or contact me directly.

Kind Regards



  • Very nice... - JMorano 3 years ago
  • Good job. - James_Rico 3 years ago
  • I was looking for something like that for a long time. Thanks a lot for this. - Gerhart 2 years ago
This post is locked
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ