Want to highlight a helpful answer? Upvote!

Did someone help you, or did an answer or User Tip resolve your issue? Upvote by selecting the upvote arrow. Your feedback helps others! Learn more about when to upvote >

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

Is there any way to prevent non-admin user accounts to receive software update prompts?

I am the admin account user on our MacBook Pro, and there is one standard user account on it as well. Generally we are both logged on so we can quickly switch between user accounts and 'spin the desktop'.


For some reason, all the software update notifications seem to be received when the standard user account is the active one.


I know that the standard user cannot actually update without my account password and my Apple ID, but a) The notifications confuse the non-admin user, and she gets flustered, and b) Even if she manages to cancel them from the notification area, she then has to remember to tell me verbally that she had had one.


Is there any way to stop her receiving the update notifications altogether?


Running OS X 10.8.2 on MacBook Pro.


Thanks in advance.

MacBook Pro, OS X Mountain Lion

Posted on Dec 26, 2012 2:19 PM

Reply
Question marked as Best reply

Posted on Dec 26, 2012 2:25 PM

You could set Software Update to not automatically check. Then you'd need to check periodically.

Sorry, I don't know of anything else.

12 replies

Dec 27, 2012 7:24 AM in response to Steve Zodiac

You should be able to do this by unchecking the software update service in the system preferences to prevent the system from running the check as the "_softwareupate" user and passing it to the notification service that broadcasts to all user accounts. Then you can check for the software update in an admin account using the following Terminal line:


/System/Library/CoreServices/Software Update.app/Contents/Resources/SoftwareUpdateCheck -Check YES


This line can be scripted via Terminal services to run on a schedule (ie, every few hours), and if there are found updates it will launch the App Store for that account and present them. Granted this approach circumvents the notification service, but should work. To try this, open TextEdit on your computer and in a new document choose "Make Plain Text" from the Format menu.


Then copy and paste the following text into the new document:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
          <key>Label</key>
          <string>local.softwareupdatecheck</string>
          <key>ProgramArguments</key>
          <array>
                    <string>/System/Library/CoreServices/Software Update.app/Contents/Resources/SoftwareUpdateCheck</string>
                    <string>-Check</string>
                    <string>YES</string>
          </array>
          <key>StartInterval</key>
          <integer>21600</integer>
</dict>
</plist>


When done, save the document to your desktop as "softwareupdatecheck.plist" or anything as long as it ends with ".plist." Then get information on the file in the Finder to ensure its name ends with plist and not anything else like "plist.txt" (rename it accordingly in the Info window's "Name & Extension" section.


With the file name appropriate, hold the Option key and choose the "Library" option in the Finder's "Go" menu. Then locate the folder called "Launch Agents" in the library and drag the text file to this folder. Then log out and log back into your account.


This text file is a launch agent script that instructs the system to run the program arguments every 21600 seconds (6 hours) whenever the user is logged in. The program arguments here are simply those to check for software updates for the system. You can change this time interval to be any number of seconds you would like, but there are other options to use besides the "StartInterval" key for scheduling the task. This approach simply has it repeat every number of seconds, but you can use other options to have it only run on specific hours or days, or only have it run once when you log in, etc.


If this works for you, then if you'd like to explore these other options write back here and we can go over them for you.

Dec 27, 2012 2:06 PM in response to Topher Kessler

Thanks for that Topher.


I have copied the text, saved the file as instructed and dragged it into my Launch Agents folder as instructed.


(Thanks for being so specific in those instructions; it really does help those of us who are not quite so Mac advanced.)


I will see how it goes and report back.


Incidentally, if it does check for updates every six hours and finds some, how does it present itself to me as a positive result? And will I also get negative results every six hours? I suppose I will find out soon...


Cheers

Jan 2, 2013 1:31 AM in response to Topher Kessler

Well, I've had the file in my launch agent folder for nearly a week now, and I have to report that the App Store app hasn't been launched at all during that time.


I know there is at least one update available, because I am refusing to 'upgrade' to iTunes 11, but I haven't been troubled by any update notifications for it, or anything else.


So I'm a bit flummoxed...

Jan 2, 2013 10:34 PM in response to Steve Zodiac

I havent done this since Snow Leopard, but it appears Apple has implemented a few new requirements to run this. Therefore as I described it earlier the launch agent will not run properly as it doesnt run the command as the appropriate user, among other details. Try instead to edit or recreate the same launch agent file as mentioned above, but instead use the following for the contents of it:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
          <key>Label</key>
          <string>local.softwareupdatecheck</string>
          <key>ProgramArguments</key>
          <array>
                    <string>/System/Library/CoreServices/Software Update.app/Contents/Resources/SoftwareUpdateCheck</string>
                    <string>-Check</string>
                    <string>YES</string>
          </array>
          <key>UserName</key>
          <string>_softwareupdate</string>
          <key>MachServices</key>
          <dict>
                    <key>com.apple.softwareupdatecheck</key>
                    <true/>
          </dict>
    <key>StartInterval</key>
    <integer>21600</integer>
</dict>
</plist>


When done, again log out and log back in. When done, while you can wait for the agent to run (every 6 hours), you can manually force it to run by opening the Terminal utility and running the following command:


launchctl start local.softwareupdatecheck


If successful, as long as an update is available this should check in the background and then launch the App Store to present updates to you. This whole procedure just divorces this process from being run by the system in the background for all users, and instead has it run only when your account is logged in.

Jan 7, 2013 3:42 AM in response to Topher Kessler

Thanks for all your hard work Topher.


I have replaced the text in the original launch agent file with the amended version as above, but I'm sorry to say that there is still nothing happening.


To test the terminal command I also tried to do it the manual way by entering the command as above and hitting 'enter'. Again, nothing happened I'm afraid...


Not to worry; as long as I know I have automatic updates turned off I know that I have to occasionally check manually by simply launching App Store. (Or maybe even just leave it running in my dock and watch to see the red circle appear, like when new messages arrive in Mail.)

Is there any way to prevent non-admin user accounts to receive software update prompts?

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.