best way to nag a user

Valued Contributor II

We have a handful of systems that are on 10.6.x, what's the best way to generate a popup to nag the user 2-3x per day that they need to work with their local IT staff?

I was thinking just the reboot message, but make it so it displays if it's not rebooting... but I think there are other ways too.


Legendary Contributor III

There are probably a thousand ways you can do this. OK, perhaps not that many, but you have a number of options.

Generally speaking, something like a jamfHelper message that is run from a policy scoped to a Smart Group would work, but if you only want something to come up a few times a day and not on an every 15 check in or just once a day, you'll probably have to have it kicked in via a LaunchDaemon that runs with a StartInterval time that matches what you want, for example, run every 150 minutes (2.5 hours) or whatever.
Just use Lingon to make that and wrap it up in a pkg installer with a postinstall/postflight script that activates it. Deploy to the systems you want to target and it should come up at the time interval you've specified.

Not sure if these users/systems are mobile users who may take their Macs home at the end of the day, but if so, you could probably do a simple check within the script that the daemon calls to check the current time, and if its past the end of the day just exit silently, that way they won't get prompted to "contact IT" if they are sitting at home on their Mac at 11 PM or something like that.

Contributor III


What do you mean by "work with your local IT staff" anyway? What are you trying to get them to do? (Just curious.)

Valued Contributor III

Where I currently work, our Novell wizard is working on two projects that may be of some use. They're currently in design but i'm fairly sure I can share them too the world. They are:
1) Remote Punch over TCP/IP
2) Three Phase Power over Ethernet

Now I believe he's going to launch a kickstarter project to try and develop these, so more news as I have it.


Valued Contributor III

On a more serious note, you should think about a timed launch agent that calls a script. The script would then have to use something like cocoadialog to do the popups, or jamfhelper if you prefer.

Contributor II

Doing it 'pure casper' I would see two ways of doing it, which is taking longer to explain than it would to do it.

Way 1: Make three policies to say the same thing over and over and over. Have each set to run once per day, but between certain hours (#1 8a-11a, #2 11a-2p, #3 2p-4p). You would have the message come up three times per day.

Way 2: This is a bit more function-like way of doing way 1. Start off by setting up a policy to display the message you want the users to see. Make it an ongoing message, triggered by a custom trigger (updateFromSnowLeopard). Then make the same three policies from way 1, but instead of a message, have them call on the other policy in the run command of the advanced tab.

Way two should work, i have some really similar working right now and the benefit is that if you need to change the wording, you are only changing it one time. The added benefit is that you can look at the policy history and see what machines have seen the message and how many times. You can do it with other display methods (like cocoaDialog or jamfhelper), but this way there is no need to mount the CasperShare, so you save yourself a bit of headache and trouble.


I've found those who want to ignore your messages telling them they need to do something (like upgrade their OS) will continue to ignore you until they are forced. I recently modified one of the software update jamfhelper messages from the post below to limit the number of times they can delay the update. It runs once per day but after the 3rd time they have no choice.

Potentially, tweaking the nag message to meet your needs and using one of the options posted above to nag them multiple times a day would work.


you could use growl to send notifications, thats what i use to nag users to reimage, i set mine as a login message but you could get it to run every 15mins etc