File associations XML file applies - but still get error messages at first log on

Brass Contributor

This is one that's really driving me bananas.

 

When we first started testing 10 I noticed that the first logon for any user produced a slew of notifications from Windows that 'an app has caused a problem with the default app setting for (xxx), it has been reset to Edge'. A few weeks back I looked into it properly and implemented a file associations XML to be applied to the machine by Group Policy. This seemed at the time to resolve the issue, no notifications were appearing and files were associated with their correct application (there's only .pdf that I actually changed - all the other entries for Edge, etc were there to 'affirm' the default).

 

With no change to the build of the machine (barring Windows Updates, potentially) the issue started to occur again. What is really curious about this is that although I get a full set of messages saying Edge has now been set as the default, if I set this to something else (e.g. Chrome for https/.htm, etc, Acrobat Reader for .pdf) the files still open with the correct application.

 

I've since investigated several avenues to try and resolve this:

 

  • Re-built the machine excluding the Chrome install, in case Chrome was doing something weird at first login - no change.
  • Fiddled endlessly with the associations XML in case something was wrong with it - though it seems to be applying regardless of the notifications, I don't think that's the issue.
  • Tried disallowing Edge from preloading, in case it was performing/triggering changes before the XML was applied - no change.
  • Installed Edge Chromium in case that affected anything - nope.
  • Moved the XML to a local path, in case that made it quicker/more reliable to access.
  • Upgraded the install media to 1909.4 from VLSC as the release notes for an included update supposedly resolve this or a similar issue - no change.

I've read this article (https://answers.microsoft.com/en-us/windows/forum/windows_10-files/windows-file-association-explaine...) which is fairly illuminating in places but I'm still in the dark as to why these notifications occur.

 

It sounds like the UserChoice/Hash value pair are either broken or non-existent at the user's first login, but the problem is these are presumably based on the default profile on the machine - this is just the default profile from the .WIM file on the official Windows media, we don't make any customisations to it at all. Looking in the default user hive there is nothing under Software\Microsoft\Windows\Shell, or Software\Classes.

 

I did read at one point that if the user choices are simply missing, the 'default app reset' message will also be triggered by that. We have no way of pre-populating these values because they're hashed.

 

Has anyone managed to banish these messages? This is a really miserable first login experience.

1 Reply

Alright, so I've now discovered this secondary XML file and DLL file in System32, OEMDefaultAssociations.XML/.DLL, having found a post by someone who mentioned this appeared to be conflicting with what they were setting by Group Policy.

 

It's definitely this pair of files causing the issue in my environment - if I replace OEMDefaultAssociations.XML with the smaller XML file I was using to manage associations by GPO, I get less notifications - and if I rename/remove OEMDefaultAssociations.DLL I no longer get any notifications of the reset associations. If I rename/remove the DLL and apply a separate XML file by GPO as before, I don't get the notifications.

 

Simply altering the system32\OEMDefaultAssociations.XML isn't enough to stop the notifications but changing the DLL is - so I noticed that if you look inside the DLL there's another copy of the 'default' associations XML. What is this for?! Why, when the XML file contained within is an exact copy of the XML file in system32, does it cause this behaviour? If I copy the XML file to the PC and change the GPO to point at this too, I still get the notifications. There shouldn't be anything clashing - yet somehow there is?!

 

It looks like for us the 'solution' is to rename this DLL file but that feels like a kludge and who knows what issues it will cause down the line. Can anyone shed any light on this at all, before I implement yet another ridiculous hack solution for our Windows 10 rollout?