Setting up FSLogix with WVD

A while ago, I blogged about setting up WVD. This post is a follow-up, in which I’ll walk you through the setup and configuration of FSLogix with WVD.

FSLogix is an interesting piece of technology Microsoft acquired in 2018. FSlogix allows you to store both user profiles and applications on a centralized file share. This is extremely useful in virtual desktop environments, as the user’s profile doesn’t have to be copied prior to boot. FSLogix will mount those profiles hosted on a file share, and will make them appear local.

For this post, I’ll be setting up FSLogix on my existing WVD pool. If you want to learn more about how to setup a host pool, check out more here.

Downloading and installing FSLogix

Downloading and installing FSLogix is straightforward. You can download it from this link, and then install it on the target machine. You can also bake in FSLogix in your custom image, if you plan to use a custom image for your host pool.

The downloaded file contains three different installers.

  • Java Rule Editor
  • Apps Rule Editor
  • Apps Setup
The downloaded file contains 3 setup files.

For our purpose of profile redirection, we only need the last one, which we’ll install. You specify an install location and let the install do its job.

The setup completed successfully.

Storage considerations

There are three essential options to host your profiles:

  • Azure Files
  • Azure NetApp Files
  • Self managed file share

There’s a great article in the documentation that describes the different options. For most enterprise deployments, I believe Azure NetApp Files is a good target, since it provides native ACL (without the need for AAD DS) and scales pretty well. If you are fine with using AAD DS, you can certainly also consider the default Azure Files. Just know that AAD DS is a firm requirement.

However, in my case I’m building out a quick demo of FSLogix, and I don’t have the budget to cover the minimum 4TB for NetApp Files (I’m running on my MSDN subscription). So I’ll create a self-managed file share on my domain controller (Don’t do this at home, kids!).

Creating a share on my domain controller to host the profiles.

Next up, we’ll need to head on over to the registry to configure FSLogix. For a 101 demo, doing this via the registry is fine. But in an enterprise setting, you’ll want to control this using a GPO.

You need to add the following keys to the Computer\HKEY_LOCAL_MACHINE\software\FSLogix key:

EnabledDWORD1
VHDLocationsMulti-String Value“Network path for file share”
The updated registry

For safety I decided to exclude my admin user from the FSLogix directory. This way I can be sure that my admin user’s profile isn’t harmed. This can be done by adding that user to the FSLogix exclude group.

Now, I’m ready to try this out, logging out of my admin user, and logging in as Ben.

Effects of FSLogix

My first try of logging in as Ben didn’t create any profile on my file share. A little bit frustrated I dove into the FSLogix logs, located here: %ProgramData%\FSLogix\Logs. I checked the profile logs and found the following:

[21:58:14.367][tid:00000c14.00000e78][INFO]           ===== Begin Session:  LoadProfile: ben
...
[21:58:14.383][tid:00000c14.00000e78][INFO]             Reason set to 3: A local profile for this user exists on this system
[21:58:14.383][tid:00000c14.00000e78][WARN: 00000003]   Local profile already exists. Do nothing. (The system cannot find the path specified.)
[21:58:14.383][tid:00000c14.00000e78][INFO]             Configuration setting not found: SOFTWARE\FSLogix\Profiles\PreventLoginWithFailure.  Using default: 0
...
[21:58:14.384][tid:00000c14.00000e78][INFO]           ===== End Session:  LoadProfile: ben

So, my local profile is messing with the network profile being created. So, let’s remove the local profile. You can do that by going into advanced system settings and deleting the profile.

Deleting the local profile.

Now I can login again, and I can see the profile appear on my Domain controller.

After logging in, the profile appears in the File Share.

To test if the profile is actually enabled on all nodes, I’ll try to make some changes (a file on the Desktop and change the wallpaper), and then login via another node. For this, I scaled out my WVD host pool and shut down the second host. I made the changes on the first host, logout, stop the first host and boot the second one. And then, let’s login.

I made some changes on host 0

And like magic, when logging into the second host, I can see my file on the Desktop and the nice wallpaper I selected.

I can see the changes on host 1 (computer name for proof).

Conclusion

Setting up FSLogix proved to be relatively straightforward. I only had one issue, which was the local profile. If this would have been a fresh machine, I wouldn’t have to have dealt with this.

The steps I performed in this demo aren’t however enterprise ready. You won’t want to go ahead and install FSLogix manually on each one of your hosts. You’ll want to bake in the installation in the actual image you’re using and then use a GPO to set the profile container. This might be topic for a new post (if you’re interested in this, let me know via a comment on Twitter or LinkedIn).

Leave a Reply