
NOTE: This documentation applies to the licensed edition and version 2.x.
The Personal Edition supports only basic commands and not the full set listed on this page.
Key Information and Usage
Per-User Execution
SetUserFTA must be run separately for each user on a machine – it cannot directly apply associations for all or other users.
No Administrative Permissions Required
SetUserFTA does not require administrative privileges to function.
User-Based Associations Only
SetUserFTA cannot modify machine-wide associations.
It only applies changes to the current user’s file type associations.
Non-Intrusive
SetUserFTA does not block users or other applications from modifying file type associations.
Enforcing Associations
To “enforce” specific associations, SetUserFTA can be executed during the user’s logon process (e.g., via Group Policy Objects, GPO).
While users can still make changes, their associations will reset to the predefined settings upon their next logon.
Logoff and Migration Support
SetUserFTA can be run at logoff to export the current user’s association settings.
These settings can then be restored when the user logs on to a different machine, making it ideal for migration scenarios — even across domains.
If you want to set multiple associations, it is highly recommended to use a configuration file instead of executing SetUserFTA multiple times.
NOTE: If you continue to encounter “Open With” dialogs like on the following screenshot – even after running SetUserFTA – you need to set the NoNewAppAlert value in the registry or configure it using Group Policy (GPO).

You can do that with this one-liner (as administrator):
reg add "HKCU\Software\Policies\Microsoft\Windows\Explorer" /v NoNewAppAlert /t REG_DWORD /d 1 /f
Or by configuring the GPO: Do not show the ‘new application installed’ notification
Associate (set)
This is the SetUserFTA main functionality. it assigns an extension or protocol to a ProgID.
You can also specify a group name, ensuring the associations are applied only to members of that group. By adding an ! before the group name, the associations will instead be applied exclusively to users who are not members of the specified group.
Note: Starting with version 2.7.0, SetUserFTA applies an association only if the registry’s current ProgID differs from the requested one. This significantly improves performance. To force reapplication even when they match, use -reapply
Multiple extensions or protocols can be provided, separated by commas (no spaces).
# Assigns .pdf with Acrobat Reader
SetUserFTA.exe set .pdf AcroExch.Document.DC
# Assigns http and https with Microsoft Edge
SetUserFTA.exe set http,https MSEdgeHTM
# Assigns only if group member of GRP_Edge_Users
SetUserFTA.exe set .htm,.html MSEdgeHTM GRP_Edge_Users
# Assigns only if NOT a member of GRP_Chrome_Users
SetUserFTA.exe set http,https MSEdgeHTM !GRP_Chrome_Users
For compatibility, you can assign associations without the set argument; however, group filtering won’t be available in that mode.
# Assigns .pdf with Acrobat Reader
SetUserFTA.exe .pdf AcroExch.Document.DC
# Assigns .htm and .html to Chrome
SetUserFTA.exe .htm,.html ChromeHTML
Replace associations (replace)
This command can replace an existing file association if the specified ProgId matches the current one. If the ProgId does not match, no changes will be made.
The following example changes the association of .htm files to Chrome, but only if they are currently associated with Microsoft Edge:
SetUserFTA.exe replace .htm MSEdgeHTM ChromeHTML
You can run this command with -verbose to get more detailed information.
You can also use it in a configuration file. Put everything on a single line, like this:
replace .htm MSEdgeHTM ChromeHTML
List associations (get)
get displays the current file type association (only from the current user, not the local machine). accepts multiple extensions or protocols to limit the output. multiple values must be separated by a comma and cannot contain spaces. Recent versions of SetUserFTA also accept wildcard (*).
SetUserFTA.exe get
SetUserFTA.exe get .pdf,.docx,mailto
SetUserFTA.exe get *ht*
SetUserFTA.exe get -noappx
SetUserFTA.exe get .txt -cmdline
-noappx hides the AppX* associations from the output
-cmdline shows the command line of the associated program. if the ProgID belongs to an UWP app, it will show the AppUserModelId instead of the executable path.
Delete associations (del)
del removes the association for an extension or a protocol (for the current user). technically it deletes the UserChoice key for that particular extension or protocol. this makes Explorer to use the machine association – if there is one. accepts also multiple extensions or protocols, separated by comma (no spaces).
Note: some file types are being enforced by windows and cannot be overridden anymore by a machine based association. they will simply reset to the Windows default after using the del command with SetUserFTA. for example .pdf will automatically get assigned to Microsoft Edge when you remove the current association. If you don’t want to trigger the reset, you can provide -norefresh with del. However, Windows will reset the association as soon you touch a .pdf file or another app requests an update of file type associations.
SetUserFTA.exe del .pdf
SetUserFTA.exe del http,.pdf,.txt
# Deletes the association for .txt but does not tell Windows Explorer to update the associations
SetUserFTA.exe del .txt -norefresh
-norefresh deletes the association, but does not refresh windows explorer.
List extensions for given ProgID (find)
find lists all the associated extensions for a ProgID. Recent versions of SetUserFTA also accept wildcard (*).
SetUserFTA.exe find MSEdgeHTM
SetUserFTA.exe find *edge*
SetUserFTA.exe find MSEdgeHTM -cmdline
“SetUserFTA.exe find MSEdgeHTM” lists all extensions and protocols, that are currently associated to Microsoft Edge.
-cmdline shows the command line of the associated program. if the ProgID belongs to an UWP app, it will show the AppUserModelId instead of the executable path.
List all Browsers (browser)
The browser command lists all browsers installed on the system. It works like SetDefaultBrowser, but also shows each browser’s ProgID and marks the current default. From this output, you can identify the exact name to use when setting the default browser.
SetUserFTA.exe browser
SetUserFTA.exe get browser
Setting the Default Browser
SetUserFTA.exe HKLM “Google Chrome” sets Google Chrome as default browser for the current user.
To get a list of all available browsers, just run “SetUserFTA.exe get browser” and then use the name with the HKLM or HKCU prefix.

Using the HKLM or HKCU format will automatically find the corresponding ProgId’s and set them accordingly.
SetUserFTA.exe HKLM "Firefox-308046B0AF4A39CB"
SetUserFTA.exe HKLM "Microsoft Edge"
SetUserFTA.exe HKLM "Google Chrome"
Alternatively, you can directly assign a browser’s ProgID to the HTTP and HTTPS web protocols. When changing the default browser through the Settings app, Microsoft also assigns the .htm and .html file types to the selected browser automatically. However, setting only the HTTP and HTTPS protocols to a specific browser is sufficient for Windows to recognize it as the default browser.
SetUserFTA.exe http,https ChromeHTML
SetUserFTA.exe http,https,.htm,.html ChromeHTML
Config File
SetUserFTA.exe <path_to_configfile>
This command reads a configuration file containing multiple file-type associations. SetUserFTA applies all entries in one run and refreshes Windows Explorer only after the entire file has been processed.
- Each line must contain an extension or protocol and a ProgID, separated by a comma
- Optionally add a group for filtering (after a second comma)
- Prefix the group with an exclamation mark ! to invert the condition (“NOT a member of”)
- Associations can be deleted by adding a line in the format: “del, txt.” or “del .txt”
- Comments can be added by placing the # symbol at the beginning of a line
- SetDefaultBrowser-style syntax is supported (e.g., HKLM “Google Chrome”), and you can append an optional group after a comma
If you have a dism XML file, you can convert it to SetUserFTA format with dism2fta.
Example config file
# Assigns .pdf only to Edge when the user is in the Group_Edge_PDF
.pdf, MSEdgePDF, Group_Edge_PDF
# If the user is not a member of Group_Edge_PDF, .pdf will be assigned to Acrobat Reader.
.pdf, AcroExch.Document.DC, !Group_Edge_PDF
# Assigns .txt with ProgId txtfile (Notepad)
.txt, txtfile
# Delete the association for .url files
del .url
# Assign http and https to Microsoft Edge (same as setting the default browser)
http, MSEdgeHTM
https, MSEdgeHTM
# Set chrome as default browser
HKLM "Google Chrome"
# Set chrome as default browser if the users are not member of the group GRP_Edge_Users
HKLM "Google Chrome",!GRP_Edge_Users
# Assign .pdf to Google Chrome only if Microsoft Edge is currently associated with .pdf
replace .pdf MSEdgeHTM ChromeHTML
Start an associated program (run, start)
Run launches the program currently associated with the specified extension or protocol, allowing you to quickly test the association.
Note: It starts the executable without command-line arguments, so behavior may differ from double-clicking a file of that type.
This command only starts associations that exist for the current user. It does not launch programs associated at the machine level (HKLM).
SetUserFTA.exe run .txt
SetUserFTA.exe start .txt
Query current association (query)
This command displays the actual association, even if there is none for the current user. This is the only command that provides information about the local machine associations.
SetUserFTA.exe query .txt
The output will contain the information about the location of the association, the ProgID and the full command line of the associated program.
Example Output:
HKCU, .pdf, FoxitReader.Document, "C:\Program Files (x86)\Foxit Software\Foxit PDF Reader\FoxitPDFReader.exe" "%1"
NOTE: Windows does enforce certain associations on user level and resets them to the default, as soon they get deleted. This means, that some file types can only be associated for the current user and not machine based anymore. SetUserFTA does not offer the possibility to manage machine based associations. Windows offers assoc and ftype to manage those. SetUserFTA can however override the machine based associations by setting a user based association for the same extension/protocol.
The output of “query” shows the location of the file type association with HKCU or HKLM – it does not show where the ProgID is defined, but this information can be obtained by using ProgIDTool.
Export File Type Associations
You can export associations to a file by simply adding >filename to the end of your command. cmd.exe or powershell.exe will then create a file automatically. this file can be used as config file for SetUserFTA afterwards.
# Exports all user associations
SetUserFTA.exe get >fta.txt
# Exports the current .pdf association
SetUserFTA.exe get .pdf >pdf.txt
# Exports default browser only
SetUserFTA.exe get http,https,.htm,.html >default_browser.txt
Display the command line for a ProgID (-cmdline)
the commands “get” and “find” can display the command line of the associated program.
SetUserFTA.exe get -cmdline
SetUserFTA.exe get .pdf -cmdline
# This command displays all extensions and protocols currently assigned to Microsoft Edge, along with their command lines
SetUserFTA.exe find MSEdgeHTM -cmdline
Only process existing ProgId’s (-validonly)
This parameter checks whether a ProgId exists and only processes the input if it does. It works with the get, set, and find parameters.
If you have machines that have Adobe installed and others that have FoxIt for example, you can use this parameter to properly assign .pdf to the installed application.
# This command lists only associations whose ProgID exists (resolves to an executable)
SetUserFTA.exe get -validonly
# This command assigns .pdf to Acrobat Reader if it’s installed; otherwise, no changes are made.
SetUserFTA.exe set .pdf AcroExch.Document.DC -validonly
Apply associations only once (-applyonce)
Starting with v2.7.1, you can apply associations only once by running SetUserFTA with the -applyonce switch. In this mode, SetUserFTA writes an ApplyOnce value under the UserChoice key for each created extension. While that value exists, SetUserFTA and SilentFTA will ignore future changes for that extension. To keep this behavior, run SetUserFTA with -applyonce every time.
To override this behavior:
– Remove -applyonce from your command: SetUserFTA will ignore the ApplyOnce registry value and proceed normally.
– Delete the association (e.g., SetUserFTA.exe del … or via the config file): this also clears ApplyOnce, allowing future applications to take effect again.
Hide UWP apps from the output (-noappx)
With this parameter the output from “get” can be filtered to display traditional Windows apps only.
SetUserFTA.exe get -noappx
Verbose Output (-verbose)
Most commands support -verbose, which prints additional details – including internal steps – to help with troubleshooting
# This command lists environment details
SetUserFTA.exe -verbose
# This command lists all internal program steps involved in creating the association, along with relevant environment details
SetUserFTA.exe set .pdf ChromeHTML -verbose