Skip navigation

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

861 Views 12 Replies Latest reply: Jan 7, 2013 3:42 AM by Steve Zodiac RSS
Steve Zodiac Level 1 Level 1 (10 points)
Currently Being Moderated
Dec 26, 2012 2:19 PM

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
  • Barney-15E Level 7 Level 7 (33,285 points)

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

    Sorry, I don't know of anything else.

  • Linc Davis Level 10 Level 10 (107,665 points)

    The notifications go to whichever user is in the foreground at the time. You can't change that.

  • Barney-15E Level 7 Level 7 (33,285 points)

    Well, there's also that horrible concept of educating the other users on the ability to dismiss and ignore those notifications.

  • Topher Kessler Level 6 Level 6 (9,295 points)

    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.

  • Barney-15E Level 7 Level 7 (33,285 points)

    A long time ago, I inquired as to how best protect my data and such from my toddlers. The best advice I got was to teach them to properly use the computer (and back up your data).

     

    And, as the administrator, I expect I should do my job properly as well.

  • Topher Kessler Level 6 Level 6 (9,295 points)

    It should launch the App Store and show you the available updates if there are any.

     

    The good thing about this approach is you can always just remove the launchagent file you made and then log out and back in to clear it and be back to square one.

  • Topher Kessler Level 6 Level 6 (9,295 points)

    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.

    MacBook Pro, OS X Mountain Lion (10.8.2), 17&quot;, 2.5GHz i7, 16GB RAM, 512GB SSD

Actions

More Like This

  • Retrieving data ...

Bookmarked By (0)

Legend

  • This solved my question - 10 points
  • This helped me - 5 points
This site contains user submitted content, comments and opinions and is for informational purposes only. Apple disclaims any and all liability for the acts, omissions and conduct of any third parties in connection with or related to your use of the site. All postings and use of the content on this site are subject to the Apple Support Communities Terms of Use.