Automating the Removal of Old Office Versions to Upgrade to 2016

The end-of-life for the click-to-run version of Office 2013 is quickly approaching (February 28th, 2017). This is a quick reference on how to automate the deployment of Office 2016 to your environment, while also fulfilling the prerequisite of removing any previous versions of Office (including 2013).

Step 1 – Automate the uninstall of previous versions of Office

Installing Office 2016 will not do this on its own, unfortunately. There are several ways to uninstall previous Office versions, but the most reliable I have found in my experience is to use the available OffScrub scripts from Microsoft, which can be extracted from the EasyFix uninstallers for Office 2003, 2007, and 2010. For Office 2013 and 2016, a separate script can be run to automate the uninstall using O15CTRRemove.diagcab. All scripts can be combined and run from a single package/program using SCCM. There is a great guide available from Jay Michaud on how to do all of this: https://www.deploymentmadscientist.com/2016/02/08/deploying-microsoft-office-2016-removing-old-versions/

Step 2 – Automate the installation of Office 2016

There are several guides on how to use the Office 2016 Deployment Tool, which allows you to download the Office 365 client installation files and package them up for deployment. This reference guide contains all available commands to customize the XML file which controls how Office 2016 is downloaded, installed, and configured. The final step is to package it up for deployment in SCCM. All of these steps are outlined here: https://www.systemcenterdudes.com/sccm-2012-office-2016-deployment/.

Step 3 – Deploy both packages simultaneously with Configuration Manager

Of course, you will want to run step 1 and step 2 together to minimize the amount of time that users are without Office on their systems. You can deploy sequential applications in SCCM by using software packages (setting the uninstall program to always run first in the install program properties), by using software applications (setting a software dependency for the uninstall script to run prior to install), or by using a task sequence that contains all of the steps (task sequences can do more than just deploy an OS, after all). As always (and especially with multi-step software deployments), be sure to test deployment with a few pilot systems before running it for all of production.

Microsoft has done a good job of making Office settings/profiles migrate easily to new versions, and the same is true for 2016. Outlook will automatically upgrade any existing mail profiles when run for the first time and should not require any special configuration from the user.

8 thoughts on “Automating the Removal of Old Office Versions to Upgrade to 2016”

  1. Following the above we are finding that Outlook is fully re-syncing following the upgrade instead of recognising the previous Outlook installations pst or ost?

    Do you know how to make this work without the clients having to re-sync?

  2. Can anyone explain to me why the installation of office 2016 does not remove the other versions of office as the “office configuration tool” shows as the default option? And if it can’t why isn’t it being fixed?

    1. Chris,

      If you’re installing from MSI-based media, it will upgrade from old versions of Office during installation. If you are installing from Office 365 “click-to-run” media, you will need to remove all previous installations. If you’re using the OCT, then you are using MSI-based media and will not need to preform any uninstalls.

      Thanks,

      Josh

  3. Hey Josh,

    I am part of the admin team at a school district and we are moving from Office 2016 Professional Plus to Office 365 Pro Plus with Device Based Authentication. I have successfully uninstalled the old version of Office and deployed Office 2016 ProPlus with DBA using your guide and many others like it. I am having an issue with regards to the OPPTransition tool as it really isn’t referenced anywhere that I can find. Not running this tool and as a result not providing my Tenant or Key is leaving out an essential step in the process as the software isn’t activated or licensed. It is necessary to the activation as far as I’ve seen to create a “device user” in our Azure AD environment using the OPPTransition.exe tool. If you know of a way to include this as a part of the SCCM deployment or can point me in a direction, I would great appreciate it.

    Thanks!

  4. Going through your brilliant blog has provided me personally with just
    simply the information that I actually needed.
    I actually have recently been undertaking homework upon this matter for a time, and
    this seems to have taken a long while to find a blog that gives all the information which i
    need. We search forward to browsing even more blogs authored by you in the foreseeable future, and should seek here primarily the very next time
    I actually currently have another research study. http://mobile-corporate-massage.njmassage.info/

  5. Hello Josh, Can you please help me with this ‘Automating the Removal of Old Office Versions to Upgrade to 2016’?

  6. “There is a great guide available from Jay Michaud on how to do all of this: https://www.deploymentmadscientist.com/2016/02/08/deploying-microsoft-office-2016-removing-old-versions/

    2020-01-08: That site is currently completely broken due to WordPress problems.

    E.g. Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in H:\root\home\jaymichaud-001\www\site1\wp-content\plugins\crayon-syntax-highlighter\crayon_langs.class.php on line 340

    Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in H:\root\home\jaymichaud-001\www\site1\wp-content\plugins\crayon-syntax-highlighter\crayon_langs.class.php on line 340

    Warning: Cannot modify header information – headers already sent by (output started at H:\root\home\jaymichaud-001\www\site1\wp-content\plugins\crayon-syntax-highlighter\crayon_langs.class.php:340) in H:\root\home\jaymichaud-001\www\site1\wp-includes\pluggable.php on line 1265

    Warning: Cannot modify header information – headers already sent by (output started at H:\root\home\jaymichaud-001\www\site1\wp-content\plugins\crayon-syntax-highlighter\crayon_langs.class.php:340) in H:\root\home\jaymichaud-001\www\site1\wp-includes\pluggable.php on line 1268

Leave a Comment

Your email address will not be published. Required fields are marked *