Microsoft Skype (definitely) and Teams (maybe) – Disabling automatic updates

With version 8.x of Skype and since the debut of Teams, Microsoft have been using the Squirrel framework to manage automatic updates of these applications. This is undesirable in lab/managed environments where users typically aren’t local administrators, as they’re often presented with a dialog like this, which they can’t do much with, other than ask IT for help:

SquirrelUpdate

If we’re packaging and deploying these applications (which we normally would be in the environments we manage), then they’re usually owned by root and can’t be modified by standard user accounts. So, what is an admin to do?

It isn’t possible to disable this via managed preferences or a configuration profile as the Squirrel framework doesn’t provide a preference domain or preference for it. However, it turns out that it does have an environment variable we can set. Bear in mind that setting this knocks out automatic updates for all apps that use Squirrel (except those that Nerf that shit so hard).

All you need to do is run this command, as the current logged in user:

/bin/launchctl setenv DISABLE_UPDATE_CHECK 1

You’ll notice that upon restarting, the auto-updating-annoying-behavior will come back. To get this to stick, run the above command in a script at login with Outset or put it in a Launch Agent, like this one (copy to /Library/Launch Agents):


<?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"&gt;
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.neilmartin83.disable-squirrel-update-check</string>
<key>ProgramArguments</key>
<array>
<string>/bin/launchctl</string>
<string>setenv</string>
<string>DISABLE_UPDATE_CHECK</string>
<string>1</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

Thanks to the awesome Tim Sutton for uncovering this with the Slack application a while back (before they changed it) – check out his post and please support the issue he raised on Github:

https://macops.ca/disabling-squirrel-updates/

https://github.com/Squirrel/Squirrel.Mac/issues/192

Thanks also to Rick Heil for the idea of putting this into a Launch Agent.

You can tell if an application uses the Squirrel framework by ctrl+clicking it, choosing Show Package Contents, then looking inside:

SkypeSquirrel

Note that I have tested/verified that this works with Skype, which seems to check for and download updates on every launch. Teams seems to check for updates 15 minutes after launch, then every 45 minutes (or does it?), if you take a peek at line 54234 and beyond in /Applications/Microsoft Teams.app/Resources/app.asar:

// Check for updates 15 mins after app start and then every 45 mins
const INITIAL_CHECK = 15 * 60 * 1000;
const CHECK_FREQUENCY = 3 * 60 * 60 * 1000; // TODO (jhreddy) change the following from 3 hours to 45 mins.

With this environment variable set, I noticed that Teams did download the update in the background 15 minutes after launch, but did not prompt to install it. I confess that I didn’t bother to test if Teams prompted to update 15 minutes after launch without the environment variable set. It’s late and I ran out of patience. 😉 If you know better (or worse), please drop a comment.

And yep, I know the icon at the top of this post is a chipmunk and not a squirrel… 😀

6 thoughts on “Microsoft Skype (definitely) and Teams (maybe) – Disabling automatic updates”

  1. Thanks, this was very helpful! Was having the same problem and kept finding non-answers (“You can’t disable autoupdates of Skype, there are no preferences to do that anymore”).

    Liked by 1 person

  2. Just a head’s up: We had a bunch of users report that Microsoft Teams was opening to a blank or white screen. We tried normal uninstall/reinstall troubleshooting and it would work for a while, then start showing the blank screen again. After working with Microsoft Premier Support, they effectively said that if Teams is even one version behind that can be an issue. They said that the autoupdate process no longer prompts for admin credentials, though, so there wasn’t an immediate need to block updates to avoid the popup. I wasn’t able to confirm if the same was true for Skype or not, but when we stoppped using this command in a postinstall script for Teams it resolved the issue.

    Like

    1. Yep I should update this when I get around to it. Teams stopped using Squirrel a long time ago and switched to its own helper tool that’s silent. It’ll also leverage Microsoft Auto-Update as fallback. We use AutoPkg to ingest the latest version of Teams into Munki and keep it patched for customers that way. We still need to suppress other Squirrel based apps using this method though (like WhatsApp).

      Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.