SetUserFTA 2.x Documentation

Product documentation

SetUserFTA 2.x Documentation

Manage per-user Windows file type and protocol associations from the command line.

Licensed Edition · Version 2.x This page documents the Licensed Edition and does not apply to Personal Edition 1.8.3. Open Personal Edition documentation →

Start here

Quick start

Run SetUserFTA in the context of the user whose associations you want to change. Administrative permissions are not required.

Associate PDF files with Acrobat Reader

SetUserFTA.exe set .pdf AcroExch.Document.DC

Associate HTTP and HTTPS with Microsoft Edge

SetUserFTA.exe set http,https MSEdgeHTM

Apply multiple associations efficiently

SetUserFTA.exe <path_to_config_file>
Recommendation

Use a configuration file when applying multiple associations. SetUserFTA processes all entries in one run and refreshes Windows Explorer only once.

Key information

Per-user execution

Run SetUserFTA separately for each user. It cannot directly apply associations for every user or for another user.

No elevation required

SetUserFTA does not require administrative permissions.

User associations only

SetUserFTA changes associations for the current user. It does not modify machine-wide associations.

Non-intrusive

Users and applications remain able to modify their file type associations.

Enforcing associations

To reapply defined associations, run SetUserFTA during user logon—for example, through Group Policy. Users can still make changes, but the defined associations are restored at the next logon.

Logoff and migration scenarios

Run SetUserFTA at logoff to export a user’s current associations, then restore them when that user signs in to another machine. This can also be used for migrations across domains.

Still seeing “Open with” dialogs?

Enable the NoNewAppAlert policy through Group Policy, or run the following command as an administrator:

reg add "HKCU\Software\Policies\Microsoft\Windows\Explorer" /v NoNewAppAlert /t REG_DWORD /d 1 /f

Command

set — Associate file types or protocols

Assigns one or more extensions or protocols to a ProgID. Multiple values must be separated by commas without spaces.

Syntax

SetUserFTA.exe set <extension_or_protocol[,additional_values]> <ProgID> [group] [options]

Optionally provide a group name to apply the association only to members of that group. Prefix the group with ! to apply it only to users who are not members.

# Associate PDF files with Acrobat Reader
SetUserFTA.exe set .pdf AcroExch.Document.DC

# Associate HTTP and HTTPS with Microsoft Edge
SetUserFTA.exe set http,https MSEdgeHTM

# Apply only to members of GRP_Edge_Users
SetUserFTA.exe set .htm,.html MSEdgeHTM GRP_Edge_Users

# Apply only to users who are not members of GRP_Chrome_Users
SetUserFTA.exe set http,https MSEdgeHTM !GRP_Chrome_Users
Changed in version 2.7.0

SetUserFTA applies an association only when the current registry ProgID differs from the requested ProgID. Use -reapply to force reapplication when they already match.

Compatibility syntax

The legacy syntax without set remains supported, but group filtering is unavailable in this mode.

SetUserFTA.exe .pdf AcroExch.Document.DC
SetUserFTA.exe .htm,.html ChromeHTML

Command

replace — Replace an association

Replaces an association only when its current ProgID matches the specified existing ProgID. No change is made when it does not match.

Syntax

SetUserFTA.exe replace <extension_or_protocol> <current_ProgID> <new_ProgID>
# Change .htm to Chrome only when it is currently associated with Edge
SetUserFTA.exe replace .htm MSEdgeHTM ChromeHTML

Add -verbose for diagnostic output. In a configuration file, place the complete command on one line:

replace .htm MSEdgeHTM ChromeHTML

Command

get — List user associations

Displays associations defined for the current user. Provide comma-separated values to limit the output. Wildcards are supported.

# List all current-user associations
SetUserFTA.exe get

# List selected extensions and a protocol
SetUserFTA.exe get .pdf,.docx,mailto

# Use a wildcard
SetUserFTA.exe get *ht*

# Hide AppX associations
SetUserFTA.exe get -noappx

# Include the associated program command line
SetUserFTA.exe get .txt -cmdline

-noappx hides AppX associations. -cmdline displays the associated program’s command line or, for a UWP app, its AppUserModelID.

Command

del — Delete user associations

Deletes the current user’s UserChoice association for one or more extensions or protocols. Windows Explorer then uses the machine association when one exists.

SetUserFTA.exe del .pdf
SetUserFTA.exe del http,.pdf,.txt

# Delete without immediately refreshing Windows Explorer
SetUserFTA.exe del .txt -norefresh
Windows-enforced defaults

Some file types cannot fall back to a machine-level association. Windows may immediately assign its default—for example, Microsoft Edge for PDF files—or do so when the file type is next used. -norefresh delays the Explorer refresh but does not prevent a later reset.

Command

find — Find associations by ProgID

Lists extensions and protocols currently associated with a ProgID. Wildcards are supported.

SetUserFTA.exe find MSEdgeHTM
SetUserFTA.exe find *edge*
SetUserFTA.exe find MSEdgeHTM -cmdline

With -cmdline, the result also includes the program command line or, for a UWP app, its AppUserModelID.

Command

browser — List installed browsers

Lists installed browsers, shows each browser’s ProgID, and identifies the current default. Use the output to determine the exact browser name for a default-browser command.

SetUserFTA.exe browser
SetUserFTA.exe get browser

Set the default browser

Use the browser name shown by SetUserFTA.exe browser or SetUserFTA.exe get browser. The HKLM or HKCU form resolves the corresponding ProgIDs automatically.

SetUserFTA.exe HKLM "Firefox-308046B0AF4A39CB"
SetUserFTA.exe HKLM "Microsoft Edge"
SetUserFTA.exe HKLM "Google Chrome"

Alternatively, associate the HTTP and HTTPS protocols directly with a browser ProgID. Adding .htm and .html is optional; setting HTTP and HTTPS is sufficient for Windows to recognize the default browser.

SetUserFTA.exe set http,https ChromeHTML
SetUserFTA.exe set http,https,.htm,.html ChromeHTML

Configuration files

Use a configuration file to apply multiple associations in one run. Windows Explorer is refreshed after the complete file has been processed.

SetUserFTA.exe <path_to_config_file>
  • Place one association on each line.
  • Separate an extension or protocol and its ProgID with a comma.
  • Add an optional group after a second comma.
  • Prefix a group with ! to invert the condition.
  • Use del .ext to delete an association.
  • Begin a comment line with #.
  • SetDefaultBrowser-style syntax such as HKLM "Google Chrome" is supported.

A DISM XML file can be converted to SetUserFTA format with the dism2fta utility.

Example configuration file

# Use Edge for PDF files when the user belongs to Group_Edge_PDF
.pdf, MSEdgePDF, Group_Edge_PDF

# Otherwise use Acrobat Reader
.pdf, AcroExch.Document.DC, !Group_Edge_PDF

# Associate text files with Notepad
.txt, txtfile

# Delete the .url association
del .url

# Use Edge for HTTP and HTTPS
http, MSEdgeHTM
https, MSEdgeHTM

# Set Chrome as the default browser
HKLM "Google Chrome"

# Set Chrome only for users outside GRP_Edge_Users
HKLM "Google Chrome", !GRP_Edge_Users

# Replace Edge with Chrome for PDF files only when Edge is current
replace .pdf MSEdgeHTM ChromeHTML

Command

run / start — Start an associated program

Starts the program associated with the specified extension or protocol so that you can test the association.

SetUserFTA.exe run .txt
SetUserFTA.exe start .txt
Important

The executable is started without command-line arguments, so its behavior may differ from double-clicking a file. This command uses current-user associations only and does not start programs associated solely at machine level.

Command

query — Query the effective association

Displays the effective association even when none exists for the current user. This is the only SetUserFTA command that also reports machine-level associations.

SetUserFTA.exe query .txt

The output identifies the association location, ProgID, and full program command line:

HKCU, .pdf, FoxitReader.Document, "C:\Program Files (x86)\Foxit Software\Foxit PDF Reader\FoxitPDFReader.exe" "%1"

HKCU or HKLM indicates where the association is stored, not where the ProgID itself is defined. SetUserFTA does not manage machine-level associations; Windows provides assoc and ftype for that purpose.

Export file type associations

Use shell output redirection to save results. The resulting file can later be used as a SetUserFTA configuration file.

# Export all current-user associations
SetUserFTA.exe get > fta.txt

# Export the current PDF association
SetUserFTA.exe get .pdf > pdf.txt

# Export the default-browser associations
SetUserFTA.exe get http,https,.htm,.html > default_browser.txt

Licensed add-on

SilentFTA — Silent configuration deployment

SilentFTA is a completely silent variant of SetUserFTA. It is designed for quiet deployments and automation scenarios where no user interaction, visible window, or feedback is wanted.

Usage

Pass the full path to a valid configuration file as the first argument:

SilentFTA.exe <path to config>

SilentFTA runs without a visible window and suppresses all errors by default.

License requirement

SilentFTA uses the same license as SetUserFTA. A valid SetUserFTA.lic file must be present in the same directory as SilentFTA.exe.

Apply associations only once

Add -applyonce to apply every association from the configuration file only on the first run. Users can subsequently change their associations even if SilentFTA runs at every logon.

SilentFTA.exe <path to config> -applyonce

To reapply an association later, remove -applyonce, or mark the association for deletion with the configuration file’s delete option and run SilentFTA again.

Troubleshooting

The optional -v mode displays errors in a MessageBox:

SilentFTA.exe <path to config> -v
Do not deploy verbose mode to end users

Use -v only for diagnostics. For normal troubleshooting, prefer running SetUserFTA.exe with -verbose.

Option

-cmdline — Display program command lines

Use with get or find to display the command line of each associated program.

SetUserFTA.exe get -cmdline
SetUserFTA.exe get .pdf -cmdline
SetUserFTA.exe find MSEdgeHTM -cmdline

Option

-validonly — Process existing ProgIDs only

Checks whether a ProgID resolves to an executable and processes the input only when it does. Supported by get, set, and find.

# List only associations with a valid ProgID
SetUserFTA.exe get -validonly

# Associate PDF files only when Acrobat Reader is installed
SetUserFTA.exe set .pdf AcroExch.Document.DC -validonly

Option · Since 2.7.1

-applyonce — Apply an association only once

Writes an ApplyOnce value under each created UserChoice key. While that value exists, SetUserFTA and SilentFTA ignore later changes for the extension.

SetUserFTA.exe set .pdf AcroExch.Document.DC -applyonce
  • Include -applyonce on every run to retain this behavior.
  • Remove the option to ignore the stored value and apply normally.
  • Delete the association to clear ApplyOnce.

Option

-noappx — Hide UWP applications

Filters get output so that only traditional Windows applications are displayed.

SetUserFTA.exe get -noappx

Option

-verbose — Show diagnostic output

Most commands support -verbose, which displays environment details and internal processing steps for troubleshooting.

# Display environment details
SetUserFTA.exe -verbose

# Display the steps used to create an association
SetUserFTA.exe set .pdf ChromeHTML -verbose