Home > Casper, Mac administration, Mac OS X, Scripting > Fixing one systems management tool’s agent with another systems management tool

Fixing one systems management tool’s agent with another systems management tool

One of the issues you can run across with systems management tools is doing an automated uninstall and reinstall of the agent software. The dilemma is that you can tell the agent to uninstall itself, but after that there’s no agent software on the machine to run the reinstall command. Most management tools include the ability to scan your network and install agents on machines automatically, but that may not be appropriate for all environments as you may have some machines where you don’t want to install the systems management agent.

I ran across a situation like that recently in my own environment. For details, see below the jump.

My workplace runs both JAMF Software’s Casper and Dell Kace’s KBox 1000 agents on our Macs. We recently updated our KBox to version 5.4, but Kace has the following known issue listed in the 5.4 release notes:

11002: Client machines running Mac OS 10.8 and K1000 Agent version 5.3 cannot upgrade to Agent version 5.4. Dell KACE recommends that you either upgrade to Agent version 5.4 before installing Mac OS 10.8, or uninstall and reinstall the Agent software manually.

Since I already had a number of 10.8 Macs in my environment with the 5.3 agent installed, I wanted to have Casper handle the uninstall and reinstall of the KBox agent for me, rather than doing it manually on the affected machines. I also wanted to target just the 10.8 Macs with the 5.3 agents. After doing some poking around, I saw that the KBox agent had the version number stored in the /Library/Application Support/Dell/KACE/data/version text file.

Once I had that information, I wrote the following Casper extension attribute to check for that file and pull the agent version information from it:


# Check to see if the KBox agent is installed.
# If the agent is installed, report the agent
# version.

if [ -f "/Library/Application Support/Dell/KACE/data/version" ]; then
   result=`cat "/Library/Application Support/Dell/KACE/data/version" | grep 5`
   echo "<result>$result</result>"
   echo "<result>Not installed</result>"

For those interested, the extension attribute is available here on my GitHub repo:


Once I had the version information available, I then set up a smart group that only included 10.8 Macs with the 5.3 version of the KBox agent. From there, I built a new Casper policy that uninstalls the older KBox agent, then installs the new 5.4 agent and set the policy scope to target the machines in the previously-mentioned smart group. After that, Casper took care of the automated uninstall and reinstall of the KBox agents during the affected machines’ next check-in with the Casper server.

  1. December 19, 2012 at 8:03 pm

    Such a nerd :p

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: