VMware Employee

## Set File Type Associations (FTA) on Windows 10 using UEM

Finally a way to define File Type Associations on Windows 10!

Christoph Kolbicz reverse engineered the hash used by Microsoft to set FTA info in the registry. He created a tool that allows you to set any FTA on Windows 8/10 and 2012/2016.

Now you can finally link PDF and HTML extensions to another app than Edge. Or make any other change you would like.

When you combine this with VMware UEM, you can automatically set the right FTA's at logon.

Just create a UEM Logon Task to start the tool with the right parameters. You can find the tool, documentation and more info here:

SetUserFTA: UserChoice Hash defeated – Set File Type Associations per User or Group on Windows 8/10 ...

All credits go to Christoph Kolbicz.

23 Replies
Enthusiast

Hi Pim,

The procedure does not work the way as in the blog, when your PDF or HTML application is installed in an (General) AppStack (VMware App Volumes) and using Windows 10.

Probably this is a timing issue attaching the AppStack or a timing issue in Windows 10 when setting the FTA.

I found a workaround/procedure...

What you need is a simple script with a timer just a line above the SetUserFTA.exe.

Run this script in the "Logon Tasks" in UEM or GPO.

For example:

1. Create a SetPredefinedFTAs.bat

2. Script:

@echo off

TIMEOUT /T 15 /NOBREAK

exit

3. I used UEM "Logon Tasks" to run it asynchronously and after profile archive import.

VMware Employee

Thanks for the update and the insights.

Timing sometimes is an issue, so good that you report this.

Another solution which is easier to implement would be to create a UEM Shortcut in the Startup folder.

This shortcut would point to the command "\\%readshareforeverydomainuser%\SetUserFTA.exe" .pdf AcroExch.Document.DC and should be created in the 'Startup' folder.

This way the command is executed when the Windows Explorer starts, which is one of the first things that happens once the user session is started.

Virtuoso

Thanks for this info, very interesting. Gonna try it right away.

Regarding the UEM and Appvolumes timing issue. I have had a few discussion with some VMWare engineers regarding this. You also see this issue with setting printers using UEM (which we would love to do but can't use at the moment) because Appvolumes does a restart of the spooler after attachment.

Isn't it possible to create a condition within UEM to wait for Appvolumes to be finished processing appstacks? I know that an event is written in event viewer when all appstacks are processed and available (reverse_replicate not taken into account but that is not needed for this).

For people that use both UEM and Appvolumes it would be a life saver. Using powershell for attaching printers now and it's not the fastest solution Microsoft ever came up with .

VMware Employee

Hi Ray_handels,

Hmmm... Did you receive a copy of our roadmap or something? 🙂

UEM 9.3 (to be released very shortly) has some App Volumes-specific logic to deal with the spooler restart.

Virtuoso

This is something that has been a wish of us for a very long time.

We struggled with setting printer connections and as we started using UEM a few weeks back and found out that the logic behind it is very easy and works like a charm. Only downside is that it still interferes with Appvolumes when logging in, mostly due to applications not being there already and timing issues with the print spooler.

Having an option like that would be very very helpful for us. It would mean even faster login times.

I know that this is an open door and I already know the answer but any word on release dates?? I know that a new version of View is around the corner so delivering both UEM and Horizon View's new version would make sense . Can't wait to get my hands on that ....

VMware Employee

Delivering new versions of UEM and Horizon at the same time would make sense, right? Nudge, nudge, wink, wink.

🙂

VMware Employee

UEM 9.3 has been released, and it contains a fix for the issue where printer mapping fails while an AppStack with printer drivers is being attached.

Virtuoso

Thank you very much for the heads up. Any word on release notes or admin guides? Tried looking for it but apparently Google didn't scavenge it yet

Expert

\\ Ivan
---
Blog: https://www.ivandemes.com
Enthusiast

It works fine - but is there a way to just do this the first time a user logins into w10 (new employees), because we dont want to override different settings - for instance a user decides to use Chrome as his default Browser - like the predefined setting from UEM.

Thanks!

Enthusiast

There are more ways to implement this.

Don't know if you have persistent or non-persistent VDI's or maybe fat clients...

If you have non-persistent VDI, then you need the really run once option (see: https://kb.vmware.com/s/article/2146336​).

With persistent VDI's or fat clients you, can you can use the out-of-the-box "run once" from UEM.

What you also can do is workout multiple scenarios and connect an AD-group for the different browsers you offer.

You only need another mechanism (self-service tool) to let the users switch by themselves.

Microsoft don't make it much easier in Windows 10...

Good-luck!

Enthusiast

Hey Ive tried your RunOnceSpecial but it didnt work so far - anything I am doing wrong here?

<?xml version="1.0" encoding="utf-8"?><userEnvironmentSettings><setting type="importTask" command="\\***\it\UEMConfig\Default Settings\SetUserFTA_v1.5\SetUserFTA.exe .pdf AcroExch.Document.DC" label="****" async="1" runOnce="1" runOnceSpecial="1" /></userEnvironmentSettings>

Enthusiast

Sorry for the late response. It is quite busy at the moment at work and home.

Maybe I can test it later this week, why it doesn't work out for you.

VMware Employee

Thank you, LAANSID, for posting to this thread, which made me realize I'd somehow missed the previous message from SchwarzC​​. Sorry about that.

SchwarzC, can you post a FlexEngine log file at log level DEBUG, covering at least the logon and logoff of one session, and the logon of the next session for that user? The config file you posted looks OK, so hopefully the log file contains some hints about what's (not) going on.

Enthusiast

Everything looks fine in my opinion...

This works fine at my current project.

Recently someone from the VMware community (Ivo van de Mes) have placed a blogpost about roaming the user FTA instead of mandatory set it.

I'm trying to implement it at my current project, because they are afraid there will be no adoption if a user cannot change the default browser, pdf viewer or photo/video player.

Goodluck.

Enthusiast

This works and I posted to reddit as well.

After a couple days of research and failed attempts to get FTAs functioning on Windows 10 using UEM, I was finally successful following most of the steps referenced here. I did however have to complete a couple of tweaks to make this work using UEM but ultimately the steps provided by Mr. James Rankin were tremendously helpful.

How I did it for UEM.

1. Set defaults on Template.
2. class="yklcuq-10 hpxQMr"

The following is only required if you would like any changes the user makes to FTAs to be roaming.

1. Created powershell script to export the .xml file upon logoff and saved on template.

. C:/Windows/system32/dism.exe /Online /Export-DefaultAppAssociations:\\UEMServer\UEMPROFILESHARE\$env:username\OEMDefaultAssociations.xml  2. Created second powershell script to import that .xml at login and saved on template if (Test-Path \\UEMServer\UEMPROFILESHARE\$env:username\OEMDefaultAssociations.xml){ Copy-Item \\UEMServer\UEMPROFILESHARE\\$env:username\OEMDefaultAssociations.xml -Destination C:\Windows\System32 } 

3. Used UEM to execute logon task, running the script created in step two of this section.

powershell.exe -ExecutionPolicy Bypass -Command "& C:\ImportFTA.ps1" 

4. Used UEM to execute logoff task, running the script created in step one of this section.

powershell.exe -ExecutionPolicy Bypass -Command "& C:\ExportFTA.ps1" `

5. Used UEM to create Privilege Elevation rule for DISM

C:\Windows\System32\Dism.exe

VMware Employee

Just in case someone finds this old thread: Dynamic Environment Manager 9.10 has been released, and now provides roaming of default applications out of the box.

Contributor

DEMdev omg Christmas came early. Thanks!

Enthusiast

That's fantastic, can't wait to give this a try!