Scripting Question

How can I deploy software via a task chain but not have the task chain repeat? Perhaps this isn't the right use of a task chain?

05/16/2019 778 views

Hi everyone,

 Sorry if the question sounds vague, I wasn't sure how to word it. I've been lurking for awhile and this is my first post so be gentle please and thank you.  We are preparing to deploy some new PDF software to some users and I've created a task chain to perform all the necessary steps.

The steps are as follows:

Un-install Adobe Reader DC


Install Foxit Reader.

Currently each of these tasks is a separate script, chained together with the task chain. Devices are targeted via a label 'Foxit Reader'. The task chain works great, it targets the right computers, runs at the right time, and does what it is supposed to do. 

The problem is, if I leave the schedule enabled it will re-run this task chain on each computer each night (or whenever it's scheduled to run). If I disable the schedule then new computers added to the label will fail to have the software actually delivered. I was hoping to be able to add a step to the beginning of the chain where it would check to see if Foxit Reader already installed, and if so it would just stop the chain there. Unfortunately I have not been able to figure this out. I added a step that checks if the file exists but when it does exist it considers this a success not a failure so I can't just use the 'abort on failure' on that step of the task. A KACE support agent suggested I use a smart label, it would find any computer with Adobe Reader DC and apply the label which would start the task chain to remove Adobe and put in Foxit. That would work if we were replacing Adobe Reader DC for everyone, but we aren't so it would run this task on machines were we do not want it to run. 

I feel like I've gone about this backwards due to inexperience with the system and I'd love any insight you can provide. I am very new to KACE, only started working with it a couple weeks ago, so keep that in mind. Maybe this shouldn't be a task chain and there's another way that makes more sense to do this? I'm not sure. Thanks in advance kind people!

0 Comments   [ + ] Show comments


All Answers


Well what are the criterias for unnstalling" Adobe rdr" and replacing with "Foxit" on machines ??

Smart labels are used when consistent conditions  need

to be met for certain tasks to happen.

Installing "Foxit" for some people with "Adobe Rdr" and not others....is too random

and not enough info for kace to work with.

There has to be something in common that all the people getting "Foxit rdr" have.

Find that..... and then you can have a schedule.

If not ......... you need to do it manually.

Answered 05/17/2019 by: akmagnum
Red Belt

  • Well the idea was that the devices labelled 'Foxit Reader' would be the only ones with Adobe Reader removed, that's the common denominator here. I thought about it more and maybe I'll have the foxit reader label JUST installed foxit reader and then use a smart label to find computers with the foxit reader label AND adobe reader installed and that would trigger a task chain to remove the reader. Then when the smart label is processed again it would find foxit reader but NOT adobe reader and stop the process there. Thanks for your input

What is the criteria for your smart label? can you post that.

See if the machines get removed from the smart label after the install.  If not on a machine that is still assigned the smart label force an inventory, recheck if still there in the label force a second. After second if still there re-exam your smart label logic.    Depending on how you have the criteria it could take a couple of inventory cycles to satisfy the conditions.


I ran into the loop thing when I did not realize the program installed and then did an update so it no longer matched the software the smart label was set to and would then run again.

Answered 05/17/2019 by: SMal.tmcc
Red Belt

  • your smart label should look for machines with reader installed and foxit not installed. You should also create smart labels for the other variables to check progress or identify machines that need intervention.
    Label - Foxit installed reader not to know machines that are correct
    Label -Both Foxit and Reader installed to handle those exceptions with a script to remove reader only
  • Obligatory apologies for formatting.
    My smart label setup is as follows:

    Label Names = Foxit Reader AND Software Name = Adobe Acrobat Reader DC

    At first I had 'Software Name CONTAINS Adobe Reader' but I was getting false positives to I made it explicit to that exact string and no more false positives. You are correct that After uninstalling Adobe Reader it must be inventoried again before the smart label is removed.

    SO in the current setup all you need to do is apply the 'Foxit Reader' label to a machine you want to deploy the reader to and the rest is handled as below

    IF LABEL = 'Foxit Reader' THEN RUN 'Foxit Reader installer' at next scheduled time (midnight)

    When midnight rolls around the task to install Foxit is initiated, the first step of the process checks to see if Foxit Reader is already installed, if it is then the Foxit Reader installer process halts there.

    Half an hour later all machines with the 'Foxit Reader' Label are forced to re-inventory, this ensures the smart label 'remove adobe reader' is applied only to the machines that need it.

    Half hour after that the 'remove adobe reader' task is started, running only on machines with the smart label.

    Basic tests have shown this to work well and I will be refining it and looking for issues over the next little while.

    Thanks for your input
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