FSLogix Profile Containers: Configuration and Troubleshooting

In a pooled AVD host pool, users land on a different VM almost every session — so their profile can’t live on the host. FSLogix solves this by storing the entire Windows profile in a VHD(X) container on shared storage and mounting it at logon. Get it right and users never notice; get it wrong and it’s your top support ticket.

What FSLogix actually does

FSLogix mounts the user’s profile VHDX from an SMB share at logon and releases it at logoff.

FSLogix redirects the user profile into a virtual disk (a .vhdx) held on an SMB share. At logon the container is mounted and grafted onto the local profile so Windows and applications behave as though the profile is local. At logoff it unmounts. The two main components:

  • Profile Container — the whole user profile in one VHDX. This is the one you’ll use most.
  • Office Container — isolates just the Office/Outlook cache (OST), search index and Teams data; useful when layering with another profile solution.

Choosing storage — the decision that defines performance

FSLogix performance is storage performance. Your realistic options:

OptionStrengthsWatch-outs
Azure Files PremiumSimple, SMB-native, good IOPS, Entra/AD authPer-share IOPS ceiling; plan share count for large estates
Azure NetApp FilesHighest performance, low latency at scaleHigher cost; capacity-pool minimums
Storage Spaces Direct VMFull controlYou own the patching, HA and backup — usually not worth it

Rule of thumb

For most deployments start with Azure Files Premium. Move to Azure NetApp Files when profile latency or per-share limits become the bottleneck on large, dense host pools.

Core configuration

FSLogix is driven by registry values (usually delivered via Intune, Group Policy or the image). The essentials under HKLM\SOFTWARE\FSLogix\Profiles:

Enabled                 = 1
VHDLocations            = \\<storage-account>.file.core.windows.net\profiles
ProfileType             = 0        ; normal (single mount)
SizeInMBs               = 30000    ; per-profile max size
IsDynamic               = 1        ; grow on demand
FlipFlopProfileDirectoryName = 1   ; %username%%sid% folder naming
DeleteLocalProfileWhenVHDShouldApply = 1

Two settings save the most pain in production: FlipFlopProfileDirectoryName (makes profile folders human-readable) and DeleteLocalProfileWhenVHDShouldApply (prevents stale local profiles from blocking the container mount).

Permissions — get these exactly right

The share needs both share-level and NTFS permissions. The standard model:

  • Share-level: the AVD users group gets the Storage File Data SMB Share Contributor role.
  • NTFS: users get Create folder / append data, List, Read on the share root — but only Modify on their own folder (Creator Owner).
  • Admins retain Full Control for support and cleanup.

The classic failure modes

SymptomLikely cause
Temporary profile at logonContainer failed to mount — permissions, or a stale local profile
Slow logonsStorage latency/IOPS, oversized profiles, or AV scanning the VHDX
“Profile in use” / lockedUngraceful logoff left the VHDX attached; needs release or session cleanup
Bloated containersTeams/Office caches unbounded — cap them and exclude what you can

Always exclude the VHDX from AV

Configure your antivirus to exclude *.vhd and *.vhdx and the FSLogix folders. Scanning a mounted profile container is one of the most common causes of slow logons.

Sizing and lifecycle

Use dynamic VHDX so containers grow only as needed, set a sane SizeInMBs cap, and have a plan for orphaned profiles (leavers). Cap the Teams and OneDrive caches, and consider an Office Container if Outlook OSTs dominate your profile size.


FSLogix is deceptively simple — a VHDX on a share — but profiles, permissions and storage performance are where AVD deployments most often stumble. Nail storage choice, permissions and AV exclusions first, and the rest is tuning.

Need a hand with your AVD platform? 🚀

I help organisations design, migrate and optimise Azure Virtual Desktop. If you’re planning or troubleshooting a deployment, get in touch.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *