Turn off El Capitan Notification

Jason
Contributor II

In the top right corner of the screen there has been a notification stating that El Capitan is available now. Does anyone have a method to stop those kinds of notifications? I don't want to block notification center all together, just not get alerted about El Capitan. I have seen the thread below where there are instructions on how to remove the El Cap Island in App Store, but I'm not looking to remove that currently:
https://jamfnation.jamfsoftware.com/discussion.html?id=17185

I would think a plist could control this, but haven't tracked it down yet.

24 REPLIES 24

guidotti
Contributor II

I am also looking for this.
@mhasman and I have it in restricted software, so it won't install.
However, it will give the employees the wrong idea! :)

hkabik
Valued Contributor

Does this no longer stop it?

defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled -bool false

That's what I've always used.

bpavlov
Honored Contributor

@hkabik That's for software updates to the OS. Not a major OS upgrade. The notification to upgrade to El Capitan wouldn't be stopped by that preference.

itupshot
Contributor II

I'm also trying to get this off the screens too. We're not ready to upgrade to it yet, and even though it'll require an admin to do it, it gives our users the wrong impression that they can go ahead and install it. I'm using a restricted software rule right now as @guidotti is doing.

jstine
Contributor

I need to get this off of the screen as well. Looking for information on how to do so.

djwojo
Contributor

It just popped up again today.... Is Apple trying to get us angry? :)

bpavlov
Honored Contributor

Has anyone looked at
/Library/Preferences/com.apple.noticeboard.plist?

This is what mine looks like:

<?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>LastNoticeboardCatalogCheck</key>
    <date>2015-10-28T17:28:05Z</date>
    <key>com.apple.noticeboard.notification.elcapitan.1.0</key>
    <dict>
        <key>dismissalCount</key>
        <integer>1</integer>
        <key>lastDismissedDate</key>
        <date>2015-10-28T17:28:07Z</date>
    </dict>
    <key>identifiers</key>
    <array>
        <string>com.apple.noticeboard.notification.elcapitan.1.0</string>
    </array>
</dict>
</plist>

mm2270
Legendary Contributor III

I had mentioned the noticeboard plist a long while back. Back when Yosemite released and people were trying to block it. It does seem to store the data on when the message last came up.
But the thread here that has bubbled to the top may also have the solution for El Cap.

Jason
Contributor II

@bpavlov, one of my colleagues has a file like that. For some reason the one on my system is quite blank. I could of sworn i dismissed the notification though, especially since i haven't seen it again since:

<?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>LastNoticeboardCatalogCheck</key>
    <date>2015-10-27T17:56:23Z</date>
</dict>
</plist>

FritzsCorner
Contributor III

This solution has worked great for my environment. I use it in conjunction with Outset to apply once per user on login.

https://onemoreadmin.wordpress.com/2015/10/01/paradise-island-hiding-el-capitans-free-upgrade-banner...

So far this seems to also suppress the upgrade nag as well.

e5dafd001870496480a45801fe701396

Martinus
New Contributor II

Just applied the suggestion referenced by @FritzsCorner and it does the job out here as well

quedayone
Contributor

Looks to me like this is NOT specific to El Capitan, will this continue to hide all notification about OS updates going forward?

Jason
Contributor II

Opening a case with Apple Enterprise Support to see if I can get some info on best practice from them. I'll update when I hear back.

FritzsCorner
Contributor III

I opened a case with them for Yosemite update notification suppressing and posted their response in this thread: https://jamfnation.jamfsoftware.com/discussion.html?id=12694

jstine
Contributor

@FritzsCorner @Martinus I'm not familiar with Munki or Outset. Is there any way to push this through Jamf?

maxbehr
Contributor II

Using CASPER you can accomplish the same thing.I downloaded the file. Using the local admin account I copied @FritzsCorner 's file in his package to the appropriate location where the script would have moved the file. I then dragged the file into composer to make the package. Create a dmg from composer and upload into Casper Admin. Double click the file in Casper Admin. Click on the options tab, and check FUT and FEU. Deploy to your machines (double check in the policy that the FUT and FEU options are checked). Casper should then deploy to the local admin account, all users who have user folders on the machine and into the user template folder. Worked like a charm.

guidotti
Contributor II

@jstine this might be a brute force method, but @mhasman and I hid the banner, took the SQLite database that was created, and packaged it up in Packages to be deployed to user machines along with an adaptation of the script that was posted.

That seems to do the trick. A side effect would be that users' preferences for hidden updates will get wiped out as stated in the original article that @FritzsCorner posted.

The policy we created is set for recurring check-in, once per computer.

FritzsCorner
Contributor III

@jstine Yeah, JAMF Casper Suite can do this as well. Outset just works well to address some of the deployment complications my environment has.

Jason
Contributor II

Response from Apple below, very helpful :). I'm not sure I want to modify the database just yet, but I think i'll give the noticeboard tweak a shot and see how that looks. It's unfortunate there is no real way to test though. Once noticeboard is deployed out it's just a "wait and see" validation.

I understand that you would like to disable the prompts for upgrading to El Capitan. There is no method in OS X to achieve this currently. This feature request has been brought to the attention of Product Engineering, but at this time there are no plans to implement it. Regarding the method to modify noticeboard.plist, although that might remove the banner in the App Store, it might not disable the upgrade prompts in the upper right hand corner. Also, this method is not supported by Apple.

FritzsCorner
Contributor III

@Jason Thanks for sharing their response. I was hopeful that hiding the upgrade Banner in the App Store updates would also hide the notification that pops up, but when I logged into my Yosemite system this morning the update notice was sitting there waiting for me. It is pretty annoying. We have software restrictions in place that prevent people from running the update, but it does cause some confusion among our Mac user base.

kmabe
New Contributor III

I know this is a little late, but use this command as a script in the JSS. It removes the Automatically check for updates check in System Preferences. Works in El Cap and Yosemite.

sudo softwareupdate --schedule off

Nix4Life
Valued Contributor

@kmabe Careful with that you maybe be missing Gatekeeper and Xprotect updates:
https://macops.ca/os-x-admins-your-clients-are-not-getting-background-security-updates

L

snovak
Contributor

I'm still testing it but it appears that using a config profile for com.apple.SoftwareUpdate using the following plist will suppress the prompts and enable XProtect updates

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
        <key>AutomaticCheckEnabled</key>
        <true/>
        <key>AutomaticDownload</key>
        <false/>
        <key>SkipLocalCDN</key>
        <false/>
</dict>
</plist>

Nevermind, I got the prompt after pushing this to my test macs.

snovak
Contributor

I devised a script to write out a launchdaemon and execute the background installer for XProtect and Gatekeeper updates

#!/bin/bash
SCRIPT="/Library/Scripts/XProtectUpdate.sh"
LABEL="com.org.XProtectUpdater"
DAEMON=/Library/LaunchDaemons/com.org.XProtectUpdater.plist
# Gets the OS version
OSVERS=$(/usr/bin/sw_vers -productVersion | /usr/bin/awk -F. '{print $2}')
# Regex for 10.9+
OSREGEX="^[19]?[0-9]$"
RUNNING=0
NEW=0

WriteScript() {
    /bin/echo "#!/bin/bash" > "$SCRIPT"
    /bin/echo '/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true' >> "$SCRIPT"
    /bin/echo '/usr/sbin/softwareupdate --background-critical' >> "$SCRIPT"
    /bin/echo '/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled -bool false' >> "$SCRIPT"
    /bin/chmod +x "$SCRIPT"
}

WriteDaemon() {
    /usr/bin/defaults write $DAEMON Label -string $LABEL
    /usr/bin/defaults write $DAEMON ProcessType Background
    /usr/bin/defaults write $DAEMON RunAtLoad -bool true
    # Run every 12 hours
    /usr/bin/defaults write $DAEMON StartInterval -int 43200
    /usr/bin/defaults write $DAEMON ProgramArguments -array
    /usr/libexec/PlistBuddy -c "Add :ProgramArguments: string /bin/sh" $DAEMON
    /usr/libexec/PlistBuddy -c "Add :ProgramArguments: string $SCRIPT" $DAEMON
    /bin/chmod 644 $DAEMON
}

CheckDaemon() {
    if [ -f $DAEMON ]; then
        RUNNING=$(/bin/launchctl list | /usr/bin/grep $LABEL | /usr/bin/wc -l)
    else
        NEW=1
    fi
}

LoadDaemon() {
    /bin/launchctl load -w $DAEMON
    RUNNING=1
}

CheckOSRequirements() {
    if [[ ! $OSVERS =~ $OSREGEX ]]; then
        /bin/echo "OS Requirements not met"
        exit 0
    fi
}

Main() {
    CheckOSRequirements
    CheckDaemon
    # 1 for new daemon, 0 for old
    if [ $NEW -eq 1 ]; then
        WriteDaemon
        WriteScript
    fi
    # 1 for already running, 0 for not running
    if [ $RUNNING -eq 0 ]; then
        LoadDaemon
    fi  
}

Main "$@"

Helpful bits:
https://macops.ca/os-x-admins-your-clients-are-not-getting-background-security-updates
https://derflounder.wordpress.com/2016/03/28/checking-xprotect-and-gatekeeper-update-status-on-macs/