Product documentation
SetUserFTA 2.x Documentation
Manage per-user Windows file type and protocol associations from the command line.
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>
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.
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 /fCommand
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
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
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 .extto 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
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.
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
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
-applyonceon 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