Casper can be used for software updates but I felt something was missing (I am talking about me here!), so I went about writing something to help.
I wanted to once a week be able to install os x updates on all my clients and prompt them to restart while giving them a grace period if they couldn’t do it at the time of the prompt.
First, I created a smart group to find all my clients that had an update pending.
Once I had that setup, the next step was to configure a policy that would take care of the update process but also would incorporate the other pieces I was interested in. I recently learned about JamfHelper, it’s a very neat UI tool to pass info to users but also does support prompt.
To add some fancy to the pot, it also supports icons; I was set to complete this project.
I created a simple package that copies my prepared company logo into /private/tmp/, I wanted to be official!!
You can just use Casper Composer to create the package.
Once that was set, the next phase was to script my scenarios
I needed my GUI to inform my users that were in my smart group upon that their Mac had been updated and we needed them to restart either now or later.
While some updates do not need a restart, I also wanted to tackle the restart your computer so other things can be installed at login or startup and we can crush that huge uptime.
My script is available on my Github
Based on a time in Hours set, my users are prompted about updates having been installed on their macs and we needed them to restart now or later (later been the time set).
Based on the time set, the script will use the sleep command and resume another prompt once the time has passed but this time without the option of later, they will only be able to click now and the message can not be closed.
The values to change in the scripts are:
TIME #The Later option in Hours
LOGO #Replace COMPANY.icns by the name of your icns file
TITLE #This is the title of the GUI Prompt
PROMPT_HEADING #The main header within the GUI
PROMPT_MESSAGE #The text you want displayed to the user
PROMPT_MESSAGE_TWO #The second text to be displayed if they chose to reboot later
Once customized, it is time to get the policy going.
We create a policy to install software updates, on recurring but once a week with a client based schedule (This is of my own choice, if you feel you don’t need a schedule, you can skip it)
The policy will contain:
My icns package
Apple software updates
my script set to run after
Now all my clients update once a week and other updates I have in the queue to be installed at login or startup also install.
My users expect to only be bugged once a week about update and I know their computers are getting the attention they need.
Everyone is happy……..
I have updated the script to address skipping users who had manually installed their updates after the last inventory update so they are not prompted again.