All steps described in this blog post have been tested on following Windows 10 versions:
There were different ways and guidance to set default program prior to Windows 10 (see Managing Default Applications).
Before Windows 10, an application could check default apps, ask for user consent and set default app programmatically using Windows API.
But some programs skip the user consent and set the app defaults into the registry. The main requirement for default file association is often forgotten: the end-user is in control.
Now in Windows 10 checks if registry file extension keys have not been modified to prevent file association hijacking.
The way that default file associations work changed in Windows 10.
There is a new UI for the end-user. This new way puts the user in control with a new file association notification.
This notification will be displayed:
If an application used Windows API to set default apps, the user will receive the following notification:
For more information about these changes : https://blogs.windows.com/windowsexperience/2015/05/20/announcing-windows-10-insider-preview-build-1...
You will find some explanation on The Old New Thing blog: Why do my PDF file associations get reset every time I restart?
But what happens if an application is not using Windows API and writes some stuff and hijacks user preferences?
Now,Windows 10 detects that the registry is corrupted and will reset the default program for this file extension. Additionally, the end-user will receive this notification: An App default was reset. These change is documented in KB4001770: Reset app default when a registry setting is deleted or corrupted and streamlined notification about the corruption.
It's possible for IT Pro to configure or force default association using supported methods.
The best way to do it is to set up a reference computer, install applications, configure default programs and use Dism to export/import the custom default app associations or use a group policy.
Set up a reference computer
Go to Control Panel\All Control Panel Items\Default Programs and configure default apps associations. In Windows 10 1709, this control panel item is now in Settings app.
Let's try to configure Internet Explorer as the default browser
Choose Internet Explorer
Internet Explorer is now the default web browser
Export/import the custom default app association with dism.exe
Note that you need administrator rights to use dism.exe. And to export properly the associations use the same account used in step 3, otherwise you will get a malformed XML file.
PS C:\Windows\system32> dism /online /export-defaultappassociations:"C:\Temp\IE-DefaultBrowser.xml"
Usually at this step you will be tempted to delete other lines because you simply don't care about them and get a file like this:
VERY IMPORTANT: If you want to import your file with DISM.exe, DO NOT delete any file associations entries!
A missing entry will trigger the App default reset notification and you will get a notification storm at the first logon.
As some recommended applications can manage more extensions with each new Windows 10 version available, it's a good practice to refresh your XML. For example, in Windows 10 1703, Microsoft Edge registers the epub extension. If you're using an XML file from Windows 10 1607, epub is missing. As a result, you will get an app reset notification for epub.
Now it's time to apply your XML file. You have two options:
Dism.exe /online /import-defaultappassociations:c:\temp\CustomFileAssoc.xml
Your file will be copied in \Windows\System32 with the following name OEMDefaultAssociations.xml
Configure the following policy Set a default associations configuration file located in Computer\Policies\Administrative Templates\Windows Components\File Explorer.
If this group policy is enabled and the client machine is domain-joined, the file will be processed, and default associations will be applied at logon time.
Note: this policy will not prevent user to change the file association. But at each logon the default association configured in XML file will be applied.
Some IT Pros want to force only some file associations and let users in control for others file associations. For example, they want to configure Internet Explorer as default for HTTP/HTTPS only for HR people.
So, they removed everything in the XML file except Internet Explorer entries. As previously seen, removing entries in XML file could result in app reset notifications.
But don't panic, there is a solution to do it in your Windows 10 reference image.
You just need to have two XML files, one for configuring the defaults and another one to force file association.
The main XML, CustomDefaultAssoc.xml must contain all extensions. You need to import this file using:
Dism /online /import-defaultappassociations:C:\CustomDefaultAssoc.xml
The second XML, FTA-IE-Only.xml will contain only a set of file extensions. You need to use this XML file with the group policy Set a default associations configuration file.
At the first logon, Explorer.exe will apply both XML.
The end user will have this results without any app reset notifications:
OEMDefaultAssociations.xml contains the following lines:
IEOnly.xml contains the following lines:
Why I'm getting an app reset notification?
Raymond Chen talked about this problem. If a program is trying to set some registry keys, Explorer will detect it and the file association will be reset.
Stop using script or other pre-Windows 10 ways for configuring file association.
You can check the Microsoft-Windows-Shell-Core/AppDefaults event log for clues about file associations reset.
If you want to troubleshoot this, keep calm and run Procmon
You should be able to track which application is hijacking your file associations. Once you identified the bad application, the best way to solve this, is to use a more recent version, or contact your vendor.
You could get the following notification starting Windows 10 1703 when you choose an application as the default viewer instead using Microsoft Edge.
These notification windows are displayed only once if you're clicking on OK. It's because Microsoft Edge is detected as a new application.
If a new app is installed and is registered to an existing file extension or protocol you will get this notification.
If you want to get rid of these notifications, there is a group policy to hide these notifications:
Do not show the 'new application installed' notification
This policy removes the end-user notification for new application associations. These associations are based on file types (e.g. *.txt) or protocols (e.g. http:) If this group policy is enabled, no notifications will be shown
You can find in the table below some group policies related to default file associations settings:
|Policy Setting Name||Policy Path|
|Do not reinitialize a pre-existing roamed user profile when it is loaded on a machine for the first time||Windows Components\File Explorer|
|Turn off Internet File Association service||System\Internet Communication Management\Internet Communication settings|
|Turn off access to the Store||System\Internet Communication Management\Internet Communication settings|
|Do not show the 'new application installed' notification||Windows Components\File Explorer|
|Set a default associations configuration file||Windows Components\File Explorer|
If you are still using Adobe Reader XI, you should get a new application to open PDF, as Adobe Reader XI is out of support.
With Adobe XI installer, you can get an app reset notification for PDF extensions and it will be reset to Microsoft Edge.
You should look at Adobe Reader documentation and launch the Adobe Reader 11 installation with the following command line:
AdbeRdr11010_en_US.exe /rs /sAll /msi EULA_ACCEPT=YES OWNERSHIP_STATE=0
With OWNERSHIP_STATE=0 Adobe Reader stops to change file association for PDF with an unsupported way.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.