How to programmatically configure file associations in Windows 10 and Server 2016 without DISM

If you are reading this, you are most likely aware that Microsoft has changed how you can configure file associations. Pre-Windows 8, we were able to configure file associations by manipulating the registry but now this method does not work because Microsoft verifies a hash key to determine if the change was made by the user.

Until recently, the only way to configure file associations in Windows 10 was to use DISM to import your file associations XML or use a GPO which would lock down your associations. Using the DISM method only worked for new users so any existing users would have to manually configure their file associations. Luckily someone named Christoph Kolbicz has reverse engineered the algorithm used by Microsoft to create the hash key so now we can programmatically configure file associations!

You are probably wondering how you can do this. Well.. Christoph has been kind enough to share a command line tool that he has created and that you can download from his website

How do you use it?
It’s easy! You can just run the following command to make Adobe Reader DC the default pdf reader for the current logged in user:

SetUserFTA.exe .pdf AcroExch.Document.DC

For more information about SetUserFTA.exe goto!


  1. Can you set this per machine? Or default user?

  2. Hi again,

    I’m looking at using this as a way to fix an issue I have run into with in-place windows 7 to 10 upgrades. I am currently using MDT to accomplish this and while it works good I am hitting a strange issue with Office 2019. One of the steps of the upgrade is to remove all the old versions of Office and then once the OS has been upgraded, it installs 2019. The problem is that with Word, for some reason it does not set the default app for docx, rft, or odt, to word and leaves them set to wordpad. Really not sure why as installing our office 2019 normally works fine. What I am looking to find is a way to use SetuserFTA for each existing user once they log on after the update. But of course only have it run that one time for each existing user. Thoughts? And thanks for any input you can provide.

    • What I’ve usually done is add an entry in Active Setup under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components and that will run once for each user the first time they logon. If you want something to run everytime the user logs on I would say add an entry to either HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run or HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

      • Jose Espitia

        Jerrold, I added an entry to the default profile and all of the existing user’s RUNONCE (which ends up being HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce when the user logs in) after an upgrade and that essentially did the same thing as Active Setup.

Leave a Reply