SetUserFTA 2.x Documentation


Key Information and Usage

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.

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.

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