Overview
This post shows how to automate the numerous “first-run” dialogs that are shown when a user runs an Office 2013 or Office 365 application for the first time.
With a standard local installation of Office 2013 this can be done in two ways. Firstly, by using Group Policy (the recommended way). Secondly, by using the Office Customization Tool (OCT) to create an .msp file that can be used during setup to apply custom user settings. However, when using the “Click-to-Run” version of Office 365 there is no way to use the OCT so user settings can only be configured using Group Policy.
In a recent assignment I needed to create an Office 365 package that would install silently on in various scenarios:
- Domain joined / Group Policy
- Domain joined / No Group Policy
- Home machine
Unwanted Screens and Messages
The customer was happy with the “default” settings that Office comes with, but when the user first runs Office there are numerous screens that popup which they wanted to suppress (with the exception of the Office 365 sign-in screen). These are:
“First things first” / License Agreement
The usual annoying license agreement and questions about auto updates and product improvement that no user will care about or fully understand.
Default File Types
There isn’t a non-IT user alive that has any idea which of these options is correct. I believe this screen only appears on EU machines. Thanks EU!
“Welcome to you new Office”
A useless tutorial about OneDrive and forcing the user to set critical options like “ribbon background”.
Controlling Settings with Registry Keys
To disable all these screens we need to configure the following registry entries:
Registry Key | Value |
HKCU\Software\Microsoft\Office\15.0\FirstRun\BootedRTM | 1 (DWORD) |
HKCU\Software\Microsoft\Office\15.0\FirstRun\disablemovie | 1 (DWORD) |
HKCU\Software\Microsoft\Office\15.0\Common\General\shownfirstrunoptin | 1 (DWORD) |
HKCU\Software\Microsoft\Office\15.0\Common\General\ShownFileFmtPrompt | 1 (DWORD) |
HKCU\Software\Microsoft\Office\15.0\Common\PTWatson\PTWOptIn | 1 (DWORD) |
HKCU\Software\Microsoft\Office\15.0\Common\qmenable | 1 (DWORD) |
The problem with this is that these keys are all user settings. If you try and set them at the end of your installation they usually won’t work as the installation is likely to be done under an admin account. Unless you set them from a user-side login script or Group Policy then they won’t apply to each user that logs onto the machine.
To get this to work we can use a little known feature of Office which allows you to specify some HKEY_LOCAL_MACHINE keys that are automatically migrated into HKEY_CURRENT_USER when an Office application is first run for that user. There is no worthwhile documentation of this process except on this Deployment Guys blog post.
In summary, you create keys under HKLM in the following locations (depends on the OS and version of Office):
OS Version | Office Version | Key |
32bit | 32bit | HKLM\SOFTWARE\Microsoft\Office\15.0\User Settings\MyCustomSettings |
64bit | 32bit | HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\User Settings\MyCustomSettings |
64bit | 64bit | HKLM\SOFTWARE\Microsoft\Office\15.0\User Settings\MyCustomSettings |
The MyCustomSettings part of the key can be anything you like. You can even have multiple different names for different groups of settings. Then under this key make another key called Create and under this create the registry settings that you want to set in HKEY_CURRENT_USER. The 15.0 part refers to Office 2013 / Office 365.
When a user runs an Office application it checks to see if it has previously migrated these settings before and if not it creates the relevant keys in HKEY_CURRENT_USER. This is done before any user interface is shown so can successfully be used to set the options that hide the first run dialogs.
This can be a little tricky to understand but if you look at the example script below you should get the idea. Something interesting to note is that this will work for any registry key – it doesn’t have to be Office related!
Example Script to Automate First Run
Here is a small batch script that can be run at the end of the Office installation to configure all keys so that when any new user runs Office for the first time they don’t see all the first run dialogs. For this example I will assume we will be using a 64bit OS with the 32bit version of Office 365 (by far the most common configuration in most Enterprises).
reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\User Settings\MyCustomUserSettings" /v Count /t REG_DWORD /d 1 /f >nul
reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\User Settings\MyCustomUserSettings\Create\Software\Microsoft\Office\15.0\FirstRun" /v BootedRTM /t REG_DWORD /d 1 /f >nul
reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\User Settings\MyCustomUserSettings\Create\Software\Microsoft\Office\15.0\FirstRun" /v disablemovie /t REG_DWORD /d 1 /f >nul
reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\User Settings\MyCustomUserSettings\Create\Software\Microsoft\Office\15.0\Common\General" /v shownfirstrunoptin /t REG_DWORD /d 1 /f >nul
reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\User Settings\MyCustomUserSettings\Create\Software\Microsoft\Office\15.0\Common\General" /v ShownFileFmtPrompt /t REG_DWORD /d 1 /f >nul
reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\User Settings\MyCustomUserSettings\Create\Software\Microsoft\Office\15.0\Common\PTWatson" /v PTWOptIn /t REG_DWORD /d 1 /f >nul
reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\User Settings\MyCustomUserSettings\Create\Software\Microsoft\Office\15.0\Common" /v qmenable /t REG_DWORD /d 1 /f >nul