fslogix
fslogix
FSLogix documentation
Virtual desktops and published remote applications are a critical, and growing part for
many businesses. These environments thrive when able to provide a consistent and
efficient user experience. FSLogix enhances the user experience, and simplifies the
management of these environments.
About FSLogix
e OVERVIEW
What is FSLogix
More information
i REFERENCE
g TUTORIAL
b GET STARTED
FSLogix prerequisites
FSLogix applications
Types of containers
Configuration examples
c HOW-TO GUIDE
Install FSLogix
Y ARCHITECTURE
d TRAINING
FSLogix enhances and enables a consistent experience for Windows user profiles in
virtual desktop computing environments. FSLogix isn't limited to virtual desktop
environments, but could be used on physical desktops where a more portable user
experience is desired.
FSLogix provides customers with both ease of configuration and various levels of
flexibility. This can lead to limitless configuration options of which, can have unintended
consequences. FSLogix can be a complex solution with various dependencies on other
systems and infrastructure. We recommend that you engage with resources who have
the following skill set or have these skills inherently:
7 Note
FSLogix provides unique integration and advantages when used in an Azure Virtual
Desktop environment.
Key capabilities
Redirect user profiles to a storage provider. Mounting and using the profile from a
storage provider eliminates delays often associated with solutions that copy
profiles to and from a network location.
Redirect only the portion of the profile that contains Office1 data by using an
ODFC container. The ODFC container allows an organization already using an
alternate profile solution2 to enable Microsoft 365 applications in multi-session
desktop environments.
Applications use the user's profile as if it were on the local disk. FSLogix uses a
filter driver to virtualize and redirect the profile at the file system level. Applications
are unaware the profile is on the network. Obscuring the redirection is important
because many applications can't work properly with a profile stored remotely.
Profile containers used with Cloud Cache to provide high availability and disaster
recovery profile solutions.
Application Rule Sets manage access to an application, font, printer, or other items.
Access can be controlled using users, groups, IP Addresses, and other criteria.
Application Rule Sets significantly decrease the complexity of managing large
numbers of gold images.
1 Office data includes, but is not limited to Microsoft 365 applications, OneDrive, Teams, SharePoint, and OneNote.
2 Under most circumstances, ODFC containers are not used with Profile containers simultaneously.
Next steps
FSLogix Prerequisites
7 Note
FSLogix may be used in any public / private data center or cloud, as long as the user is
properly licensed. FSLogix operates on all Microsoft supported operating systems that
include, but isn't limited to:
Eligibility
You're eligible to use FSLogix if you have one of the following licenses:
Storage considerations
Before implementing FSLogix, it's important to properly design and configure your
storage infrastructure based on your workload, user, and business requirements. FSLogix
doesn't provide storage architecture or design guidance. The following next steps are
provided as guides in your solution design process.
Network considerations
Network configuration also plays an important aspect when designing your profile
management solution using FSLogix. FSLogix is unique in that the standard
configuration relies on mounting a container from a remote storage provider.
Regardless of the configuration, network latency, bandwidth and proximity to the
storage provider is pivotal to the user's experience.
%TEMP%\*\*.VHDX
%Windir%\TEMP\*\*.VHD
%Windir%\TEMP\*\*.VHDX
\\server-name\share-name\*\*.VHD
\\server-name\share-name\*\*.VHD.lock
\\server-name\share-name\*\*.VHD.meta
\\server-name\share-name\*\*.VHD.metadata
\\server-name\share-name\*\*.VHDX
\\server-name\share-name\*\*.VHDX.lock
\\server-name\share-name\*\*.VHDX.meta
\\server-name\share-name\*\*.VHDX.metadata
7 Note
If you change the default location of the cache or proxy folder, adjust the
exclusions accordingly.
Next steps
FSLogix Release Notes
Feedback
Was this page helpful? Yes No
FSLogix has two (2) types of releases, feature and hotfix. A feature release has new or
changing functionality to the product, whereas a hotfix release is focused on specific
issues. Depending on the type of issue, we may have multiple hotfixes before a feature
release. Regardless of the of release type, customers are required to install and use the
latest version . For more information, see FSLogix product support.
Summary
This is a hotfix release to address known issues and other identified bugs. In addition,
this release brings back the capability to roam a user's Group Policy state which provides
asynchronous policy processing.
) Important
What's new
2210 hotfix 4 includes the following updates:
Group Policy processing can now occur asynchronously for users during sign-in.
MSIX folders under %LocalAppData%\Packages\<package-name>\ will automatically
get created when an ODFC container is created (new or reset container).
Teams data located in
%LocalAppData%\Publishers\8wekyb3d8bbwe\TeamsSharedConfig will now roam with
Fixed issues
2210 hotfix 4 includes the following fixed issues:
Windows Server 2019 would sometimes fail to query the provisioned AppX
applications for the user during sign-out.
MSIX folders that should not be backed up, would be removed during sign-out
instead of only removing the contents of those folders.
New Microsoft Teams crashes or fails to start in Windows Server 2019.
New Microsoft Teams would display an error during launch with The parameter is
incorrect .
New Microsoft Teams would display an error during launch with Invalid function .
New Microsoft Teams would not on-demand register during sign-in when using
the ODFC container.
New Microsoft Teams would not on-demand register during profile creation and
would not register during future sign-ins, despite being installed.
User-based Group Policy settings would persist in the user's profile after the policy
setting was removed or set to disabled.
File information
Download the following package and follow the installation instructions
Summary
This is a hotfix release with limited support for various versions of Windows and was
provided to unblock customers running the latest versions of Windows 11 with New
Teams in virtual desktop environments. All customers are urged to replace any
installations of this version with FSLogix 2210 hotfix 4, which provides a complete set of
changes and updates for New Teams.
) Important
Do not use this version, instead download and install 2210 hotfix 4
(2.9.8884.27471).
Changes
Update: When new Teams is detected, the AppX package is registered for the user
during sign-in using the family name.
Update: During user sign-out, Teams user data/cache located in
%LocalAppData%\Packages\MSTeams_8wekyb3d8bbwe\LocalCache will be saved in the
container.
Fix: Resolved an issue where a virtual machine would reboot unexpectedly as a
result of bug check (various stop codes) when a user's redirects were removed
before sign-out.
Summary
This is a hotfix release to address known issues and other identified bugs.
Changes
Fix: Resolved an issue where a virtual machine would reboot unexpectedly as a
result of bug check (various stop codes).
Fix: Cloud Cache no longer creates a race condition when multiple threads try
accessing the same tracking file.
Fix: Cloud Cache thread timing has been adjusted to ensure proper file handling
and sanitization.
Fix: Cloud Cache now writes an event log message when a storage provider is
offline when the user signs in.
Fix: Cloud Cache no longer causes a user session to hang while processing I/O.
Fix: Resolved an issue which failed to detach an ODFC container.
Update: Group Policy templates have been updated and re-organized. Read about
the changes in the Group Policy how-to article.
File information
Download the following package and follow the installation instructions
Summary
This is a hotfix release to address known issues and other identified bugs.
Changes
Setting: Added new configuration setting (RoamIdentity). Allows legacy roaming
for credentials and tokens created by the Web Account Manager (WAM) system.
Fix: Resolved an issue where frxsvc.exe would crash when processing
AppXPackages.
Fix: Resolved issues in handling FileIds associated with OneDrive.
Fix: Resolved an issue with orphaned meta files on Cloud Cache SMB providers.
Fix: Resolved an issue where a pending rename operation would fail because the
target filename was invalid.
Fix: Resolved an issue where user sessions were cleaned up before a proper sign
out.
Fix: Resolved an issue where ODFC incorrectly handled multiple VHDLocations.
Fix: Resolved an issue in how settings are applied for ObjectSpecific configurations.
Fix: Resolved an issue where an ODFC container wouldn't correctly detach during
sign out.
Fix: Resolved an issue where VHD Disk Compaction would fail to cancel correctly
when using Cloud Cache.
Fix: Resolved an issue where ODFC VHD Disk Compaction would fail when
RoamSearch was enabled.
Fix: Resolved an issue where users would be stuck at a black screen as a result of
attempting to empty the Recycle Bin prior to roaming.
Update: Added policy for new RoamIdentity setting.
Summary
This release is focused on three (3) core features, six (6) major bug fixes, and two (2)
updates.
Changes
Feature: Added the ability to compact the user's container during the sign out
phase. For more information, see VHD Disk Compaction.
Feature: Added a new process during the sign out phase, which creates an AppX
package manifest for the user. This manifest is used at sign-in to re-register the
AppX applications for an improved user experience. This work is on-going as AppX
packages and applications continue to evolve. The focus for this work has been on
the built-in Windows apps (inbox apps).
Feature: FSLogix now roams the users Recycle Bin within the user's container.
) Important
All three (3) of our new features are enabled by default, but have the option
to be disabled.
Fix: When OneDrive data is stored outside the user's profile, FSLogix correctly
impersonates OneDrive for setting permissions.
Fix: Cloud Cache now properly honors lock retry count and intervals.
Update: Group Policy templates have new names that align with their registry
settings. New help information indicates where in the registry Group Policy makes
the change. Added version history for newly added settings.
Update: Ensure Azure Storage Account Blob container names correctly adhere to
Azure naming requirements.
Summary
This update for FSLogix 2201 includes fixes to multi-session VHD mounting, Cloud
Cache meta tracking files, and registry cleanup operations.
Changes
Resolved an issue that would cause a system crash while reading from meta
tracking files in a Cloud Cache configuration.
Resolved an issue where a sign in would succeed even if when the disk failed to
attach. Most commonly occurs in multi-session environments.
Resolved an issue during profile cleanup where user registry hives would be
removed regardless of the FSLogix local group exclusions.
Summary
This update for FSLogix 2201 includes fixes to Cloud Cache and container redirection
processes. No new features are included with this update.
Changes
Resolved an issue with Cloud Cache where disk read / write blocking could
potentially create a deadlock to the disk and cause the Virtual Machine to become
unresponsive.
Resolved an issue that would cause a Virtual Machine to crash while removing
profile redirections during the sign out process.
Summary
This update for FSLogix is the latest full featured release. In this version there are, over
30 accessibility related updates, new support for Windows Search in specific versions of
Windows, better handling and tracking of locked VHD(x) containers, and resolved
various issues.
Changes
Fixed issue where the FSLogix Profile Service would crash if it was unable to
communicate with the FSLogix Cloud Cache Service.
The OfficeFileCache folder located at
%LOCALAPPDATA%\Microsoft\Office\16.0\OfficeFileCache is now machine specific
and encrypted so we exclude it from FSLogix containers. Office files located
outside this folder aren't impacted in this update.
Windows Server 2019 version 1809, and newer versions of Windows Server,
natively support per-user search indexes and we recommend you use that native
search index capability. FSLogix Search Indexing is no longer available on those
versions of Windows Server.
Windows 10 Enterprise Multi-session and Windows 11 Enterprise Multi-session
natively support per-user search indexes and FSLogix Search Indexing is no longer
available on those operating systems.
FSLogix now correctly handles cases where the Windows Profile Service refCount
registry value is set to an unexpected value.
Over 30 accessibility related updates have been made to the FSLogix installer and
App Rules Editor.
A Windows event now records when a machine locks a container disk with a
message that looks like "This machine '[HOSTNAME]' is using [USERNAME]'s (SID=
[USER SID]) profile disk. VHD(x): [FILENAME]. This event is generated from the
METADATA file created in the user's profile directory. This file can be ignored, but
not deleted."
Resolved an issue where the DeleteLocalProfileWhenVHDShouldApply registry
setting was ignored in some cases.
Fixed an issue where active user session settings weren't retained if the FSLogix
service was restarted. This was causing some logoffs to fail.
Fixed an issue where FSLogix didn't properly handle sign out events if Profile or
ODFC containers were disabled during the session or per-user/per-group filters
were applied mid-session that excluded the user from the feature. Now FSLogix
sign out related events always occurs based off the FSLogix settings applied at sign
in.
FSLogix no longer attempts to reattach a container disk when the user session is
locked.
Fixed an issue that caused the FSLogix service to crash when reattaching container
disks.
Fixed a Cloud Cache issue that caused IO failures if the session host's storage block
size was smaller than a cloud provider's block size. For optimal performance, we
recommend the session host disk hosting the CCD proxy directory has a physical
block size greater than or equal to the CCD storage provider with the largest block
size.
Fixed a Cloud Cache issue where a timed out read request (network outage,
storage outage, etc.) wasn't handled properly and would eventually fail.
Reduced the chance for a Cloud Cache container disk corruption if a provider is
experiencing connection issues.
Resolved an issue where temporary rule files weren't deleted if rule compilation
failed.
Previously, the Application masking folder was only created for the user who ran
the installer. With this update, the rules folder is created when the Rules editor is
launched.
Resolved an interoperability issue with large OneDrive file downloads that was
causing some operations to fail.
Fixed an issue where per-user and per-group settings didn't apply if the Profile or
ODFC container wasn't enabled for all users.
Resolved an issue where the Office container session configuration wasn't cleaned
up if a profile fails to load.
Fixed an issue where HKCU App Masking rules using wildcards would fail to apply.
Fixed an issue that caused some sessions configured with an ODFC container to fail
to sign in.
Resolved an issue where the App Rules editor would crash if no assignments were
configured.
Next steps
Download and install FSLogix
Configuration examples
Installation
Is FSLogix integrated into all Windows operating
systems?
FSLogix isn't a Windows feature and must be installed separately. FSLogix can be found
in the Azure Marketplace for Windows 10 and Windows 11 multi-session images. While
we aim for this version of FSLogix to be 'up-to-date', customers should verify which
version is installed. If necessary, upgrade to the latest version.
Console
[18:09:59.554][tid:00000f94.000040cc][INFO] Mirroring
C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive to \\?
\Volume{7f7bafd1-fb6a-4f15-878d-3c2acf351e2e}\OneDrive\UserMeta
[18:09:59.554][tid:00000f94.000040cc][INFO] CopyFolderToVolume:
Source: C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive
Destination: OneDrive\UserMeta Volume: \\?\Volume{7f7bafd1-fb6a-4f15-878d-
3c2acf351e2e}\
[18:09:59.554][tid:00000f94.000040cc][INFO] Creating mount point:
C:\Windows\TEMP\FrxMount{5512FFFF-42DD-40B9-AE76-76B3CA567E4A} -> \\?
\Volume{7f7bafd1-fb6a-4f15-878d-3c2acf351e2e}\
[18:09:59.554][tid:00000f94.000040cc][INFO] Success creating
mount point. Mirroring files...
[18:09:59.569][tid:00000f94.000040cc][INFO] Copying directory:
Source: C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive
Destination: C:\Windows\TEMP\FrxMount{5512FFFF-42DD-40B9-AE76-
76B3CA567E4A}\OneDrive\UserMeta
[18:09:59.569][tid:00000f94.000040cc][INFO] Copying directory:
C:\Windows\system32\robocopy.exe
"C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive"
"C:\Windows\TEMP\FrxMount{5512FFFF-42DD-40B9-AE76-
76B3CA567E4A}\OneDrive\UserMeta" /MT /R:5 /W:1 /XJD /COPYALL /IT /B
/DCOPY:DAT /MIR
[18:09:59.569][tid:00000f94.000040cc][INFO] CreateProcess
successful
[18:09:59.569][tid:00000f94.000040cc][INFO] Enabling cloud files
pass-through
[18:09:59.569][tid:00000f94.000040cc][INFO] Waiting for process
to end
[18:10:00.460][tid:00000f94.000040cc][INFO] Robocopy exit code: 1
(Success)
[18:10:00.616][tid:00000f94.000040cc][INFO] Success mirroring
files
[18:10:00.616][tid:00000f94.000040cc][INFO] Volume mount point
removed
[18:10:00.616][tid:00000f94.000040cc][INFO] Mirror complete
Microsoft Entra ID
Can I use FSLogix containers with Microsoft
Entra ID and cloud-only identities?
Yes...BUT, it requires understanding of the risks. There are two (2) ways we've identified
how to configure FSLogix for Microsoft Entra ID and cloud-only identities. Check out the
FSLogix profile containers for Microsoft Entra ID cloud only identities blog article.
Redirects or redirections.xml
What are the recommended values for the
redirections.xml file?
FSLogix doesn't provide recommended values for the redirections.xml file. The
redirections.xml file is a powerful tool to help you manage the user's profile AND may
cause problems if not used correctly. We rely on application owners to document what
data can or can't be excluded from users profile container.
For example:
Tip
Don't exclude user profile data for applications unless the application owner has
documented the data can be excluded.
Cloud Cache
Do I need to use Cloud Cache for high
availability?
No. It can be an acceptable solution to use standard containers (VHDLocations) with a
highly available storage provider. Azure Files provides high availability through zone-
redundant storage (ZRS) and is a recommended storage provider.
Recommendations
Review your network topology and latency to all configured storage providers
Upgrade your storage provider to a higher performing tier
Disable VHDCompactDisk
Don't use ProfileType = 3 or VHDAccessMode = 1, 2, or 3
Don't use CcdMaxCacheSizeInMBs
Feedback
Was this page helpful? Yes No
Tip
FSLogix profile containers are a complete roaming profile solution for virtual environments.
The profile container (single container), redirects the entire Windows user profile into a VHD
stored on a storage provider. The most common storage provider is an SMB file share.
The profile container is inclusive of all the benefits and uses found in the ODFC container.
Learn how to
" Enable the product for profiles
" Specify the location for the containers
" Verify the container has been attached and working
Prerequisites
Successful deployment of a virtual desktop or Azure Virtual Desktop environment.
SMB file share with NTFS and share-level permissions correctly configured.
Download and install the latest version of FSLogix.
Review configuration options.
7 Note
This tutorial doesn't cover how to convert to / from single or dual containers.
7 Note
Includes all Microsoft 365 application data. No need for an ODFC container.
3. Select Start and Type Registry Editor directly into the Start Menu.
5. Go to: HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles .
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
2. Select Start and Type command prompt directly into the Start Menu.
6. Select Start.
%username%-%sid%
) Important
FSLogix ODFC containers are a subset to the profile container and are used to redirect
specific Microsoft 365 app data into a VHD stored on a storage provider. The most
common storage provider is an SMB file share.
All benefits of the ODFC Container are automatic when using profile containers in a single
container configuration. There's no need or benefit to using the ODFC container when
profile containers are your primary profile management solution. ODFC containers can
optionally be used in with profile containers in a dual container configuration, to place
Microsoft 365 app data in a different VHD from the rest of the profile data.
When pairing the ODFC container with third party roaming profile solutions, ensure to
exclude the paths in the profile managed by the ODFC container. The paths to exclude
depend on the ODFC configuration settings.
Learn how to
" Enable the product for ODFC
" Specify the location for the containers
" Verify the container has been attached and working
Prerequisites
Successful deployment of a virtual desktop or Azure Virtual Desktop environment.
SMB file share with NTFS and share-level permissions correctly configured.
Download and install the latest version of FSLogix.
Review configuration options.
Completed profile container configuration tutorial.
7 Note
This tutorial doesn't cover how to convert to / from single or dual containers.
5. Go to: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\FSLogix\ODFC .
2 Ensures Microsoft Teams data is kept in the container for optimal performance.
4 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
2. Select Start and Type command prompt directly into the Start Menu.
6. Select Start.
%username%-%sid%
10. Locate the newly created Profile and ODFC VHDX containers.
ノ Expand table
ODFC configuration setting Exclusion path Type
IncludeSharepoint Default
new Teams
%LocalAppData%\Packages\MSTeams_8wekyb3d8bbwe\LocalCache
Tutorial: Configure profile containers with Cloud
Cache
Article • 12/05/2023
Tip
Cloud Cache uses CCDLocations instead of VHDLocations . Don't use both settings.
Cloud Cache is an optional type of configuration to profile or ODFC containers. The primary function of
Cloud Cache is to mitigate short-term or intermittent connectivity problems with the remote storage
providers. Before following this tutorial, be sure to review the Cloud Cache overview along with the
various configuration settings.
This tutorial depicts a Cloud Cache configuration for a profile container only. Cloud Cache with an ODFC
container is supported and is configured similarly as in the ODFC tutorial, but replace VHDLocations with
CCDLocations.
Learn how to
" Enable the product for profiles
" Specify the Cloud Cache locations for the containers
" Verify the container has been attached and working
Prerequisites
Successful deployment of a virtual desktop or Azure Virtual Desktop environment.
SMB file share with NTFS and share-level permissions correctly configured.
Create Azure page blob storage account.
Download and install the latest version of FSLogix.
Review configuration options.
Azure page blob connection string stored in credential manager using frx command-line utility.
7 Note
Includes all Microsoft 365 application data. No need for an ODFC container.
2. Sign in to the virtual machine as a local Administrator or an account with administrative privileges.
3. Select Start.
6. Go to: HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles .
ノ Expand table
1 Recommended to save disk space on the local disk and risk of data loss when using pooled desktops.
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
1. Select Start.
5. Expand Microsoft .
6. Expand FSLogix .
7. Expand CloudCache .
8. Select Operational .
10. Look for Event ID 5 that shows the lock on the proxy file.
Learn how to
" Create your first Rule Set
" Test your hiding rules
" Create assignments for your Rule Set
" Deploy your Rule Set
Prerequisites
Download and install:
FSLogix Apps (Core Product)
FSLogix Apps Rule Editor
Install Google Chrome
Tip
If you plan to test this Rule Set in the next section, open the FSLogix Rules
Editor as Administrator.
Figure 1: Create new Rule Set
4. Select Enter file name to create the Rule Set and open the rule wizard dialog.
Figure 2: New Rule Set
7. Select Scan.
7 Note
This will scan the system for all relevant items for the application and include
them as hiding rules.
8. When complete, the Scan button changes. Select OK to display the automatic
hiding rules.
Figure 4: Application scan complete
9. The Rule Editor now displays all the items to be hidden that are related to Google
Chrome and you've created your first Rule Set.
The Rule Editor automatically saves the Rule Set file once the rules have been added.
Test your hiding rules
Testing your hiding rules on the system where the rules were created is one way to
validate the rules work as intended. Check out the Configuring FSLogix Apps Rule Sets
page for an in-depth guide.
This action immediately applies these rules and you should no longer be able
to see or open Google Chrome.
3. When complete, select Apply Rules to System again and the rules no longer apply.
3. Select Add.
4. Select Group.
9. Select OK and you've successfully created an assignment for your Rule Set.
Rule Set files should be copied to the virtual machine. Copy the files to C:\Program
Files\FSLogix\Apps\Rules . Once the files are copied to this location, the FSLogix Apps
Tip
Using third party redirections.xml files can exclude items which can affect proper
operation of the OS or applications in your environment. Exclude and include
statements should be used sparingly.
FSLogix redirections.xml provides functionality that allows some parts of a user's profile
to be excluded from a user's container. This tutorial provides you with the steps to
create your own XML file to exclude the recommended Microsoft Teams folders.
Learn how to
" Exclude recommended Microsoft Teams folders for VDI
" Verify the XML file has been copied from the source folder
" Verify the folders have been excluded
Prerequisites
Review: Classic Teams for Virtualized Desktop Infrastructure
Review: Upgrade to new Teams for Virtualized Desktop Infrastructure (VDI)
XML
6. Go to the file share where the XML file source are saved.
9. Select Save.
7 Note
Users require Read access to the file share where the XML file is stored. Users
without Read access will not be able to copy the XML file during sign in.
4. Go to: HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles
2. Open Profile-%date%.log
3. Find the section starting with: [INFO] ===== Begin Session: StartShell
4. If the redirections.xml file was successful, the log should be similar to the logs
shown:
text
[23:36:31.364][tid:00000f10.00003bdc][INFO] Configuration
Read (REG_SZ): SOFTWARE\FSLogix\Profiles\RedirXMLSourceFolder. Data:
\\<stg-acct>.file.core.windows.net\containers
[23:36:31.364][tid:00000f10.00003bdc][INFO] Attempting to
copy: "\\<stg-acct>.file.core.windows.net\containers\Redirections.xml"
to: "C:\Users\%username%\AppData\Local\FSLogix\Redirections.xml"
[23:36:31.396][tid:00000f10.00003bdc][INFO]
Redirections.xml copy success
[23:36:31.396][tid:00000f10.00003bdc][INFO] Reading profile
folder redirections
[23:36:31.411][tid:00000f10.00003bdc][INFO] Creating base
folders for profile folder redirections
[23:36:31.411][tid:00000f10.00003bdc][INFO] Creating base
folder 'AppData\Roaming\Microsoft\Teams\media-stack\'
[23:36:31.427][tid:00000f10.00003bdc][INFO] Creating base
folder 'AppData\Local\Microsoft\Teams\meeting-addin\Cache\'
[23:36:31.427][tid:00000f10.00003bdc][INFO] Creating base
folder
'AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTe
ams\Logs\'
[23:36:31.427][tid:00000f10.00003bdc][INFO] Creating base
folder
'AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTe
ams\PerfLogs'
[23:36:31.427][tid:00000f10.00003bdc][INFO] Creating base
folder
'AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTe
ams\EBWebView\WV2Profile_tfw\WebStorage'
[23:36:32.099][tid:00000f10.00003bdc][INFO] Adding exclude
rule for folder 'AppData\Roaming\Microsoft\Teams\media-stack\'
[23:36:32.099][tid:00000f10.00003bdc][INFO] Added
redirection C:\Users\%username%\AppData\Roaming\Microsoft\Teams\media-
stack ->
C:\Users\local_%username%\AppData\Roaming\Microsoft\Teams\media-stack
[23:36:32.099][tid:00000f10.00003bdc][INFO] Adding exclude
rule for folder 'AppData\Local\Microsoft\Teams\meeting-addin\Cache\'
[23:36:32.099][tid:00000f10.00003bdc][INFO] Added
redirection C:\Users\%username%\AppData\Local\Microsoft\Teams\meeting-
addin\Cache ->
C:\Users\local_%username%\AppData\Local\Microsoft\Teams\meeting-
addin\Cache
[23:36:32.099][tid:00000f10.00003bdc][INFO] Adding exclude
rule for folder
'AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTe
ams\Logs\'
[23:36:32.099][tid:00000f10.00003bdc][INFO] Added
redirection
C:\Users\%username%\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalC
ache\Microsoft\MSTeams\Logs ->
C:\Users\local_%username%\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\
LocalCache\Microsoft\MSTeams\Logs
[23:36:32.099][tid:00000f10.00003bdc][INFO] Adding exclude
rule for folder
'AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTe
ams\PerfLogs\'
[23:36:32.099][tid:00000f10.00003bdc][INFO] Added
redirection
C:\Users\%username%\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalC
ache\Microsoft\MSTeams\PerfLogs ->
C:\Users\local_%username%\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\
LocalCache\Microsoft\MSTeams\PerfLogs
[23:36:32.099][tid:00000f10.00003bdc][INFO] Adding exclude
rule for folder
'AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTe
ams\EBWebView\WV2Profile_tfw\WebStorage\'
[23:36:32.099][tid:00000f10.00003bdc][INFO] Added
redirection
C:\Users\%username%\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalC
ache\Microsoft\MSTeams\EBWebView\WV2Profile_tfw\WebStorage ->
C:\Users\local_%username%\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\
LocalCache\Microsoft\MSTeams\EBWebView\WV2Profile_tfw\WebStorage
1 The filename is not case-sensitive.
2 Do not include the file name. The path could also be a local path if the XML file is part of a gold image.
Next steps
Custom profile redirections.xml
About FSLogix applications
Article • 03/31/2023
FSLogix is a product that is made up of three (3) distinct applications. The core
application known as FSLogix Apps is the primary component that enables user profile
virtualization in virtual desktop environments. FSLogix also provide two (2) supplemental
applications for rule editing.
Next steps
FSLogix Apps RuleEditor and Rule Sets
FSLogix Apps RuleEditor and Rule Sets
Article • 08/22/2023
The FSLogix Apps RuleEditor is a standalone application that creates FSLogix Rule Set
files. FSLogix Apps Services ( frxsvc ) processes Rule Set files and can perform various
actions that manage the end-user experience in virtual desktop environments. Rule Set
files are a collection of rules that show, hide, redirect, or customize specific aspects of
the registry, file system, applications or printers. A single Rule Set file can support any
number of rules of varying types. In most cases, keeping the Rule Set files contained to a
specific type of customization makes them easier to maintain and troubleshoot.
Types of rules
You can create four types of rules:
Hiding rule
Redirection rule
App container (VHD) rule
Specify value rule
U Caution
Hiding and redirection rules manipulate the file system at very fundamental level.
These types of rules can be very powerful, and creating or changing them can have
unexpected consequences. Always test and validate Rule Sets before deploying
them in a production environment.
Hiding rule
A hiding rule hides specific items from a user or group of users. Hiding rules can apply
to files, folders, registry keys, registry values, printers, or fonts.
Redirection rule
Redirection rules allow IT administrators to redirect non-profile or other specific data
into the user profile container so it's available on subsequent sign-ins regardless of
which virtual machine they sign into.
App container (VHD) rule
7 Note
App container rules have been deprecated as of August 22, 2023. Please review the
feature deprecation page for additional information.
You can contain applications with a large amount of read-only data (for example, Clip
Art galleries, Java applications, and so on) within a VHD and mount them to a virtual
machine. App container rules let you automate this process by automatically mounting
these VHDs for specific users at sign-in.
Rule Assignments
) Important
FSLogix Apps Rule Set assignments don't support Microsoft Entra ID cloud-only
accounts. To use the assignment functionality, you must sync the users and groups
from an Active Directory domain controller. Additionally, the virtual machines must
have line-of-sight to a domain controller to resolve SIDs.
Application Rule Sets are assigned to users, groups, and other entities using the
RuleEditor. Newly created rules automatically have the Everyone group assigned with
the Applies setting configured to No.
Assignment order
The ordering of assignments affects how the Rule Set is applied. When the assignment
file is processed, the Rule Set is applied from top to bottom. Assignment ordering is
managed using the Move Up and Move Down buttons.
Figure 1: Everyone group processed at top
Assignment types
You can assign Rule Sets to the following entities:
User
Group
Process
Network Location (IP Address)
Computer
Directory container (distinguished name)
Environment variable
7 Note
Assignment template
You can save the assignments and assignment order as a template for later use. This
template becomes the default assignment configuration for any new Rule Sets you
create on the same machine.
7 Note
Active Directory reporting has been deprecated as of August 22, 2023. Please
review the feature deprecation page for additional information.
Administrators use the AD Reporting feature to validate whether the Rule Set file applies
to the expected user or users. The report only shows user accounts affected by the
assignment and doesn't display groups.
Next steps
Install FSLogix Apps RuleEditor
7 Note
The Java Rule Editor is a standalone tool and allows specific URLs or applications to be
assigned to a specific installed version of Java.
Cloud Cache is a feature that works with Profile and ODFC containers to provide
resiliency and high availability. Cloud Cache uses the locally mounted container to
provide periodic updates to the remote storage providers. Cloud Cache is designed to
insulate users from short-term or intermittent local (inner-region, close proximity)
storage issues. Based on the configuration, it can also be used as part of a Business
Continuity or Disaster Recovery (BCDR) plan when using remote storage providers in
different regions. Using Cloud Cache puts a performance and storage requirement on
the virtual machine to accommodate the extra I/O operations and storage required by
the local cache.
Cloud Cache uses storage providers based on the order of entries in CCDLocations .
Storage providers should be listed in order of proximity, then preference.
Only one (1) provider is used when data is hydrated from the storage provider.
Data is written to all storage providers regardless of which provider is used during
data hydration.
Performance (latency, utilization, bottlenecks) of a storage provider affects its sync
status with the local copy.
Having one (1) or more provider that is behind in updates from local cache could
be an indicator of an under performing storage provider.
Ping or Test-NetConnection command results are not the same as transactional
I/O and are bad indicators of how a storage provider will or can perform.
Figure 1: Detailed diagram showing Cloud Cache components
Local Cache
Cloud Cache is able to insulate a user from connectivity issues to the remote storage
providers because the container used for the user's profile is created and stored local to
the virtual machine (local cache). During a first-time sign-in, FSLogix creates the
container for the user in C:\ProgramData\FSLogix\Cache and mounts the container to the
virtual machine. Next, FSLogix sets up all the necessary redirections for the user's profile.
Then the User Profile Service creates the user's profile into the local cache. All data
written to the user's profile is temporarily stored as block-level cache objects in the
same directory. Those block-level cache objects are then committed to the local cache.
Before the block-level cache objects are created, the writes into the user's profile are
processed in memory through a proxy file.
During a 2nd or Nth sign-in, FSLogix attempts to find and mount any previous local
cache VHD(s) stored on the virtual machine. Looking for a local cache is the default
configuration setting and may not be desired as it may lead to low disk space events.
Review the Cloud Cache settings reference page for more settings.
used during the current session and for subsequent sign ins. If all providers become
unhealthy during the user's session, the local cache continues to operate and grow1
until one or more provider returns to a healthy state.
1 The local cache will only grow up to the maximum size of the container as specified in the SizeInMBs setting.
Hydrate
When the local cache doesn't contain the data requested by the file system, Cloud
Cache hydrates (reads and copies) the data from 1 of the remote storage providers to
the local cache. This operation is also part of the sign in process when populating the
local cache for the user's profile.
Flush
1. On a lazy asynchronous operation, Cloud Cache flushes the changes to all storage
providers simultaneously as each provider is flushed on its own thread. FSLogix
doesn't throttle this operation and utilizes as much throughput as the system will
allow.
2. During sign out when one or more providers don't contain all the updates, the
user's sign out is delayed2 until all providers are at the same sequence.
3. During a user's session when the connection to any storage provider becomes
unhealthy, FSLogix queues up all the changes and then flushes them to the
providers when they return to a healthy state.
2 A user's sign out is delayed based on how Cloud Cache is configured using the
HealthyProvidersRequiredForUnregister value.
Clone
A full VHD(x) clone is performed when Cloud Cache determines, at sign in, that a
storage provider isn't at the same sequence. During this operation, all pending writes
are kept in the local cache until all storage providers are at the same sequence. Once
complete, the flush operation begins sending new data to the storage providers.
Proxy File
Cloud Cache uses the concept of a proxy file, represented as Profile_%username%.vhd
though it isn't a true VHD file. The proxy file is used as a means to collect and process all
I/O writes destined for the local cache. The I/O writes are buffered in memory and
tracked via the proxy file before they're written out as block-level cache objects in the
cache directory. While the proxy file has the same size as the local cache file, the actual
size on disk is zero, as no data is written to this file.
Figure 3: Cloud Cache Proxy File
Auxiliary Files
Cloud Cache makes use of two (2) auxiliary files in order to maintain control and
sequence of the local cache.
7 Note
These auxiliary files are used by FSLogix and are not meant to be opened or used
outside of the product. Any relevant information in those files will be made
available through our log files or event log entries.
Lock File
The lock file is what its name might imply, a file use to determine which virtual machine
has an I/O lock on the container. Cloud Cache uses this information to determine
ownership of the container for a given provider. The lock file mechanism is critical when
using Cloud Cache with ProfileType set to '3' (Multiple or concurrent sessions).
Meta File
The meta file is a multi-purpose file where we track the state of the container. Inside the
meta file, Cloud Cache uses a sequence numbering system to determine which provider
has the most recent data.
Storage Providers
FSLogix isn't a storage provider, rather we rely on underlying architecture of the storage
provider(s). For more information on the storage providers FSLogix supports, review our
Container Storage Options.
Next steps
High Availability or Container Resiliency Options using Cloud Cache
High availability options for FSLogix
Article • 03/31/2023
A high availability design isn't solely focused on a single element rather ensuring all the
elements of a given solution have a level of redundancy. The FSLogix design goal
applies high availability so that the underlying storage provider has replicas of your
data. This goal doesn't take into account the availability of the virtual machine, network
or any other dependent resource needed to access the storage provider. Implementing
a high availability solution for user profiles is aimed at insulating users from momentary
or short-lived storage issues or outages.
7 Note
High availability in these contexts are specifically focused on protecting the user's
profile container within the same region or data center.
Tip
The storage examples in the diagrams could be swapped with Azure page blobs in
lieu of Azure Files. Configuring both Azure Files and page blobs are not unique
enough to provide a sufficient level of isolation in the event of an outage.
Cloud Cache containers are user profile VHD(x) files used with storage providers listed in
the CCDLocations configuration setting. Cloud Cache allows for multiple storage
providers, which are kept up-to-date from the local cache of the virtual machine. Using
multiple storage providers, both on-premises and Azure based solutions may be able to
separate the storage providers in order to mitigate any one (1) outage from affecting
both storage providers. Most commonly high availability is achieved through using
unique storage providers within the same region or data center.
Azure Files is configured for ZRS and Azure NetApp Files isn't configured with any
redundancy. This design limits the exposure of an outage or issue affecting one of these
storage platforms, which provides more resiliency than creating two (2) Azure Files
(shares), two (2) Azure NetApp Files (capacity pools or volumes), or two (2) Azure page
blob accounts.
Session Hosts in Azure Virtual Desktop (AVD) are configured with CCDLocations . The
diagram is based on a common AVD deployment scenario. While this design doesn't
represent every customer environment, the goal is to demonstrate a multi-provider
configuration within a single region or data center for high availability purposes. Cloud
Cache is configured in such a way that the local cache is stored on the same disk as the
operating system. Alternatively, the virtual machine could be configured with another
disk, in Azure this disk could be a Managed Disk (data disk) or a Temporary disk1.
1 Temporary disks have many caveats and should reviewed before implemented in a production environment.
2 Warning
FSLogix in this configuration is not providing any resiliency and is fully reliant
on the storage provider.
This section will focus on Azure based storage providers which have native
high availability options.
Azure Files
" Review: Azure Files documentation
" Review: Azure Storage redundancy
2 Not all Azure regions support availability zones, see Azure regions with availability zone support.
2 Warning
Currently, the only option for high availability using Azure NetApp Files is to use their
availability zone placement feature. The availability zone placement feature only let's
you deploy volumes in availability zones of your choice, which should be in alignment
with Azure compute and other services in the same zone.
U Caution
This storage provider does not provide enough redundancy for FSLogix high
availability using standard containers.
Next steps
Business Continuity and Disaster Recovery using FSLogix
Business continuity and disaster
recovery options for FSLogix
Article • 12/05/2023
7 Note
All diagrams are examples based on Azure Virtual Desktop and are applicable to
other virtual desktop platforms.
An effective business continuity and disaster recovery (BCDR) plan focuses on the
processes and resources necessary for an organization to operate if a catastrophe or
other significant outage. Roaming user profiles aren't commonly described as a business
or mission-critical component of a BCDR strategy. In a virtual desktop environment, a
user is unaware they have a roaming profile. The profile is roamed to provide users with
a consistent experience regardless of the virtual machine. Business or mission-critical
data shouldn't be stored in a user's profile if at all possible. Using OneDrive, SharePoint
or other solutions are an effective means for protecting data during a BCDR event while
not relying on the data roaming with the user as part of their profile. This process is best
outlined in a recovery-time objective (RTO) and recovery-point objective (RPO) exercise
where the cost benefit and risk analysis can be weighed base on organizational and
business goals.
While this option doesn't seem like a BCDR design, it's focused on ensuring business
and mission-critical data isn't in the user's profile. During a disaster, users would create
new profiles in either a new location or on a new storage provider (both can be true).
This option is the most cost effective in terms of infrastructure cost though has a penalty
due to the effect it may have on the user experience.
Figure 1: No Profile Recovery | FSLogix standard containers (VHDLocations)
In the diagram, is a multi-region Host Pool using Azure Virtual Desktop. Both the
primary and failover regions have a dedicated Azure Files share using zone-redundant
storage (ZRS) which provides high availability within the region. The failover region has
Session Hosts, which are stopped or deallocated. In a disaster, the failover region
becomes the primary region and users will sign-in to those Session Hosts and create
new profiles on the Azure Files share in that region.
A failover design is a common strategy to ensure the availability and reliability of your
infrastructure in case of a disaster or a failure. Cloud Cache enables you to use FSLogix
using this type of failover design. With Cloud Cache, you can configure your devices to
use two (2) storage providers that store your profile data in different locations. Cloud
Cache synchronizes your profile data to each of the two storage providers
asynchronously, so you always have the latest version of your data. Some of your
devices are in the primary location and the other devices are in the failover location.
Cloud Cache prioritizes the first storage provider (closest to your device), and uses the
other storage provider as a backup. For example, if your primary device is in West US
and your failover device is in East US, you can configure Cloud Cache as follows:
The primary device uses a storage provider in West US as the first option and a
storage provider in East US as the second option.
The failover device uses a storage provider in East US as the first option and a
storage provider in West US as the second option.
If the primary device or the closest storage provider fails, you can switch to the
failover device or the backup storage provider and continue your work without
losing your profile data.
However, there are some drawbacks of using a failover design with Cloud Cache. First,
you have to pay extra for storing your profile data in two (2) locations. Second, you have
to manually initiate the failover process, which may require the approval of the business
stakeholders. Third, you may experience some latency or inconsistency in your profile
data due to the asynchronous synchronization to the two storage providers.
Tip
Before allowing users to fail back to profiles in the primary location, be sure all
users have signed out successfully from the failover location to ensure the
primary location has an up to date replica of the user's profile data.
Cloud Cache is an I/O intensive system and can easily cause network and/or
storage bottlenecks to the restored location.
Figure 2: Cloud Cache (primary / failover) | FSLogix Cloud Cache (CCDLocations)
In the diagram, we have a multi-region Host Pool utilizing Azure Virtual Desktop. Both
the primary and failover regions are part of this setup. They each have a dedicated
Azure Files share using zone-redundant storage (ZRS), ensuring high availability within
the region. The failover region contains Session Hosts, which are either stopped or
deallocated. In the event of a disaster, the failover region becomes the primary region.
Users will sign in to these Session Hosts and load their replicated profile from the
failover region.
BCDR (Business Continuity and Disaster Recovery) events are rarely graceful.
Depending on the circumstances, user profile data may not be guaranteed to be
intact.
Users signing in to Session Hosts in the failover region could experience data loss
or, in worse cases, container corruption.
Given this situation, it’s crucial to use storage platforms like OneDrive or SharePoint for
critical data. These platforms provide additional redundancy and protection against data
loss. Remember, planning for disaster recovery is essential, and having the right storage
strategy can mitigate risks and ensure business continuity.
Option 3: Cloud Cache (active / active)
" Review: Cloud Cache Overview
" Example: Advanced + Disaster Recovery (primary / failover)
Tip
When the failed region is operational, it may take significant time for the
profile data to fully replicate.
Cloud Cache is an I/O intensive system and can easily cause network and/or
storage bottlenecks to the restored location.
Figure 3: Cloud Cache (active / active) | FSLogix Cloud Cache (CCDLocations)
In the diagram, are two (2) AVD Host Pools and Session Hosts residing in specific Azure
regions. Users assigned to the West US region, access those virtual machines. Users in
the East US region only access and are assigned to those virtual machines. During a
disaster, the surviving region must have enough capacity to support all the users.
Additionally, users from the failed region need access granted to the virtual machines in
the surviving region.
BCDR events are never graceful and depending on the circumstances of the event, user
profile data isn't guaranteed to be intact. Users who sign-in to Session Hosts in the
surviving region could experience data loss or at worse container corruption. This
situation amplifies the need to use storage platforms like OneDrive or SharePoint for
critical user data.
Local include and exclude groups
Article • 03/31/2023
FSLogix provides four (4) local groups to granularly control which users or groups are
processed by the FSLogix service. Each type of container has a respective include and
exclude group. The exclude groups have no members by default. The include groups
automatically include the Everyone group.
Use cases:
Tip
Checking the include and exclude group members is a good start when
troubleshooting a user's container fails to attach or signs in with a temp or local
profile.
FSLogix has two (2) primary container types, which can be implemented as part of your
profile management solution. As outlined in our terminology page, FSLogix containers
are the virtual hard disk (VHD(x)) files, which hold all of the data for the given container
type.
7 Note
Cloud Cache isn't a type of container, but it is an optional configuration for profile
and ODFC container types. For more information, see Cloud Cache overview.
Profile container
A profile container is the most common container used in an FSLogix solution. A profile
container is all the data related to a user's profile, which is directly stored in the VHD(x).
A Windows user profile is typically stored in C:\Users\%username% . Nearly all the files and
folders found under this location would be included in an FSLogix profile container.
Some data in a users profile shouldn't or can't be roamed which can be found in the
exclusion list.
For users familiar with managing profiles, the function of the profile container may be
compared to Microsoft User Profile Disk (UPD), Microsoft roaming profiles, or Citrix User
Profile Management (UPM). Although the function is similar, the underlying method and
technology is different, resulting in key FSLogix capabilities.
7 Note
Unless otherwise configured, the profile container will hold all profile and ODFC
content in the same VHD(x) file. This is the recommended configuration.
deleted.
Default exclusions
%userprofile%\AppData\Roaming\Microsoft\Protect
%userprofile%\AppData\Roaming\Microsoft\Credentials
%userprofile%\AppData\Local\Microsoft\Credentials
%userprofile%\AppData\Local\Microsoft\Office\16.0\OfficeFileCache
ODFC container
An ODFC container is a container type, which is focused on storing profile content that
is unique to Microsoft Office applications1. The ODFC container is most commonly
implemented in conjunction other roaming profile solutions2.
1 Office data includes, but is not limited to Office apps, OneDrive, Teams, SharePoint, and OneNote.
2 Traditional roaming profiles, Citrix User Profile Management, VMware Dynamic Environment Manager, or similar.
) Important
When using ODFC containers with other profile roaming solutions, be sure the
other solutions are configured to exclude the ODFC data.
Office Activation
Outlook
Outlook personalization
SharePoint
OneDrive
Skype for Business (legacy support)
Most data contained in the ODFC container is sourced from other remote systems and is
easily replaced should the ODFC container become corrupted or deleted. For example,
Outlook data files are generated from remote e-mail servers (for example, Microsoft
365). The list of applications that can be included are found in the ODFC reference
article.
7 Note
Discretion is wanted in the storage location for Office data vs. other profile data.
Provides isolation from data loss or corruption in one of the containers3.
Used as a mechanism to specify which Office components have their data included
in the container4.
Allows organizations to have different container sizes to accommodate specific
workloads or data synced from OneDrive5.
3 ODFC container is not backed up or replicated to alternate locations since the data is recoverable from the source.
Storage options for FSLogix containers can vary widely depending on many factors. The
first factor(s) when choosing storage are the platform (that is, Azure, on-premises, etc.)
and location (that is, geographical region or datacenter) of your virtual infrastructure.
This document outlines the various options and considerations when choosing and
designing your container storage.
Storage requirements
Storage requirements can vary widely depending on the user, applications, and activity
on each profile. The following table gives an example of how many IOPS an FSLogix
profile needs to support each user.
ノ Expand table
Resource Requirement
The example in this table is of a single user, but can be used to estimate requirements
for the total number of users in your environment. For example, you'd need around
1,000 IOPS for 100 users, and around 5,000 IOPS when signing in and signing out.
Storage types
Regardless of your container configuration, all FSLogix containers can be stored on file
shares that support the SMB protocol. If you decided to use Cloud Cache as part of your
configuration, you can choose to store your containers in an Azure Storage Account
Blob.
Used in:
Used in:
FSLogix communicates with the Azure Storage Account using the Storage Account
Connection String. As outlined in this article, the connection string contains protected
security information. Knowledge of this information exposes a security risk that must be
considered and mitigated before using this type of storage provider. To correctly
implement this type of storage provider, the connection string or Storage Account name
and Account Key must be stored in the virtual machines credential manager .
ノ Expand table
Capacity 100 TiB per share, 100 TiB per Up to 8 TiB 32 TiB - 65 TiB
Up to 5 PiB per volume, 25 TiB per Disk
general purpose default quota per
account Subscription
Next steps
As outlined, FSLogix can be used with various storage options. Use the next step articles
to create the right storage location for your environment:
Azure Files
Create an SMB Azure file share
Overview - on-premises Active Directory Domain Services authentication over SMB
for Azure file shares
Enable Azure Active Directory Domain Services authentication on Azure Files
Enable Azure Active Directory Kerberos authentication for hybrid identities on
Azure Files
Storage permissions
Configure SMB Storage Permissions
Configuration options
Article • 03/31/2023
FSLogix operates based on specific registry settings that define how it operates. These
registry settings are applied on a per-machine level. The configuration settings reference
page provides detailed information on each registry setting and the expected behavior.
There are several ways to apply registry settings depending on the scenario and scale of
your environment:
Manual Registry Entries: The manual method implies adding registry entries
directly through one of these types of processes:
Registry Editor
Registration Files
Console Registry Tool for Windows
PowerShell
Desired State Configuration
7 Note
Local Group Policy (ADMX): The Local Group Policy editor can be used to
configure FSLogix through the ADMX files when stored locally on the virtual
machine. Unlike the manual methods, this method doesn't scale and is only used
as part of a test or development environment.
Group Policy Objects (ADMX): Group Policy Objects are an ideal method for large
scale configuration, especially where there isn't any existing automation.
Next steps
Configuration examples
Configuration examples
Article • 12/05/2023
The example configurations outlined in this article are a progression of complexity based
on configuration choices. Each example has an associated configuration focused on
redundancy or disaster recovery. We recommend customers select the simplest
configuration for their environment. Adding unnecessary complexity leads to incorrect
configurations and support cases.
7 Note
Use these examples as a starting point of your FSLogix configuration. The ideas and
concepts in these examples should inform your unique organizational requirements.
EXAMPLE 1: Standard
The Standard configuration example is the simplest configuration in which most customers
should consider.
Prerequisites (Standard)
" FSLogix prerequisites including antivirus exclusions
" Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
" SMB File Share.
" Validated share and NTFS permissions.
ノ Expand table
Items Description
Single VHD location The VHDLocations setting contains a single UNC path to an SMB file share.
Single container A single Profile container is created for the user. The ODFC container isn't
configured.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can
connections only be mounted within a single connection.
ノ Expand table
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
Key Points
Redundant and robust: Allows the profile container to be accessible even in the event
of failures or outages, minimizing downtime for end-users
Resiliency: Cloud Cache acts as an availability layer, periodically writing profile data
upstream to multiple storage providers.
Storage design expertise: Cloud Cache functionality is dependent on the
performance of your storage providers.
Summary
The Standard + High Availability configuration combines the benefits of the Standard setup
with additional measures to maintain availability across regions, making it suitable for
critical applications that require continuous access to profile data.
Figure 1: FSLogix High Availability using Cloud Cache
ノ Expand table
Items Description
Container The CCDLocations contains at least 2 storage providers of varying kinds. The
redundancy storage providers are in the SAME region as the virtual machines.
Single container A single Profile container is created for the user. The ODFC container isn't
configured.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can only
connections be mounted within a single connection.
ノ Expand table
1 Recommended to save disk space on the local disk and risk of data loss when using pooled desktops.
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
Key Points
Duplicate Infrastructure: The disaster recovery region mirrors the primary
infrastructure but remains inactive until required.
No Profile Recovery: Instead of restoring existing profiles, users create new ones in
the alternate location.
Simplicity: This approach minimizes complexity but relies heavily on user familiarity
and training.
End-User Experience: Ensuring a smooth transition and user understanding is crucial.
Summary
The Standard + Disaster Recovery configuration balances simplicity with the need for user
education and adaptation.
ノ Expand table
Items Description
Single VHD location The VHDLocations setting contains a single UNC path to an SMB file share.
Single container A single Profile container is created for the user. The ODFC container isn't
configured.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can
connections only be mounted within a single connection.
ノ Expand table
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 4: Advanced
The Advanced configuration example builds upon the Standard example by introducing
additional features to enhance flexibility and customization.
Key Points
Multiple VHDLocations or object-specific settings: You can specify multiple locations
for storing user profiles (VHDLocations). Alternatively, you can define object-specific
settings to tailor profile behavior for specific users or groups. This flexibility allows
you to optimize profile management based on your organization’s needs.
Minimal entries in custom profile redirections: Unlike the Standard setup, where the
redirections.xml file isn't used, the Advanced configuration minimizes the number of
redirections.xml entries. Each entry in the redirections.xml configuration adds
complexity and can cause unknown application behaviors. Minimizing these entries
may provide an overall better user experience.
Summary
The Advanced configuration provides granular control over profile storage and redirection,
making it suitable for organizations with diverse requirements.
Prerequisites (Advanced)
" FSLogix prerequisites including antivirus exclusions
" Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
" Multiple SMB File Share(s).
" Validated share and NTFS permissions (SMB only).
ノ Expand table
Items Description
Multiple VHD The VHDLocations setting contains a single or multiple UNC paths
locations (separated by semi-colon) to SMB file shares.
Single container A single profile container is created for the user. The ODFC container isn't
configured.
Items Description
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can
connections only be mounted within a single connection.
Tip
Multiple VHDLocations
ノ Expand table
account-name-
2>.file.core.windows.net\
<share-name>
Object-Specific VHDLocations
The default VHDLocations is used for any user or group not matched by the object-specific
configuration.
ノ Expand table
ノ Expand table
2 Warning
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
The primary device uses a storage provider in West US as the first option and a
storage provider in East US as the second option.
The failover device uses a storage provider in East US as the first option and a storage
provider in West US as the second option.
If the primary device or the closest storage provider fails, you can switch to the
failover device or the backup storage provider and continue your work without losing
your profile data.
Key Points
Failover design: This design ensures the availability and reliability of your
infrastructure in case of a disaster or a failure.
Profile storage: Cloud Cache enables your to store your profile data in different
locations.
Additional storage cost: Multiple storage locations will increase the overall cost.
Operational excellence: Manual failover process, which may require the approval of
the business stakeholders and process validation.
End-user experience: You may experience some latency or inconsistency in your
profile data due to the asynchronous synchronization to the two storage providers.
Summary
The Advanced + Disaster Recovery configuration shows how a failover design with Cloud
Cache can enhance the reliability and availability of your infrastructure by using two
storage providers in different locations. It also highlights the drawbacks of this approach,
including additional costs, the need for manual failover initiation, and potential latency or
inconsistency in profile data.
ノ Expand table
Items Description
Container The CCDLocations contains two (2) storage providers1. The primary site is
redundancy configured with the closest storage provider listed first and failover storage
provider provided listed last. The failover site has the reverse configuration. The
closest storage provider first, followed by the primary site storage providers listed
last.
Single A single profile container is created for the user. The ODFC container isn't
container configured.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can only be
connections mounted within a single connection.
redirections
Tip
Review the Custom profile redirections page for our recommended exclusions.
Primary site
ノ Expand table
Failover site
ノ Expand table
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 6: Complex
The Complex configuration example builds upon the Advanced example by introducing
multiple connections. In this setup, user profiles can handle multiple connections, allowing
a single user to have active sessions across different devices simultaneously. Despite the
increased complexity, the goal remains to provide a seamless experience for end-users.
Properly configured multiple connections enhance productivity and flexibility, making this
configuration suitable for organizations with diverse needs and high demands.
7 Note
Azure Virtual Desktop does not support multiple connections within the same Host
Pool.
Summary
The Complex configuration balances sophistication with user-centric design, making it ideal
for large organizations requiring scalability and robust profile management.
Figure 4: Complex example with multiple connections | FSLogix standard containers (VHDLocations)
Prerequisites (Complex)
" FSLogix prerequisites including antivirus exclusions
" Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
" Separate pools of virtual machines.
" Multiple SMB file share(s) (not for high availability).
" Validated share and NTFS permissions (SMB only).
ノ Expand table
Items Description
Multiple VHD location The VHDLocations setting contains a single or multiple UNC paths
(separated by semi-colon) to SMB file shares.
Single container A single profile container is created for the user. The ODFC container isn't
configured.
Concurrent ProfileType is set to 3. Users can have multiple sign-ins, but only one (1)
connection(s) session allows writes to the base VHD disk.
Items Description
Tip
Multiple VHDLocations
ノ Expand table
Object-Specific VHDLocations
The default VHDLocations is used for any user or group not matched by the object-specific
configuration.
ノ Expand table
ノ Expand table
Key Name Data Type Value Description
ノ Expand table
2 Warning
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
Key Points
Failover capability: In the event of a disaster, the surviving regions must have capacity
to support all users.
Profile storage: Cloud Cache enables your to store your profile data in different
locations.
Additional storage cost: Multiple storage locations will increase the overall cost.
Operational excellence: Manual failover process, which may require the approval of
the business stakeholders, process validation and proper user assignments.
End-user experience: You may experience some latency or inconsistency in your
profile data due to the asynchronous synchronization to the two storage providers.
Summary
The Complex + Disaster Recovery configuration with Cloud Cache provides redundancy
and flexibility, but business decisions play a crucial role in initiating failover.
Items Description
Container The CCDLocations contains two (2) storage providers1. The primary site is
redundancy configured with the closest storage provider listed first and failover storage
provider provided listed last. The failover site has the reverse configuration. The
closest storage provider first, followed by the primary site storage providers
listed last.
Single container A Profile and ODFC container exists or is created for each user.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can only be
connections mounted within a single connection.
Tip
ノ Expand table
ノ Expand table
1 Recommended to save disk space on the local disk and risk of data loss when using pooled desktops.
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
2 Warning
Users who have access to multiple locations may create a new profile in another
location if the location for their actual profile is not available.
Next steps
How to use Group Policy Templates
Custom profile redirections.xml
Article • 03/31/2023
Custom profile redirections are configured using an XML file (redirections.xml) located
within the user's profile container. FSLogix doesn't create the redirections.xml file. The
redirections.xml file is copied to the user's profile container from a source location. In
most cases, the source location is a remote file share where the users have access to
copy from and into their profile container. This document provides details on the
redirection.xml file and how best to implement it for your specific use case.
To include / exclude files and / or folders within a users profile container, you need to
create a file called redirections.xml. This file defines what to copy or exclude to / from a
user's profile container. The XML file is processed during a users sign in and sign out of
a virtual machine. Any changes made to the XML file while the user is signed into the
virtual machine, doesn't take effect until they sign out and sign-in.
Removing or renaming the XML file at the source location doesn't remove or rename it
for the users. If it's necessary to remove the custom redirections, clear out the XML file
contents and save it to the source location. At the next sign-in, the updated file will be
copied to the user's profile container.
7 Note
redirections.xml is only applicable when used with profile containers and has no
effect when using ODFC containers.
When stored in a central location (for example, root or subdirectory where user profile
containers are stored), be sure users only have read permissions to the XML file.
7 Note
Only specify the path to the redirections.xml file, don't specify the file name.
container)
) Important
If any entry or entries in the redirections.xml are removed, the contents or folders
remain in the VHD(x). Anything added in the redirections.xml is put in the
local_ %username% folder, but what already exists in the VHD(x) is not removed from
the VHD(x).
ExcludeCommonFolders: This attribute defines which (if any) well known folders
should be redirected out of the user's profile container. This attribute takes a
bitmask value that tells FSLogix which combination of folders to exclude. Add
up the values for all the folders to be excluded. For example, a value of 7
excludes the Contacts, Desktop, and Documents folders.
1: Contacts folder
2: Desktop folder
4: Documents folder
8: Downloads folder
16: Links folder
32: Music folders
64: Pictures and Videos folders
128: Folders involved in Low Integrity Level processes like AppData\LocalLow
At user sign out the local_%username% is removed and any new data is
lost. Nth sign ins always copies data from the container to the
local_%username% folder.
container.
7 Note
The folder or data must exist in the profile to be included back into the
container. For example, new profiles using FSLogix with an include
statement may not have all the folder structures created for a specific
path because the user has never used the application within the context
of their FSLogix profile container.
The parent folder of an included folder path MUST exist in the container
for the include to work correctly.
The XML file will accept any number of Include and Exclude elements.
Example redirections.xml
) Important
This example shows how the elements can be used. Follow the Create and
implement redirections.xml tutorial for a real-world XML implementation. Exclues
and includes can have unexpected consequences and must be created with care.
statement with copy moves the I/O of the data to the local disk instead of the
container1.
3. Exclude the Microsoft Edge folder with no copy operation (all data is removed at
sign out).
4. Include back the User Data folder inside the excluded Microsoft Edge folder.
XML
7 Note
On Windows 8 and later, folders involved in Low Integrity Level processes are
ALWAYS redirected to the local_%username% directory.
If the same folder is specified in both Exclude and Include elements, the
Exclude will take precedence.
To list the redirections put in place by FSLogix, use the frx command-line
utility.
Next steps
redirections.xml FAQ
Concurrent or multiple connections to a
single container
Article • 03/31/2023
Users connect to Virtual and Remote Desktops or Remote Applications in different ways
depending on how those environments are configured. The following outlines some
terminology used when users connect to these remote systems:
Standard connections
User creates a single remote session on a Windows computer through a full
desktop or remote application experience.
Concurrent connections
User creates a remote session on a Windows computer through a full desktop
or remote application. The same user creates a second remote session on the
same Windows computer through a full desktop or remote application.
Multiple connections
User creates a remote session on a Windows computer through a full desktop
or remote application. The same user creates a new remote session on a
different Windows computer through a full desktop or remote application.
7 Note
2 Warning
Prerequisites
Before configuring for concurrent or multiple connections, install and configure profile
containers.
Concurrent connections
Concurrent connections are used when a user needs to have more than one (1) session
on a single computer using the same Profile or ODFC container. Concurrent connections
require other registry entries to allow these types of connections. This scenario supports
the use of both VHD(x) base disk and VHD(x) differencing disks.
2 Warning
Required Settings
Registry Key: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server
fDenyTSConnections DWORD 0
fSingleSessionPerUser DWORD 0
Multiple connections
Multiple connections are used when a user needs to have more than one (1) session,
each on a different computer, using the same Profile or ODFC container. This scenario is
only supported using VHD(x) differencing disks. Unlike concurrent connections, no other
configuration is required beyond the differencing disks.
Sign on:
Client checks to see if a RW.VHD(x) file exists. If it doesn't, the client takes the
RW role and performs the same steps as ProfileType = 1. If the RW.VHD(x) file
does exist, the client takes the RO role and does the same steps as ProfileType
= 2.
7 Note
RO difference disks are stored in the local temp directory and are named
%usersid%_RO.VHD(x) .
The RW difference disk is stored on the network next to the parent VHD(x) file
and is named RW.VHD(x) .
The merge operation can be safely interrupted and continued. (e.g. If one
client begins the merge operation and is interrupted or powered off, another
client can safely continue and complete the merge). This is why both RW and
RO clients attempt a merge operation.
Merge operations on an ReFS file system, where the difference disk and the
parent are on the same ReFS volume, are nearly instantaneous regardless the
size of the difference disk.
Merge operations can only be done if there are no open handles to either the
difference disk or the parent VHD(x). The RO client also attempts to merge the
RW VHD(x) as it may be the last session to disconnect.
Sign On
Client searches for a session-based VHD(x) that isn't currently in use
If found, it's directly attached and used
If not found, one is created
If a new VHD is created, resulting in session-based VHD(x) files greater than the
number specified to keep in the setting, NumSessionVHDsToKeep , the VHD(x) is
marked for deletion on sign out.
Sign out
Client detaches the VHD(x)
If the VHD(x) is marked for deletion, it's deleted
7 Note
Local difference disks are stored in the local temp directory and are named
%usersid%_ODFC.VHD(x) .
Difference disks stored on the network are located next to the parent VHD(x)
file and are named %computername%_ODFC.VHD(x) .
The merge operation can be safely interrupted and continued. (e.g. If one
client begins the merge operation and is interrupted or powered off, another
client can safely continue and complete the merge).
Merge operations on an ReFS file system, where the difference disk and the
parent are on the same ReFS volume, are nearly instantaneous regardless the
size of the difference disk.
Merge operations can only be done if there are no open handles to either the
difference disk or the parent VHD(x). Therefore, only the last session can
successfully merge its difference disk.
Session-based VHD(x) files are named ODFC-%username%-SESSION-
<SessionNumber>.VHD(x) where <SessionNumber> is an integer from 0 - 9.
The example configurations outlined in this article are a progression of complexity based
on configuration choices. Each example has an associated configuration focused on
redundancy or disaster recovery. We recommend customers select the simplest
configuration for their environment. Adding unnecessary complexity leads to incorrect
configurations and support cases.
7 Note
Use these examples as a starting point of your FSLogix configuration. The ideas and
concepts in these examples should inform your unique organizational requirements.
EXAMPLE 1: Standard
The Standard configuration example is the simplest configuration in which most customers
should consider.
Prerequisites (Standard)
" FSLogix prerequisites including antivirus exclusions
" Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
" SMB File Share.
" Validated share and NTFS permissions.
ノ Expand table
Items Description
Single VHD location The VHDLocations setting contains a single UNC path to an SMB file share.
Single container A single Profile container is created for the user. The ODFC container isn't
configured.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can
connections only be mounted within a single connection.
ノ Expand table
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
Key Points
Redundant and robust: Allows the profile container to be accessible even in the event
of failures or outages, minimizing downtime for end-users
Resiliency: Cloud Cache acts as an availability layer, periodically writing profile data
upstream to multiple storage providers.
Storage design expertise: Cloud Cache functionality is dependent on the
performance of your storage providers.
Summary
The Standard + High Availability configuration combines the benefits of the Standard setup
with additional measures to maintain availability across regions, making it suitable for
critical applications that require continuous access to profile data.
Figure 1: FSLogix High Availability using Cloud Cache
ノ Expand table
Items Description
Container The CCDLocations contains at least 2 storage providers of varying kinds. The
redundancy storage providers are in the SAME region as the virtual machines.
Single container A single Profile container is created for the user. The ODFC container isn't
configured.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can only
connections be mounted within a single connection.
ノ Expand table
1 Recommended to save disk space on the local disk and risk of data loss when using pooled desktops.
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
Key Points
Duplicate Infrastructure: The disaster recovery region mirrors the primary
infrastructure but remains inactive until required.
No Profile Recovery: Instead of restoring existing profiles, users create new ones in
the alternate location.
Simplicity: This approach minimizes complexity but relies heavily on user familiarity
and training.
End-User Experience: Ensuring a smooth transition and user understanding is crucial.
Summary
The Standard + Disaster Recovery configuration balances simplicity with the need for user
education and adaptation.
ノ Expand table
Items Description
Single VHD location The VHDLocations setting contains a single UNC path to an SMB file share.
Single container A single Profile container is created for the user. The ODFC container isn't
configured.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can
connections only be mounted within a single connection.
ノ Expand table
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 4: Advanced
The Advanced configuration example builds upon the Standard example by introducing
additional features to enhance flexibility and customization.
Key Points
Multiple VHDLocations or object-specific settings: You can specify multiple locations
for storing user profiles (VHDLocations). Alternatively, you can define object-specific
settings to tailor profile behavior for specific users or groups. This flexibility allows
you to optimize profile management based on your organization’s needs.
Minimal entries in custom profile redirections: Unlike the Standard setup, where the
redirections.xml file isn't used, the Advanced configuration minimizes the number of
redirections.xml entries. Each entry in the redirections.xml configuration adds
complexity and can cause unknown application behaviors. Minimizing these entries
may provide an overall better user experience.
Summary
The Advanced configuration provides granular control over profile storage and redirection,
making it suitable for organizations with diverse requirements.
Prerequisites (Advanced)
" FSLogix prerequisites including antivirus exclusions
" Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
" Multiple SMB File Share(s).
" Validated share and NTFS permissions (SMB only).
ノ Expand table
Items Description
Multiple VHD The VHDLocations setting contains a single or multiple UNC paths
locations (separated by semi-colon) to SMB file shares.
Single container A single profile container is created for the user. The ODFC container isn't
configured.
Items Description
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can
connections only be mounted within a single connection.
Tip
Multiple VHDLocations
ノ Expand table
account-name-
2>.file.core.windows.net\
<share-name>
Object-Specific VHDLocations
The default VHDLocations is used for any user or group not matched by the object-specific
configuration.
ノ Expand table
ノ Expand table
2 Warning
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
The primary device uses a storage provider in West US as the first option and a
storage provider in East US as the second option.
The failover device uses a storage provider in East US as the first option and a storage
provider in West US as the second option.
If the primary device or the closest storage provider fails, you can switch to the
failover device or the backup storage provider and continue your work without losing
your profile data.
Key Points
Failover design: This design ensures the availability and reliability of your
infrastructure in case of a disaster or a failure.
Profile storage: Cloud Cache enables your to store your profile data in different
locations.
Additional storage cost: Multiple storage locations will increase the overall cost.
Operational excellence: Manual failover process, which may require the approval of
the business stakeholders and process validation.
End-user experience: You may experience some latency or inconsistency in your
profile data due to the asynchronous synchronization to the two storage providers.
Summary
The Advanced + Disaster Recovery configuration shows how a failover design with Cloud
Cache can enhance the reliability and availability of your infrastructure by using two
storage providers in different locations. It also highlights the drawbacks of this approach,
including additional costs, the need for manual failover initiation, and potential latency or
inconsistency in profile data.
ノ Expand table
Items Description
Container The CCDLocations contains two (2) storage providers1. The primary site is
redundancy configured with the closest storage provider listed first and failover storage
provider provided listed last. The failover site has the reverse configuration. The
closest storage provider first, followed by the primary site storage providers listed
last.
Single A single profile container is created for the user. The ODFC container isn't
container configured.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can only be
connections mounted within a single connection.
redirections
Tip
Review the Custom profile redirections page for our recommended exclusions.
Primary site
ノ Expand table
Failover site
ノ Expand table
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 6: Complex
The Complex configuration example builds upon the Advanced example by introducing
multiple connections. In this setup, user profiles can handle multiple connections, allowing
a single user to have active sessions across different devices simultaneously. Despite the
increased complexity, the goal remains to provide a seamless experience for end-users.
Properly configured multiple connections enhance productivity and flexibility, making this
configuration suitable for organizations with diverse needs and high demands.
7 Note
Azure Virtual Desktop does not support multiple connections within the same Host
Pool.
Summary
The Complex configuration balances sophistication with user-centric design, making it ideal
for large organizations requiring scalability and robust profile management.
Figure 4: Complex example with multiple connections | FSLogix standard containers (VHDLocations)
Prerequisites (Complex)
" FSLogix prerequisites including antivirus exclusions
" Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
" Separate pools of virtual machines.
" Multiple SMB file share(s) (not for high availability).
" Validated share and NTFS permissions (SMB only).
ノ Expand table
Items Description
Multiple VHD location The VHDLocations setting contains a single or multiple UNC paths
(separated by semi-colon) to SMB file shares.
Single container A single profile container is created for the user. The ODFC container isn't
configured.
Concurrent ProfileType is set to 3. Users can have multiple sign-ins, but only one (1)
connection(s) session allows writes to the base VHD disk.
Items Description
Tip
Multiple VHDLocations
ノ Expand table
Object-Specific VHDLocations
The default VHDLocations is used for any user or group not matched by the object-specific
configuration.
ノ Expand table
ノ Expand table
Key Name Data Type Value Description
ノ Expand table
2 Warning
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
Key Points
Failover capability: In the event of a disaster, the surviving regions must have capacity
to support all users.
Profile storage: Cloud Cache enables your to store your profile data in different
locations.
Additional storage cost: Multiple storage locations will increase the overall cost.
Operational excellence: Manual failover process, which may require the approval of
the business stakeholders, process validation and proper user assignments.
End-user experience: You may experience some latency or inconsistency in your
profile data due to the asynchronous synchronization to the two storage providers.
Summary
The Complex + Disaster Recovery configuration with Cloud Cache provides redundancy
and flexibility, but business decisions play a crucial role in initiating failover.
Items Description
Container The CCDLocations contains two (2) storage providers1. The primary site is
redundancy configured with the closest storage provider listed first and failover storage
provider provided listed last. The failover site has the reverse configuration. The
closest storage provider first, followed by the primary site storage providers
listed last.
Single container A Profile and ODFC container exists or is created for each user.
No concurrent The ProfileType setting is set to 0 or not configured. A user's profile can only be
connections mounted within a single connection.
Tip
ノ Expand table
ノ Expand table
1 Recommended to save disk space on the local disk and risk of data loss when using pooled desktops.
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
2 Warning
Users who have access to multiple locations may create a new profile in another
location if the location for their actual profile is not available.
Next steps
How to use Group Policy Templates
Redirect and move Windows known
folders to OneDrive
Article • 03/14/2024
There are two primary advantages of moving or redirecting Windows known folders
(Desktop, Documents, Pictures, Screenshots, and Camera Roll) to Microsoft OneDrive for
the users in your domain:
Your users can continue using the folders they're familiar with. They don't have to
change their daily work habits to save files to OneDrive.
Saving files to OneDrive backs up your users' data in the cloud and gives them
access to their files from any device.
For information on issues that can prevent folders from being moved, see Fix problems
with folder protection . Known Folder Move doesn't work for users syncing OneDrive
files in SharePoint Server.
) Important
If your organization is large and your users have a lot of files in their known folders,
make sure you roll out the configuration slowly to minimize the network impact of
uploading files. For users who have a lot of files in their known folders, consider
using the policy Limit the sync app upload rate to a percentage of throughput
temporarily to minimize the network impact and then disable the policy once
uploads are complete.
Folders redirected to other organizations
If a user's Documents, Pictures, or Desktop folders are currently redirected to OneDrive
in a different organization, redirecting to your organization’s OneDrive will create new
Documents, Pictures, or Desktop folders and the user will see an empty desktop. The
user has to manually migrate files from the other organization’s OneDrive to OneDrive
in your organization. We recommend that you disable the redirect to the other
organization before redirecting to your organization if possible.
Use this setting to give the users a call to action to move their Windows known
folders.
If users dismiss the prompt, a reminder notification appears in the activity center
until they move all known folders or an error occurs with the move, in which case
the reminder notification will be dismissed.
) Important
We recommend deploying the prompt policy for existing devices only, and
limiting the deployment to 5,000 devices a day and not exceeding 20,000
devices a week between macOS and Windows.
Use this setting to redirect and move known folders to OneDrive without any user
interaction. Move all the folders or select the desired individual folders. After a
folder is moved, the policy won't affect the folder again, even if the selection for
the folder changes.
You can choose to display a notification to users after their folders have been
redirected.
We also recommend using this setting together with Prompt users to move
Windows known folders to OneDrive.. If moving the known folders silently doesn't
succeed, users are prompted to correct the error and continue.
) Important
We recommend deploying the silent policy for existing devices and new
devices while limiting the deployment of existing devices to 1,000 devices a
day and not exceeding 4,000 devices a week between macOS and Windows.
Use this setting to require users to keep their known folders directed to OneDrive.
7 Note
Users can direct their known folders by opening OneDrive sync app settings,
clicking the Backup tab, and then clicking Manage backup.
Use this setting to prevent users from moving their known folders to any OneDrive
account.
For info about using the OneDrive policies, see Use Group Policy to control OneDrive
sync app settings.
7 Note
Extending the scope of folders that are synced by One Drive using Windows Folder
Redirection Group Policy is not supported.
1. Disable the Window Folder Redirection Group Policy and make sure to leave
the folder and contents on OneDrive.
2. Enable Known Folder Move Group Policy. Known folders remain in OneDrive.
1. Disable the Window Folder Redirection Group Policy and make sure to leave
the folder and contents at the redirected location.
2. Enable Known Folder Move Group Policy. Known folders move to OneDrive.
1. Use Migration Manager to copy contents in the network file share location to
a user's OneDrive, making sure that all contents go into the existing
Documents, Pictures, or Desktop folders.
7 Note
2. Disable the Window Folder Redirection Group Policy and make sure to leave
the folder and contents on the network file share.
3. Enable Known Folder Move Group Policy. Known folders move to OneDrive
and will merge with the existing Desktop, Documents, and Pictures folders,
which contain all the file share content that you moved in the first step.
Feedback
Was this page helpful? Yes No
VHD Disk Compaction is a process that runs every time a user signs out. The
compaction process is designed to automatically decrease the amount of storage a
user's container, depending on a predefined threshold. During the sign out phase,
FSLogix evaluates the disk to determine if disk compaction should run.
7 Note
VHD Disk Compaction affects Profile and ODFC containers (including Cloud Cache
configurations)
VHD Disk Compaction is Enabled by default. If you want to disable it, see Disable VHD
Disk Compaction.
The compaction process relies on the Optimize Drives service (defragsvc). This service
determines the minimum supported size by querying the MSFT_Partition API, using the
SizeMin parameter from the GetSupportedSize method. This operation takes into account
the location of immovable files (that is, files that can't be moved). For more information,
see GetSupportedSize method of the MSFT_Partition class.
) Important
You must use dynamically expanding virtual hard disks; fixed size virtual hard
disks cannot be compacted.
A-B=C
If C ≥ (A x 0.2), compaction runs.
If C < (A x 0.2), compaction doesn't run.
Example scenarios
Here are a couple of examples:
Example table:
User experience
When compaction runs, users see the message Waiting for FSLogix Apps Services for
some time. Depending on the space to recover, the compaction process should take an
average of 20 – 30 seconds. The first compact operation is the longest and is based on
recoverable space and other compute resource factors.
Each subsequent sign out should be quicker as the amount of data to compact should
decrease. VHD Disk Compaction can run for a maximum of 5 minutes. If this maximum is
reached, the operation ends, and the sign out continues. During the next sign out, the
operation will resume from the previous state.
Winlogon events
VHD Disk Compaction operates at user sign out, which is part of the Winlogon process.
The Winlogon process creates a warning event anytime a process causes the sign out
time to exceed 60 seconds. These warnings are normal and expected. The compaction
process could exceed 60 seconds depending on the size of the VHD(x) and the space to
be recovered. The Winlogon threshold is a fixed value and can't be changed.
See Winlogon (sign out) Delay Warnings for a Log Analytics query to show the number
of operations that exceed the 60-second threshold and their durations.
Next steps
Troubleshooting VHD Disk Compaction
Terms and acronyms used in FSLogix may not always be easy to understand or decipher.
The terminology page helps clarify terms and / or acronyms used within our
documentation and product.
Back port The process of taking new product changes or bug fixes and
integrating into previous versions. FSLogix doesn't back port any
changes or fixes to previous versions. All changes are only
available in future releases.
BCDR Business continuity and disaster recovery are concepts that aim to DR
ensure a particular service or resource is continually available
during disaster.
BSOD Refers to a Windows fatal error or system crash. The term stands Crash, System
for "blue screen of death" due to the error screen during these Crash
fatal errors was blue and required a full system restart.
Container The virtual hard disk (VHD / VHDX) file, which contains all the Disk
data for the given type of container.
Differencing Refers to the intermediate VHD used to track changes to the base
disk disk. Differencing disks are merged into base disks.
ODFC A type of container that holds only data and settings for Office
Microsoft 365 products. ODFC data includes, but isn't limited to
Outlook, Teams, OneDrive (Personal or Business), and Sharepoint.
Profile A type of container that holds the data and settings for users
signed into a Windows based system.
Term Definition Other Names
SMB Stands for "Server Message Block." SMB is a network protocol CIFS
used by Windows-based computers that allows systems within
the same network to share files. An SMB file share is written
using \\<server-name>.contoso.com\<share-name> .
FSLogix profile containers store a complete user profile in a single container and are
designed to roam profiles in non-persistent remote computing environments like Azure
Virtual Desktop. When you sign in, the container dynamically attaches to the computing
environment using a locally supported virtual hard disk (VHD) and Hyper-V virtual hard
disk (VHDX). These advanced filter-driver technologies allow the user profile to be
immediately available and appear in the system exactly like a local user profile. To learn
more about FSLogix profile containers, see User profile management with FSLogix
profile containers.
You can create FSLogix profile containers using Azure NetApp Files , an easy-to-use
Azure native platform service that helps customers quickly and reliably provision
enterprise-grade SMB volumes for their Azure Virtual Desktop environments. To learn
more about Azure NetApp Files, see What is Azure NetApp Files?.
7 Note
This article doesn't cover best practices for securing access to the Azure NetApp
Files share.
7 Note
If you're looking for comparison material about the different FSLogix Profile
Container storage options on Azure, see Storage options for FSLogix profile
containers.
Considerations
To optimize performance and scalability, the number of concurrent users accessing
FSLogix profile containers stored on a single Azure NetApp Files regular volume
should be limited to 3,000. Having more than 3,000 concurrent users on a single
volume causes significant increased latency on the volume. If your scenario
requires more than 3,000 concurrent users, divide users across multiple regular
volumes or use a large volume. A single large volume can store FSLogix profiles for
up to 50,000 concurrent users. For more information on large volumes, see
Requirements and considerations for large volumes.
FSLogix profile containers on Azure NetApp Files can only be accessed by users
authenticating from Active Directory Domain Services (AD DS) or Microsoft Entra
Domain Services. Azure NetApp files does not support Entra joined, Entra hybrid
joined devices or Entra and Entra hybrid identities.
To protect your FSLogix profile containers, consider using Azure NetApp Files
snapshots and Azure NetApp Files backup.
Prerequisites
Before you can configure an FSLogix profile container with Azure NetApp Files, you
must have:
2. You need to create a new capacity pool. See Create a capacity pool for Azure
NetApp Files.
3. You then need to join an Active Directory connection. See Create and manage
Active Directory connections for Azure NetApp Files.
4. Create a new SMB volume. Follow the steps in Create an SMB volume for Azure
NetApp Files.
7 Note
It's recommended that you enable Continuous Availability on the SMB volume
for use with FSLogix profile containers, so select Enable Continuous
Availability. For more information, see Enable Continuous Availability on
existing SMB volumes.
Configure permissions
When configuring the directory and file-level permissions, review the recommended list
of permissions for FSLogix profiles at Configure the storage permissions for profile
containers.
Without proper directory-level permissions in place, a user can delete the user profile or
access the personal information of a different user. It's important to make sure users
have proper permissions to prevent accidental deletion from happening.
7 Note
When adding the VHDLocations registry key, set the data type to Multi-
String and set its data value to the URI for the Azure NetApp Files share.
Be careful when creating the DeleteLocalProfileWhenVHDShouldApply
value. When the FSLogix Profiles system determines a user should have
an FSLogix profile, but a local profile already exists, Profile Container will
permanently delete the local profile. The user will then be signed in with
the new FSLogix profile.
2. Open Azure NetApp Files, select your Azure NetApp Files account, and then select
Volumes. Once the Volumes menu opens, select the corresponding volume.
3. Go to the Overview tab and confirm that the FSLogix profile container is using
space.
4. Open the File Explorer, then navigate to the Mount path. Within this folder, there
should be a profile VHD (or VHDX).
Feedback
Was this page helpful? Yes No
In this article, you'll learn how to create and configure an Azure Files share for Microsoft
Entra Kerberos authentication. This configuration allows you to store FSLogix profiles
that can be accessed by hybrid user identities from Microsoft Entra joined or Microsoft
Entra hybrid joined session hosts without requiring network line-of-sight to domain
controllers. Microsoft Entra Kerberos enables Microsoft Entra ID to issue the necessary
Kerberos tickets to access the file share with the industry-standard SMB protocol.
This feature is supported in the Azure cloud, Azure for US Government, and Azure
operated by 21Vianet.
Prerequisites
Before deploying this solution, verify that your environment meets the requirements to
configure Azure Files with Microsoft Entra Kerberos authentication.
When used for FSLogix profiles in Azure Virtual Desktop, the session hosts don't need to
have network line-of-sight to the domain controller (DC). However, a system with
network line-of-sight to the DC is required to configure the permissions on the Azure
Files share.
7 Note
Your Azure Storage account can't authenticate with both Microsoft Entra ID
and a second method like Active Directory Domain Services (AD DS) or
Microsoft Entra Domain Services. You can only use one authentication
method.
2. Create an Azure Files share under your storage account to store your FSLogix
profiles if you haven't already.
1. Enable the Microsoft Entra Kerberos functionality using one of the following
methods.
Configure this Intune Policy CSP and apply it to the session host:
Kerberos/CloudKerberosTicketRetrievalEnabled.
7 Note
Enable this Group policy on your device. The path will be one of the
following, depending on the version of Windows you use:
CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 1
2. When you use Microsoft Entra ID with a roaming profile solution like FSLogix, the
credential keys in Credential Manager must belong to the profile that's currently
loading. This lets you load your profile on many different VMs instead of being
limited to just one. To enable this setting, create a new registry value by running
the following command:
7 Note
The session hosts don't need network line-of-sight to the domain controller.
To configure FSLogix:
7 Note
If you're configuring a session host created using the Azure Virtual Desktop
service, FSLogix should already be pre-installed.
2. Follow the instructions in Configure profile container registry settings to create the
Enabled and VHDLocations registry values. Set the value of VHDLocations to \\
<Storage-account-name>.file.core.windows.net\<file-share-name> .
If the user has signed in before, they'll have an existing local profile that the service will
use during this session. To avoid creating a local profile, either create a new user
account to use for tests or use the configuration methods described in Tutorial:
Configure profile container to redirect user profiles to enable the
DeleteLocalProfileWhenVHDShouldApply setting.
Finally, verify the profile created in Azure Files after the user has successfully signed in:
3. Select the storage account you configured for your session host pool.
6. If everything's set up correctly, you should see a directory with a name that's
formatted like this: <user SID>_<username> .
Next steps
To troubleshoot FSLogix, see this troubleshooting guide.
Feedback
Was this page helpful? Yes No
This article shows you how to set up a FSLogix profile container with Azure Files when
your session host virtual machines (VMs) are joined to an Active Directory Domain
Services (AD DS) domain or Microsoft Entra Domain Services managed domain.
Prerequisites
To configure a profile container, you need the following:
A host pool where the session hosts are joined to an AD DS domain or Microsoft
Entra Domain Services managed domain and users are assigned.
A security group in your domain that contains the users who will use the profile
container. If you're using AD DS, this must be synchronized to Microsoft Entra ID.
Permission on your Azure subscription to create a storage account and add role
assignments.
A domain account to join computers to the domain and open an elevated
PowerShell prompt.
The subscription ID of your Azure subscription where your storage account will be.
A computer joined to your domain for installing and running PowerShell modules
that will join a storage account to your domain. This device needs to be running a
Supported version of Windows. Alternatively, you can use a session host.
) Important
If users have previously signed in to the session hosts you want to use, local
profiles will have been created for them and must be deleted first by an
administrator for their profile to be stored in a profile container.
Tip
Whether you should select Premium depends on your IOPS and latency
requirements. For more information, see Container storage options.
On the Advanced tab, Enable storage account key access must be left
enabled.
For more information on the remaining configuration options, see Plan
for an Azure Files deployment.
2. Create an Azure Files share under your storage account to store your FSLogix
profiles if you haven't already.
AD DS
2. Download and extract the latest version of AzFilesHybrid from the Azure
Files samples GitHub repo. Make a note of the folder you extract the files to.
3. Open an elevated PowerShell prompt and change to the directory where you
extracted the files.
4. Run the following command to add the AzFilesHybrid module to your user's
PowerShell modules directory:
PowerShell
.\CopyToPSPath.ps1
5. Import the AzFilesHybrid module by running the following command:
PowerShell
) Important
This module requires the PowerShell Gallery and Azure PowerShell. You
may be prompted to install these if they are not already installed or they
need updating. If you are prompted for these, install them, then close all
instances of PowerShell. Re-open an elevated PowerShell prompt and
import the AzFilesHybrid module again before continuing.
PowerShell
Connect-AzAccount
Tip
7. Join the storage account to your domain by running the commands below,
replacing the values for $subscriptionId , $resourceGroupName , and
$storageAccountName with your values. You can also add the parameter -
PowerShell
$subscriptionId = "subscription-id"
$resourceGroupName = "resource-group-name"
$storageAccountName = "storage-account-name"
Join-AzStorageAccount `
-ResourceGroupName $ResourceGroupName `
-StorageAccountName $StorageAccountName `
-DomainAccountType "ComputerAccount"
8. To verify the storage account is joined to your domain, run the commands
below and review the output, replacing the values for $resourceGroupName and
$storageAccountName with your values:
PowerShell
$resourceGroupName = "resource-group-name"
$storageAccountName = "storage-account-name"
) Important
If your domain enforces password expiration, you must update the password
before it expires to prevent authentication failures when accessing Azure file
shares. For more information, see Update the password of your storage
account identity in AD DS for details.
1. From the Azure portal, browse to the storage account, then to the file share you
created previously.
3. Select + Add, then select Add role assignment from the drop-down menu.
4. Select the role Storage File Data SMB Share Contributor and select Next.
5. On the Members tab, select User, group, or service principal, then select +Select
members. In the search bar, search for and select the security group that contains
the users who will use the profile container.
1. From the Azure portal, search for and select storage account in the search bar.
2. From the list of storage accounts, select the account that you enabled Active
Directory Domain Services or Microsoft Entra Domain Services as the identity
source and assigned the RBAC role for in the previous sections.
3. Under Security + networking, select Access keys, then show and copy the key
from key1.
2. Open an elevated PowerShell prompt and run the command below to map the
storage account as a drive on your session host. The mapped drive won't show in
File Explorer, but can be viewed with the net use command. This is so you can set
permissions on the share.
For example:
3. Run the following commands to set permissions on the share that allow your
Azure Virtual Desktop users to create their own profile while blocking access to the
profiles of other users. You should use an Active Directory security group that
contains the users you want to use the profile container. In the commands below,
replace <mounted-drive-letter> with the letter of the drive you used to map the
drive and <DOMAIN\GroupName> with the domain and sAMAccountName of the
Active Directory group that will require access to the share. You can also specify
the user principal name (UPN) of a user.
For example:
To configure profile containers, we recommend you use Group Policy Preferences to set
registry keys and values at scale across all your session hosts. You can also set these in
your custom image.
1. If you need to install or update FSLogix Apps, download the latest version of
FSLogix and install it by running FSLogixAppsSetup.exe , then following the
instructions in the setup wizard. For more details about the installation process,
including customizations and unattended installation, see Download and Install
FSLogix.
2. Open an elevated PowerShell prompt and run the following commands, replacing
\\<storage-account-name>.file.core.windows.net\<share-name> with the UNC path
to your storage account you created earlier. These commands enable the profile
container and configure the location of the share.
PowerShell
$regPath = "HKLM:\SOFTWARE\FSLogix\profiles"
New-ItemProperty -Path $regPath -Name Enabled -PropertyType DWORD -
Value 1 -Force
New-ItemProperty -Path $regPath -Name VHDLocations -PropertyType
MultiString -Value \\<storage-account-name>.file.core.windows.net\
<share-name> -Force
3. Restart your device. You'll need to repeat these steps for any remaining devices.
You have now finished the setting up your profile container. If you're installing the
profile container in your custom image, you'll need to finish creating the custom image.
For more information, follow the steps in Create a custom image in Azure from the
section Take the final snapshot onwards.
If the user has signed in before, they'll have an existing local profile that they'll use
during this session. Either delete the local profile first, or create a new user account to
use for tests.
Users can check that the profile container is set up by following the steps below:
2. When the user signs in, the message "Please wait for the FSLogix Apps Services"
should appear as part of the sign-in process, before reaching the desktop.
Administrators can check the profile folder has been created by following the steps
below:
4. Open your file share and make sure the user profile folder you've created is in
there.
Feedback
Was this page helpful? Yes No
This article describes how to download and install FSLogix Apps (Core Product), Rule
Editor, and Java Rule Editor.
7 Note
All FSLogix installations use the same steps regardless if it's a new or upgrade
install.
Prerequisites
" Review: FSLogix prerequisites.
" Review: Installation FAQ.
" Review: Release Notes.
Download FSLogix
7 Note
FSLogix can be downloaded via direct download or through the Microsoft Download
Center.
Direct download
For customers who integrate the download and installation of FSLogix as part of an
automated build routine, the latest version of FSLogix can be obtained here .
4. Double-click on Release.
5. Double-click on FSLogixAppsSetup.exe.
7 Note
7 Note
/norestart Suppresses any attempts to restart. By default the UI prompts before restart
/log log.txt Logs installation to a specific path and file. Default log is in %TEMP%.
It doesn't matter how FSLogix was installed, verifying the install and version is a valuable
step before configuration.
Tip
The most recent release can be found on our release notes page.
Installed Apps
1. Sign in to the virtual machine as a local Administrator or an account with
administrative privileges.
2. Select Start and Type command prompt directly into the Start Menu.
Next steps
Configuration options
Configuration examples
FSLogix provides Group Policy administrative template files in the form of .admx and
language-specific .adml files. These files can be used within the Local Group Policy
Editor and the Group Policy Management Editor. The Local Group Policy Editor is used
to edit Local Group Policy Objects (LGPOs). The Group Policy Management Editor, which
is available from within the Group Policy Management Console (GPMC), can be used to
edit domain-based policy objects.
Prerequisites
" Download FSLogix.
" Extract the compressed archive.
" Explore the extracted contents.
Locate the two files (fslogix.admx and fslogix.adml) and copy them to a location based
on a local or central store configuration.
1. Updated the folders, removed references to Office 365 and advanced settings.
2. Policy names match the corresponding registry value name.
3. Explanation text provides more detail.
ノ Expand table
(fslogix.admx)
4. Review and enable desired settings, then save the policy object.
7 Note
These settings are applied only on the local machine and will not be applied
to other Virtual Machines.
ノ Expand table
ADMX %systemroot%\sysvol\domain\policies\PolicyDefinitions
language
neutral
(fslogix.admx)
7 Note
The Domain Controller file locations for the table assume you are logged onto one
of the Domain Controllers for your domain.
For more information, see How to create and manage the Central Store for Group Policy
Administrative Templates in Windows.
7 Note
You must have the appropriate permissions to be able to perform these actions.
1. Sign into a computer or virtual machine that is part of your Active Directory
domain.
2. If using a Windows client OS, add the Group Policy Management Tools:
Open the Settings app > System > Optional features > Add feature (if on a
version older than Windows 10 22H2, navigate to Settings > Apps > Apps &
features > Optional features > Add feature instead).
4. Locate your Organizational Unit (OU) where the computer accounts are located,
then from the context menu select Create a GPO in this domain, and Link it
here....
7. Expand Computer configuration > Policies > Administrative Templates > FSLogix
and enable the desired settings for your configuration.
7 Note
Under parent FSLogix folder, there are dedicated sections for Cloud Cache,
Office 365 Container, and Profile Container.
8. For each setting, double-click on it, enable and eventually fill in required values
and select OK to save and exit the dialog:
Figure 6: Enable GPO setting for FSLogix
9. At next GPO refresh cycle, the virtual machines will receive these new policy
settings, and will apply to the local machine registry configuration.
10. You can connect locally to the machine and execute the following command to
force the policy refresh: GPUPDATE /Target:Computer /force .
) Important
FSLogix works with SMB storage systems to store Profile or ODFC containers. SMB
storage is used in standard configurations where VHDLocations holds the UNC path to
the storage locations. SMB storage providers can also be used in Cloud Cache
configurations where CCDLocations is used instead of VHDLocations.
SMB storage permissions rely on traditional NTFS Access Control Lists (ACL) applied at
file or folder levels to ensure the proper security of the data that is stored. When used
with Azure Files, you must enable an Active Directory (AD) source, then assign share-
level permissions to the resource. There are two ways you can assign share-level
permissions. You can assign them to specific Entra ID users/groups, and you can assign
them to all authenticated identities as a default share-level permission.
) Important
You must understand the processes required to use Azure Files or Azure NetApp
Files for SMB storage in your environment.
Azure Files
The outline provides the initial concepts necessary when using Azure Files as your SMB
Storage provider. Regardless of the Active Directory configuration selected, it's
recommended to configure the default share-level permission using Storage File Data
SMB Share Contributor, which is assigned to all authenticated identities. To be able to
set the Windows ACL(s), ensure you assign share-level permissions for specific Entra ID
users or groups with the Storage File Data SMB Share Elevated Contributor role and
reviewed Configure directory and file-level permissions over SMB.
Any SMB file share has a default set of ACL(s). These examples are the three (3) most
common types of SMB file shares and their default ACL(s).
ノ Expand table
File Server ACL(s) Azure Files Share ACL(s) Azure NetApp Files ACL(s)
) Important
Applying ACL(s) to Azure File Shares may require one (1) of two (2) methods:
1. Provide a user or group with Storage File Data SMB Share Elevated
Contributor role at the Storage Account or File Share Access Control (IAM).
2. Mount the file share using the Storage Account key.
Because there are access checks at two levels (the share level and the file/directory
level), applying ACL(s) is restricted. Only users who have the Storage File Data SMB
Share Elevated Contributor role can assign permissions on the file share root or
other files or directories without using the storage account key. All other
file/directory permission assignment requires connecting to the share using the
storage account key first.
Recommended ACL(s)
The table outlines the recommended ACL(s) to be configured.
ノ Expand table
CREATOR OWNER Modify Subfolders and Ensures the profile directory created by
(Read / files only the user has the correct permissions only
Write) for that user.
CONTOSO\Domain Modify This folder only Enables authorized users to create their
Users (Read / profile directory. Replace with
Write) organizational users who need access to
create profiles.
7 Note
Remember to replace the placeholder values in the example with your own values.
Console
For more information on how to use icacls to set Windows ACL(s) and on the different
types of supported permissions, see the command-line reference for icacls.
2. Right-click in the open area on the right pane and select Properties.
4. Select Advanced.
7 Note
6. Select Add.
6. Replace O:BAG with O:%sid% (Sets the user's SID as the folder owner).
9. When user's sign-in for the first time, their directory is created with these
permissions.
Protect Azure page blob connection
string
Article • 03/31/2023
Azure page blobs are used in a Cloud Cache configuration for profile or ODFC
containers. Cloud Cache connects to the blob using the HTTPS protocol over REST API.
This connection requires the storage accounts access key formatted into a connection
string. With this connection string, the entire storage account can be accessed.
Knowledge of this information exposes a security risk that must be considered.
Prerequisites
" Create an Azure page blob storage account.
" Install and import Azure PowerShell modules.
" Download and install the latest version of FSLogix.
" Review: frx command-line utility reference
Azure PowerShell
Connect-AzAccount
5. Change to your Azure context to your subscription containing the storage account.
Azure PowerShell
Azure PowerShell
$ResourceGroupName = "<resource-group-name>"
$StorageAccountName = "<storage-account-name>"
$StorageAccount = Get-AzStorageAccount -ResourceGroupName
$ResourceGroupName -Name $StorageAccountName
$ConnectionString = $StorageAccount.Context.ConnectionString
2. Use the frx command add-secure-key to add the connection string to Credential
Manager.
PowerShell
PowerShell
type=azure,name=<optional-name>,connectionString="|fslogix/<key-name>|"
2. Use the frx command del-secure-key to delete the secure key from Credential
Manager.
PowerShell
PowerShell
Configuration settings for profile containers and ODFC containers are applied at the
computer or virtual machine level. These system-wide settings can be overridden using
the object specific settings that apply to individual users or groups. Using object specific
settings allows an organization to have a baseline configuration while providing a more
unique or granular setting for a specific user or group.
Setting prioritization:
7 Note
Object specific settings can't be configured using Group Policy template files.
Object specific settings don't support Microsoft Entra ID (cloud-only
identities).
2. Select Start.
PowerShell
$DomainName = "%domainname%"
$Username = "%username%"
$UserObject = New-Object
System.Security.Principal.NTAccount($DomainName,$Username)
$UserObject.Translate([System.Security.Principal.SecurityIdentifier]).V
alue
6. Replace the values for $DomainName and $Username with your own values.
7. Select Start.
11. Press Enter to see the SID for the user or group.
7 Note
This is one example for an object specific configuration. Any of the settings for
profiles or ODFC can be created under an object specific configuration.
Using an object specific VHDLocations setting allows specific users or groups to create
and mount their profiles from various SMB file shares.
1. Sign in to the virtual machine as the local Administrator account or an account
that is a member of the local Administrators group.
4. Go to:
8. Type or paste the SID from step 11 in Use PowerShell to translate user or group
names to security identifiers (SID).
Example:
Per-device licensing helps administrators manage their Rule Sets to be compliant with
product license agreements.
7 Note
Prerequisites
Review: FSLogix Prerequisites.
Install: FSLogix Apps and Apps RuleEditor.
The per-device licensing features are effective only after this step is complete.
Editing Rule Assignments for Devices
Per-device licensing is built with a more generic function that allows rules to be created
based on environment variables. Rules can be created based on any environment
variable at sign in. Devices are identified using the environment variable CLIENTNAME that
is set when a user signs in.
7 Note
FSLogix does not create or manage environment variables and relies on other
systems or processes.
3. Select Add .
Optionally, you can select the From File button and select a text file containing a list of
device names, one item per line. A rule assignment is created for each device name from
the file.
Making the rule assignment sets Applies = No by default, indicates that a license has
been assigned.
7 Note
The logical on/off for a license being assigned is reversed from the logic of the
application rule set. Applies = No indicates the rule doesn't apply to that device,
the software is visible to the user, and a license is assigned.
If you attempt to set the assignment to Applies = Yes or to delete the assignment, and if
it has been set to Applies=No for less than the minimum number of days for license
assignment, then a warning dialog box appears. You can still delete the rule assignment,
but the warning indicates that you may be doing something that violates your license
agreements.
Licensing Reports
A report can be generated to show the historical license assignments by selecting File
then Licensing Report.
FSLogix product support
Article • 08/22/2023
This page covers FSLogix support eligibility, support boundaries, and the three (3)
methods for engaging with Microsoft Support.
Prerequisites
" Review: FSLogix feature deprecation
Support eligibility
FSLogix is part of the Microsoft modern lifecycle policy. FSLogix is continuously updated
and requires customers to remain up to date on the latest release to be under support.
Customers who have issues with previous versions of FSLogix are required to upgrade.
FSLogix doesn't provide updates or changes to previous versions (back porting). Issues
discovered through support cases or other means will be addressed in future feature or
hotfix releases.
Support for FSLogix and its products is limited to customers who meet the product
eligibility requirements. Additionally, FSLogix is only supported on the following versions
of Windows and is also subject to the products extended end date of supportability.
7 Note
32-bit architecture has been deprecated as of August 22, 2023. Please review the
feature deprecation page for additional information.
32-bit
64-bit
7 Note
Support for Windows Server 2012 R2 has been deprecated as of August 22, 2023.
Please review the feature deprecation page for additional information.
Support boundaries
If the source of an issue can't be identified in the logs captured by the FSLogix
Support Tool, from a memory dump, or the trace ETL files, then Microsoft support
requires instructions to reproduce the issue from a clean installation of Windows.
FSLogix tracks emerging issues with third-party products that are suspected to
cause compatibility issues and until the issues can be reproduced, these issues
won't be resolved from product updates.
FSLogix technical support assists with break fix issues and will provide deployment
and configuration advice as 'best effort'.
) Important
Microsoft Consulting Services or Microsoft Partner assistance should be
considered under these conditions:
Project management
Large-scale deployments
Profile migrations
Complex configurations
Azure portal
Customers who use FSLogix in the context of Azure (for example, Azure Virtual Desktop,
Infrastructure as a Service, etc.) can create a support request via the portal under the
Help + Support section.
When prompted, ensure you've selected the correct items from the drop-down lists:
Services Hub
Customers who use FSLogix in an on-premises scenario can open their support request
using Services Hub. Depending on your support agreement with Microsoft (for example,
Premier or Unified Support), there are two (2) options:
Unified Support
Services Hub for Unified Support
Phone support
Global Customer Service phone numbers
Feedback
Was this page helpful? Yes No
1 Windows Server 2019 version 1809 and later, Windows 10 and 11 multi-session
7 Note
There are no override settings to enable the FSLogix search roaming when it's
automatically disabled through Windows version detection.
Prerequisites
To use FSLogix search roaming functionality, you must be using one of the following
versions of Windows:
7 Note
2. Select Start.
3. Type registry editor directly into the Start Menu.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search:
"EnablePerUserCatalog"=dword:00000001
Profile container:
HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles:
"RoamSearch"=dword:00000001
ODFC container:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\FSLogix\ODFC:
"RoamSearch"=dword:00000001
2 Warning
If both the profile container and ODFC container are configured, the
search database will be placed in the profile container.
Don't configure RoamSearch in both profile and ODFC containers.
7 Note
2. Select Start.
11. From the 'Select features' window, scroll the feature list and Select Windows Search
Service.
Profile container:
HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles:
"RoamSearch"=dword:00000002
HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Apps: "RoamSearch"=dword:00000002
ODFC container:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\FSLogix\ODFC:
"RoamSearch"=dword:00000002
HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Apps: "RoamSearch"=dword:00000002
2 Warning
If both the profile container and ODFC container are enabled, the search
database will be placed in the profile container.
Don't configure RoamSearch in both profile and ODFC containers.
) Important
Java Rule sets have been deprecated as of August 22, 2023. Please review the
feature deprecation page for additional information.
Java Version Control allows specific websites and URLs to be assigned to a specific
installed version of Java. You can create Rule Sets to configure an application or URL to
use a specific version of Java. Rules are deployed using the same process as the FSLogix
Apps Rule Editor.
Prerequisites
Download and install:
FSLogix Apps (Core Product).
FSLogix Apps Java Rule Editor.
Internet Explorer (IE) 8 and later is supported.
Applications must run in Internet Explorer (IE) 7 or later.
Java 1.6.0_10 or later is supported.
Java 1.4.2 and later is supported for redirection.
Microsoft Edge or Chromium-based browsers aren't supported.
) Important
FSLogix will only support Java Version Control on supported versions of Internet
Explorer (IE).
7 Note
If rules are changed, restart the Internet Explorer instances for the modified to
rules.
Issue: ActiveX blocking feature of IE may cause applets to stop responding when
using Java Version Control. Add the domain containing the applet URL to the
Trusted Sites list in Internet Explorer as a workaround.
Create a new Application Rule Set
1. Open the Java Rule Editor.
7. Two (2) files are created, one (1) Rule Set file (.fxr) and one (1) Assignment file
(.fxa).
8. Deploy the files, see Deploying Rule Sets and Assignment Files.
5. Specify the version of Java to use from the drop-down (for example, 1.6.0_45).
9. Deploy the file, see Deploying Rule Sets and Assignment Files.
7 Note
If the latest version of Java is selected in the Java Version Field, The Java
Version control and associated features are effectively disabled for the given
URL.
The selected Java version must be installed on the client computer or the rule
will not work. Multiple versions of Java can be installed side-by-side. Major
Java versions will not conflict with each other, as each installs to a unique
directory. However, Java versions that are the same major version but
different minor versions install into the same directory by default. You can
simply change the path during the installation to avoid this problem.
In almost all cases the 32-bit versions of Java should be used. Typically only if
there are specific instructions to use 64-bit Java should it be tested before the
32-bit versions.
Application Rule Set Issues
Article • 03/31/2023
) Important
Application Rule Sets require extensive knowledge of applications, file system, and
registry hives. FSLogix attempts to scan or discover an application and its
dependencies. Deep knowledge about where applications are installed and how
they're presented as part of Windows is required.
7 Note
1. Use any method to copy rule and assignment files to the rules directory
( %PROGRAMFILES%\FSLogix\Apps\Rules ).
2. Confirm the folder %PROGRAMFILES%\FSLogix\Apps\CompiledRules contains the
compiled rule (.fxc) and assignment (.fxac) files.
4. Verify the group used for the assignment is listed in the output.
FSLogix 2210 (2.9.8361.52326) and later versions provide new functionality to provide
better compatibility with Windows inbox applications. Inbox applications refer to
applications that are built in and ship preinstalled to Windows. Custom, 3rd party, or
Microsoft store applications are not considered inbox applications.
7 Note
2. Select Start and Type powershell directly into the Start Menu.
3. Select Run as Administrator under Windows PowerShell from the right-side Start
Menu.
Figure 1: PowerShell run as administrator from Start Menu
4. Copy the PowerShell code and Paste it into the PowerShell window.
PowerShell
$AllUserInboxAppsKey =
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserS
tore\InboxApplications"
$AllUserApps = Get-ChildItem -Path $AllUserInboxAppsKey
ForEach($Key in $AllUserApps) {
Add-AppxPackage -DisableDevelopmentMode -Register (Get-
ItemProperty -Path $Key.PsPath).Path
}
$AllUserAppsKey =
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserS
tore\Applications"
$AllUserApps = Get-ChildItem -Path $AllUserAppsKey
ForEach($Key in $AllUserApps) {
Add-AppxPackage -DisableDevelopmentMode -Register (Get-
ItemProperty -Path $Key.PsPath).Path
}
7 Note
AppData\Local\Packages\*\SystemAppData
AppData\Local\Packages\*\LocalCache
AppData\Local\Packages\*\TempState
AppData\Local\Packages\*\AppData
) Important
Storage permissions
Permissions to the storage provider are common issues. Verify the user can has read and
write access to the SMB file share configured in VHDLocations through browsing to the
location and trying to create a folder or file. If the user CAN access the path in
VHDLocations , but can't read or write to the SMB file share then review our how to guide
for configuring storage permissions. If the user can't access the path in VHDLocations ,
then it could a network or DNS related issue.
Container size
In some cases, the user's container has reached the maximum size and without enough
free space, the container fails to attach.
7 Note
Increasing the SizeInMBs value will affect all users with dynamic disks where
configured.
2 Warning
Deleting the wrong data from the user's container may lead to data loss or profile
corruption.
FSLogix under most configurations relies on using SMB as the primary protocol for
communicating with storage providers. In a Cloud Cache configuration, FSLogix can use
HTTPS when connecting to Azure page blobs.
Additionally, review our recommended list of exclusions to ensure there are no conflicts.
1. Select Start and Type powershell directly into the Start Menu.
-CommonTCPPort SMB
Users can't create new containers and end up with a temporary or local profile.
Current user session becomes hung or unresponsive.
Users fail to mount or correctly detach containers during sign in or sign out.
Solution
Increase the capacity of the remote storage provider.
FSLogix shell ( frxshell.exe ). FSLogix maintains an exclusive lock on the user's container
while they're connected to a virtual machine and concurrent connections is disabled.
Concurrent access is supported and you should review the concept article, here.
Recommendation
Recommendations
Review: Configure Antivirus file and folder exclusions
Recommendations
Review: Custom profile redirections.xml
Tutorial: Create and implement redirections.xml
Keep your redirections.xml file simple.
Troubleshooting issues with container
locked or in use
Article • 03/31/2023
Recommendations
There could be an operational issue in the environment. Prioritize any
environmental or system issues that help solve the root cause versus the symptom.
Setting: Enable CleanupInvalidSessions
FSLogix shell ( frxshell.exe ). FSLogix maintains an exclusive lock on the user's container
while they're connected to a virtual machine and concurrent connections is disabled.
Concurrent or multiple connections are supported in some configurations.
Recommendation
Review: Concurrent or multiple connections to a single container
Troubleshooting issues with container
size or low disk space
Article • 12/05/2023
Recommendation
Review: VHD Disk Compaction
7 Note
Increasing the SizeInMBs value will affect all users with dynamic disks where
configured.
2 Warning
Deleting the wrong data from the user's container could lead to data loss or profile
corruption.
Recommendation
2 Warning
Recommendations
FSLogix doesn't have tools or features to remove this data from the container.
U Caution
Deleting a profile or content from a container may lead to unexpected data loss.
Service crash
Having the frxsvc or frxccds service crash can cause issues for users during sign in and
during their sessions. FSLogix hotfix updates are the primary way we release fixes and
changes that affect issues related to service crashes.
Recommendations
Always upgrade to the latest version of FSLogix and review the release notes.
Open a support request to report the issue and have the crash analyzed.
Recommendations
Review: Configure Antivirus file and folder exclusions
Troubleshooting issues with Group
Policy processing
Article • 03/31/2023
Solution
Upgrade to the latest version of FSLogix and review the release notes.
Solution
Resolve communication issues between the virtual machine and the AD domain
controller(s).
C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\TerminalServer.admx
C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\terminalserver-
server.admx
C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\
[MUICulture]\TerminalServer.adml
C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\
[MUICulture]\terminalserver-server.adml
Troubleshooting issues with hung
sessions
Article • 03/31/2023
1. Select Start and Type powershell directly into the Start Menu.
-CommonTCPPort SMB
Installation
Is FSLogix integrated into all Windows operating
systems?
FSLogix isn't a Windows feature and must be installed separately. FSLogix can be found
in the Azure Marketplace for Windows 10 and Windows 11 multi-session images. While
we aim for this version of FSLogix to be 'up-to-date', customers should verify which
version is installed. If necessary, upgrade to the latest version.
Console
[18:09:59.554][tid:00000f94.000040cc][INFO] Mirroring
C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive to \\?
\Volume{7f7bafd1-fb6a-4f15-878d-3c2acf351e2e}\OneDrive\UserMeta
[18:09:59.554][tid:00000f94.000040cc][INFO] CopyFolderToVolume:
Source: C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive
Destination: OneDrive\UserMeta Volume: \\?\Volume{7f7bafd1-fb6a-4f15-878d-
3c2acf351e2e}\
[18:09:59.554][tid:00000f94.000040cc][INFO] Creating mount point:
C:\Windows\TEMP\FrxMount{5512FFFF-42DD-40B9-AE76-76B3CA567E4A} -> \\?
\Volume{7f7bafd1-fb6a-4f15-878d-3c2acf351e2e}\
[18:09:59.554][tid:00000f94.000040cc][INFO] Success creating
mount point. Mirroring files...
[18:09:59.569][tid:00000f94.000040cc][INFO] Copying directory:
Source: C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive
Destination: C:\Windows\TEMP\FrxMount{5512FFFF-42DD-40B9-AE76-
76B3CA567E4A}\OneDrive\UserMeta
[18:09:59.569][tid:00000f94.000040cc][INFO] Copying directory:
C:\Windows\system32\robocopy.exe
"C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive"
"C:\Windows\TEMP\FrxMount{5512FFFF-42DD-40B9-AE76-
76B3CA567E4A}\OneDrive\UserMeta" /MT /R:5 /W:1 /XJD /COPYALL /IT /B
/DCOPY:DAT /MIR
[18:09:59.569][tid:00000f94.000040cc][INFO] CreateProcess
successful
[18:09:59.569][tid:00000f94.000040cc][INFO] Enabling cloud files
pass-through
[18:09:59.569][tid:00000f94.000040cc][INFO] Waiting for process
to end
[18:10:00.460][tid:00000f94.000040cc][INFO] Robocopy exit code: 1
(Success)
[18:10:00.616][tid:00000f94.000040cc][INFO] Success mirroring
files
[18:10:00.616][tid:00000f94.000040cc][INFO] Volume mount point
removed
[18:10:00.616][tid:00000f94.000040cc][INFO] Mirror complete
Microsoft Entra ID
Can I use FSLogix containers with Microsoft
Entra ID and cloud-only identities?
Yes...BUT, it requires understanding of the risks. There are two (2) ways we've identified
how to configure FSLogix for Microsoft Entra ID and cloud-only identities. Check out the
FSLogix profile containers for Microsoft Entra ID cloud only identities blog article.
Redirects or redirections.xml
What are the recommended values for the
redirections.xml file?
FSLogix doesn't provide recommended values for the redirections.xml file. The
redirections.xml file is a powerful tool to help you manage the user's profile AND may
cause problems if not used correctly. We rely on application owners to document what
data can or can't be excluded from users profile container.
For example:
Tip
Don't exclude user profile data for applications unless the application owner has
documented the data can be excluded.
Cloud Cache
Do I need to use Cloud Cache for high
availability?
No. It can be an acceptable solution to use standard containers (VHDLocations) with a
highly available storage provider. Azure Files provides high availability through zone-
redundant storage (ZRS) and is a recommended storage provider.
Recommendations
Review your network topology and latency to all configured storage providers
Upgrade your storage provider to a higher performing tier
Disable VHDCompactDisk
Don't use ProfileType = 3 or VHDAccessMode = 1, 2, or 3
Don't use CcdMaxCacheSizeInMBs
Feedback
Was this page helpful? Yes No
) Important
Cloud Cache places an even greater performance load on the virtual machine. Size
your virtual machines appropriately, starting with a 2:1 ratio (vCPU to user).
Recommendations
Review and understand the user density and workload placed on your virtual
machines.
Reduce the number of simultaneous sessions per virtual machine.
Increase the virtual machine family or size based on user workloads.
Container size
In some cases, the user's container has reached the maximum size and without enough
free space, the container fails to attach.
7 Note
Increasing the SizeInMBs value will affect all users with dynamic disks where
configured.
Verify the container size on disk
1. Check the SizeInMBs setting on the virtual machine.
2. Locate the user's container on the SMB file share.
3. Right-click the VHD(x) file and Select Properties.
4. Compare the Size on disk value with the value from SizeInMBs from the
configuration settings.
5. The container must have more than 200 MB to attach successfully.
2 Warning
Deleting the wrong data from the user's container could lead to data loss or profile
corruption.
FSLogix under most configurations relies on using SMB as the primary protocol for
communicating with storage providers. In a Cloud Cache configuration, FSLogix can use
HTTPS when connecting to Azure page blobs.
Additionally, review our recommended list of exclusions to ensure there are no conflicts.
1. Select Start and Type powershell directly into the Start Menu.
-CommonTCPPort SMB
Users can't create new containers and end up with a temporary or local profile.
Current user session becomes hung or unresponsive.
Users fail to mount or correctly detach containers during sign in or sign out.
Solution
Configuration settings for profile containers and ODFC containers are applied at the
computer or virtual machine level. These system-wide settings can be overridden using
the object specific settings that apply to individual users or groups. Using object specific
settings allows an organization to have a baseline configuration while providing a more
unique or granular setting for a specific user or group.
Setting prioritization:
7 Note
Object specific settings can't be configured using Group Policy template files.
Object specific settings don't support Microsoft Entra ID (cloud-only
identities).
2. Select Start.
PowerShell
$DomainName = "%domainname%"
$Username = "%username%"
$UserObject = New-Object
System.Security.Principal.NTAccount($DomainName,$Username)
$UserObject.Translate([System.Security.Principal.SecurityIdentifier]).V
alue
6. Replace the values for $DomainName and $Username with your own values.
7. Select Start.
11. Press Enter to see the SID for the user or group.
7 Note
This is one example for an object specific configuration. Any of the settings for
profiles or ODFC can be created under an object specific configuration.
Using an object specific VHDLocations setting allows specific users or groups to create
and mount their profiles from various SMB file shares.
1. Sign in to the virtual machine as the local Administrator account or an account
that is a member of the local Administrators group.
4. Go to:
8. Type or paste the SID from step 11 in Use PowerShell to translate user or group
names to security identifiers (SID).
Example:
In general, the root cause of a user's issue isn't with FSLogix when they experience
issues with old, temporary, or local profiles. In most cases, these issues can be resolved
without the need to create a support request. We've outlined the most common causes
and solutions to these issues.
Solution
Review the articles that cover how to enable and configure FSLogix profile or ODFC
containers.
Solution
1. On the virtual machine, open the registry editor.
2. Find the following key(s) for your configuration:
HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\FSLogix\ODFC
3. Validate the value and type for VHDLocations or CCDLocations is present with either
type REG_SZ (preferred) or type REG_MULTI_SZ.
4. The REG_SZ value for VHDLocations with multiple entries, requires semi-colon
delimiting.
7 Note
Solution
Review the article that covers configuring storage permissions.
Console
Solution
Each organization needs to evaluate what is the correct course of action for these types
of situations. In some cases, allowing a user to sign in with a temporary profile and
allowing them to work could be better than denying the sign-in attempt. In other
situations, educating the users so they learn to sign out of their sessions before starting
a new connection. The last option is to enable multiple or concurrent connections while
using FSLogix.
Solution
Enabling the DeleteLocalProfileWhenVHDShouldApply setting will, at sign-in, delete the
local profile and create or attach the FSLogix profile container.
2 Warning
It is recommended to use caution and review which local profiles exist before
enabling the DeleteLocalProfileWhenVHDShouldApply setting to limit the exposure of
data loss.
Temp or local profile when
PreventLoginWithFailure or
PreventLoginWithTempProfile is enabled
FSLogix uses frxshell.exe to replace the standard Windows shell.exe when
configured to prevent a user's sign-in when their profile fails to attach or a temporary
Windows profile. User's who use a remote application versus a full desktop experience
won't be blocked from signing in. Remote applications don't call the standard Windows
shell.exe and FSLogix is unable to hook to the direct application during sign-in.
7 Note
The error could vary based on why the profile failed to load. For example, 'Access
denied'
Console
Solution
This is a known issue with no current workaround. Under most circumstances, user's
failed to load their profile due to storage permissions. Review our how-to article on
Configuring SMB storage permissions.
Users can't create new containers and end up with a temporary or local profile.
Current user session becomes hung or unresponsive.
Users fail to mount or correctly detach containers during sign in or sign out.
Solution
Increase the capacity of the remote storage provider.
FSLogix FAQ
FAQ
Installation
Is FSLogix integrated into all Windows operating
systems?
FSLogix isn't a Windows feature and must be installed separately. FSLogix can be found
in the Azure Marketplace for Windows 10 and Windows 11 multi-session images. While
we aim for this version of FSLogix to be 'up-to-date', customers should verify which
version is installed. If necessary, upgrade to the latest version.
Console
[18:09:59.554][tid:00000f94.000040cc][INFO] Mirroring
C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive to \\?
\Volume{7f7bafd1-fb6a-4f15-878d-3c2acf351e2e}\OneDrive\UserMeta
[18:09:59.554][tid:00000f94.000040cc][INFO] CopyFolderToVolume:
Source: C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive
Destination: OneDrive\UserMeta Volume: \\?\Volume{7f7bafd1-fb6a-4f15-878d-
3c2acf351e2e}\
[18:09:59.554][tid:00000f94.000040cc][INFO] Creating mount point:
C:\Windows\TEMP\FrxMount{5512FFFF-42DD-40B9-AE76-76B3CA567E4A} -> \\?
\Volume{7f7bafd1-fb6a-4f15-878d-3c2acf351e2e}\
[18:09:59.554][tid:00000f94.000040cc][INFO] Success creating
mount point. Mirroring files...
[18:09:59.569][tid:00000f94.000040cc][INFO] Copying directory:
Source: C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive
Destination: C:\Windows\TEMP\FrxMount{5512FFFF-42DD-40B9-AE76-
76B3CA567E4A}\OneDrive\UserMeta
[18:09:59.569][tid:00000f94.000040cc][INFO] Copying directory:
C:\Windows\system32\robocopy.exe
"C:\Users\%username%.FSL0\AppData\Local\Microsoft\OneDrive"
"C:\Windows\TEMP\FrxMount{5512FFFF-42DD-40B9-AE76-
76B3CA567E4A}\OneDrive\UserMeta" /MT /R:5 /W:1 /XJD /COPYALL /IT /B
/DCOPY:DAT /MIR
[18:09:59.569][tid:00000f94.000040cc][INFO] CreateProcess
successful
[18:09:59.569][tid:00000f94.000040cc][INFO] Enabling cloud files
pass-through
[18:09:59.569][tid:00000f94.000040cc][INFO] Waiting for process
to end
[18:10:00.460][tid:00000f94.000040cc][INFO] Robocopy exit code: 1
(Success)
[18:10:00.616][tid:00000f94.000040cc][INFO] Success mirroring
files
[18:10:00.616][tid:00000f94.000040cc][INFO] Volume mount point
removed
[18:10:00.616][tid:00000f94.000040cc][INFO] Mirror complete
Microsoft Entra ID
Can I use FSLogix containers with Microsoft
Entra ID and cloud-only identities?
Yes...BUT, it requires understanding of the risks. There are two (2) ways we've identified
how to configure FSLogix for Microsoft Entra ID and cloud-only identities. Check out the
FSLogix profile containers for Microsoft Entra ID cloud only identities blog article.
Redirects or redirections.xml
What are the recommended values for the
redirections.xml file?
FSLogix doesn't provide recommended values for the redirections.xml file. The
redirections.xml file is a powerful tool to help you manage the user's profile AND may
cause problems if not used correctly. We rely on application owners to document what
data can or can't be excluded from users profile container.
For example:
Tip
Don't exclude user profile data for applications unless the application owner has
documented the data can be excluded.
Cloud Cache
Do I need to use Cloud Cache for high
availability?
No. It can be an acceptable solution to use standard containers (VHDLocations) with a
highly available storage provider. Azure Files provides high availability through zone-
redundant storage (ZRS) and is a recommended storage provider.
Recommendations
Review your network topology and latency to all configured storage providers
Upgrade your storage provider to a higher performing tier
Disable VHDCompactDisk
Don't use ProfileType = 3 or VHDAccessMode = 1, 2, or 3
Don't use CcdMaxCacheSizeInMBs
Feedback
Was this page helpful? Yes No
Recommendations
Recommendation
2 Warning
Serious problems might occur if you modify the registry incorrectly by using
Registry Editor or by using another method. These problems might require that you
reinstall the operating system. Microsoft cannot guarantee that these problems can
be solved. Modify the registry at your own risk.
Reset DCOM permissions by removing the following entries from the registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole:"DefaultAccessPermission"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole:"DefaultLaunchPermission"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole:"MachineAccessRestriction"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole:"MachineLaunchRestriction"
Troubleshooting VHD Disk Compaction
Article • 12/05/2023
) Important
Use this article to troubleshoot issues you're having with the VHD Disk Compaction
feature.
Resolution
We plan to address this issue in a future release.
PowerShell
PowerShell
Data collection
The VHD Disk Compaction feature provides information through log files and event
logs.
Log files
The path for the log files is C:\ProgramData\FSLogix\Logs\Profile\Profile-yyyyMMdd.log .
During the sign out phase, the log file has entries toward the end of the sign out
process for the disk compaction events.
Tip
When reviewing FSLogix logs, press Ctrl+F to search the file, and then type
[ERROR: . This will find any errors including those related to VHD Disk Compaction.
WasCompacted: true
[14:46:46.854][tid:00001084.0000105c][INFO] Disk size results: WasCompacted:
true, MaxSupportedSize: 31456214528, MinSupportedSize: 1643998720, SizeOnDisk
WasCompacted: false
Event Logs
The table lists the events that can be logged for VHD Disk Compaction:
ノ Expand table
Operational 61 This vhd(x) can't be compacted because it has a fixed size. VHD(x) Path:
<path-to-vhd>
Admin 63 Failed during disk compaction, ErrorCode: <error code> , VHD(x) Path:
<path>
Next steps
Understand VHD Disk Compaction usage and performance
FSLogix product support
Article • 08/22/2023
This page covers FSLogix support eligibility, support boundaries, and the three (3)
methods for engaging with Microsoft Support.
Prerequisites
" Review: FSLogix feature deprecation
Support eligibility
FSLogix is part of the Microsoft modern lifecycle policy. FSLogix is continuously updated
and requires customers to remain up to date on the latest release to be under support.
Customers who have issues with previous versions of FSLogix are required to upgrade.
FSLogix doesn't provide updates or changes to previous versions (back porting). Issues
discovered through support cases or other means will be addressed in future feature or
hotfix releases.
Support for FSLogix and its products is limited to customers who meet the product
eligibility requirements. Additionally, FSLogix is only supported on the following versions
of Windows and is also subject to the products extended end date of supportability.
7 Note
32-bit architecture has been deprecated as of August 22, 2023. Please review the
feature deprecation page for additional information.
32-bit
64-bit
7 Note
Support for Windows Server 2012 R2 has been deprecated as of August 22, 2023.
Please review the feature deprecation page for additional information.
Support boundaries
If the source of an issue can't be identified in the logs captured by the FSLogix
Support Tool, from a memory dump, or the trace ETL files, then Microsoft support
requires instructions to reproduce the issue from a clean installation of Windows.
FSLogix tracks emerging issues with third-party products that are suspected to
cause compatibility issues and until the issues can be reproduced, these issues
won't be resolved from product updates.
FSLogix technical support assists with break fix issues and will provide deployment
and configuration advice as 'best effort'.
) Important
Microsoft Consulting Services or Microsoft Partner assistance should be
considered under these conditions:
Project management
Large-scale deployments
Profile migrations
Complex configurations
Azure portal
Customers who use FSLogix in the context of Azure (for example, Azure Virtual Desktop,
Infrastructure as a Service, etc.) can create a support request via the portal under the
Help + Support section.
When prompted, ensure you've selected the correct items from the drop-down lists:
Services Hub
Customers who use FSLogix in an on-premises scenario can open their support request
using Services Hub. Depending on your support agreement with Microsoft (for example,
Premier or Unified Support), there are two (2) options:
Unified Support
Services Hub for Unified Support
Phone support
Global Customer Service phone numbers
Feedback
Was this page helpful? Yes No
The lifecycle of functionality, features, and services are governed by shifting policies,
support timelines, informed data analysis, and collaborative decisions by leadership and
engineering teams. Lifecycle information helps customers chart out their long-term
deployment strategies, transition from outdated to new technology, and help improve
business outcomes. Use the following tables to understand the upcoming and past
changes to certain FSLogix features, services, and functionality.
Deprecation vs retirement
Deprecation: Describes the transitional phase during which a software component
is marked as discouraged for future use but is still functional.
Retirement: Describes the permanent removal of a software component from
active use and support.
7 Note
Dates and times are United States Pacific Standard Time, and are subject to change.
ノ Expand table
Support for 32-bit operating systems Deprecation August 22, 2023 TBD
Support for Windows Server 2012 R2 Deprecation August 22, 2023 TBD
Java Rule Editor and Java Rules Deprecation August 22, 2023 TBD
Next steps
FSLogix product support
7 Note
Not all known issues will be addressed through product changes as some cases are
dependant on other products or organizations.
7 Note
As stated in the FAQ, FSLogix deletes the contents of specific UWP folders inside the
user's profile container. We discovered that the LocalCache and TempState folders aren't
deleting and may have an adverse affect when roamed between virtual machines.
Currently Microsoft Teams is affected by this issue due to roaming this data from the
following packages:
%LocalAppData%\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyew
y\TempState
%LocalAppData%\Local\Packages\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\TempSt
e (Windows 10)
Other applications or packages may also be affected and should be considered when
troubleshooting issues.
Workaround
Create or update the redirections.xml to exclude the TempState folder.
XML
<Exclude Copy="0">AppData\Local\Packages\**<insert-package-name-
here>**\TempState</Exclude>
Resolution
We plan to address this issue in a future release.
Users connecting to virtual desktops running on Windows Server 2019 are unable to
launch or use new Microsoft Teams. Reviewing the application event log will display one
or more errors.
Console
Resolution
Install the latest FSLogix version.
FSLogix has several settings which are Enabled by default. When the ADMX templates
were updated in the last feature release, a checkbox was removed from all of these
settings to leverage the default Enabled and Disabled boolean from the policy. When
Disabled is selected from the Group Policy template, the setting is removed instead of
Apps
RoamRecycleBin
VHDCompactDisk
Profiles
CleanOutNotifications
InstallAppxPackages
IsDynamic
OutlookCachedMode
ODFC
IncludeOfficeActivation
IncludeOneDrive
IncludeOutlook
IncludeOutlookPersonalization
IncludeSharepoint
IncludeSkype
IsDynamic
OutlookCachedMode
Workaround
Use a manual configuration option.
Resolution
We plan to address this issue in a future release or we might release an updated ADMX
template out of band of our normal product release.
Resolution
We plan to address this issue in a future release.
%USERPROFILE%\AppData\Local\Packages\Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy
%USERPROFILE%\AppData\Local\Packages\Microsoft.Windows.CloudExperienceHost_cw5
n1h2txyewy
%USERPROFILE%\AppData\Local\Microsoft\TokenBroker
Resolution
Install the latest FSLogix version. Configure RoamIdentity by setting the registry value to
1 or enabling via Group Policy.
With the RoamRecycleBin setting enabled (enabled by default) and during the sign-in
process, some users might experience a black screen instead of displaying the desktop.
The black screen occurs when we configure the initial virtualization of the recycle bin.
During the sign-in process, the recycle bin isn't empty on the virtual machine and our
process attempts to empty it for all users.
Resolution
Install the latest FSLogix version.
Service Crash: User receives default or
temporary profile (profile fails to load)
Updated: March 2, 2023
Affected version(s): 2210 (2.9.8361.52326)
Status: Fixed
With the InstallAppxPackages setting enabled (enabled by default) and during the sign-
in process, some users might receive a default or temporary profile as a result of the
user's profile container failing to attach. The container failure occurs as a result of the
frxsvc.exe crashing during sign-in.
2 Warning
Does not cover all scenarios where a user's profile fails to load.
Resolution
Install the latest FSLogix version.
In some cases where RoamSearch and VHDCompactDisk1 are enabled, disk compaction
fails with the following error:
The result is the frxsvc.exe service crashes and the operation fails to succeed.
Resolution
Install the latest FSLogix version.
Feedback
Was this page helpful? Yes No
The various FSLogix components create comprehensive logs. These logs are found in
the following three (3) log types:
Reviewing or collecting logs can be a great first step in the support process before
opening a support case. The FSLogix Support Tool was created to help customers collect
all the necessary logs into a single zipped archive.
The most common log file used when troubleshooting an issue is the
Profile_%date%.log found in C:\ProgramData\FSLogix\Logs\Profile .
7 Note
2. Take note of the following sections: Computer Name, FSLogix version(s), and
service status.
4. Ensure the sign in event is in line with the time of the reported issue or problem.
5. Next, note the process id for this user as this ID is used during the entire sequence
of the event (sign in or sign out).
6. Use the style feature to highlight the following sections within the log file:
Milliseconds
loadProfile time:
unloadProfile time:
Figure 3: Profile log stylize terms
7. With these keywords stylized, it's easier to locate the sign in and sign out events.
Figure 4: Example 1
Figure 5: Example 2
8. Optionally, after you've stylized all the keywords, you can focus on a specific
process for a user's event by selecting the process id. Notepad++ will highlight all
occurrences of this process ID so you can follow its sequence as there may be
other processes running for other users at the same time.
) Important
Each action in the log file will have a prefix for the type of event. [INFO] for
informational events, [WARN:xxxxxx] indicates Warnings, and [ERROR:xxxxxx] for
Errors. Both Warnings and Error will have a corresponding error code.
files are rotated using round-robin, with the oldest file being replaced with a new file
after two files have been created. The ETL files are capped at 100-MB maximum file size.
The FSLogix ETL files are managed by Windows autologger. Trace data is held in a
buffer and written to the ETL files as needed and overwritten at the designated
threshold. Each time the computer is restarted, the ETL files are rotated according to the
configuration.
7 Note
Event Trace Logging is intended for Microsoft Internal Use only.
FSLogix Codes and what they mean
Article • 03/31/2023
The Profile and ODFC container set three values that represent the state of FSLogix for
the user signing in:
Status
Normal
Error
Reason
Error (generated from Windows, not FSLogix)
The three values are stored for each user's session in the local machines registry.
Depending on the container, the user's session information could be stored in one (1) of
two (2) places.
HKCU\Software\FSLogix\ODFC\Sessions
Status and Reason codes provide a holistic view of the FSLogix state for any specific
user. The Status code can be one (1) of two (2) types, normal and error. Error codes are
set when an FSLogix operation didn't succeed. These codes are generated from
Windows.
ノ Expand table
Reason Codes
Reason codes are used to help clarify the normal Status codes as described and aren't
used to with error Status codes.
ノ Expand table
Error Codes
When an FSLogix operation fails, a Warning or Error code is set. The Warning and Error
Codes come from Windows, where FSLogix made an API call and the operation wasn't
successful. These codes correspond to System Error Codes.
7 Note
Collecting the various logs and data created by FSLogix can be difficult. The FSLogix
Support Tool was created to simplify the process and ensure all the necessary logs were
collected in a single operation. The FSLogix Support Tool collects the following data:
Default items:
Text-based Log Files
Event Logs
Registry settings
Cloud Cache Driver (Frxccd)
Cloud Cache Service (Frxccds)
FSLogix Configuration and Session data (frxReg)
HKEY_CURRENT_USER Office
HKEY_CURRENT_USER Software Policies
HKEY_CURRENT_USER Windows Policies
HKEY_LOCAL_MACHINE Software Policies
HKEY_LOCAL_MACHINE Windows Policies
OneDrive
ProfileList
WindowsSearch
Various system information
Environment Variable (environment)
Filter Drivers (fltmcOutput)
File Share Permissions (folderPermissions)
FSLogix Information (frxinfo)
Group Policy Results (gpresult)
Drives and Volumes (mountvol)
System Information (msinfo)
Apps and Programs (ProgramList)
Log from Support Tool (SupportToolLog)
System Information (systeminfo)
Task Manager (tasklist)
Windows Update (updateHistory)
HTML reports (logAnalysis)
Error Analysis
Error Breakdown
Optional items:
Rule Set files
Crash or Memory Dump files
7 Note
If the the FSLogix Apps RuleEditor or Java RuleEditor are installed, the Rule Sets
will be collected also.
Before collecting logs, be sure that the problem virtual machine is configured with
logging enabled, and the logs exist.
1. Locate the folder where the FSLogix Support Tool was extracted to from the
previous section.
7 Note
7. The collected data can be used when opening a Microsoft Support Request.
7 Note
To collect the data from the remote computers, the account running the tool must
have local Administrator rights.
1. Create a file named servers.txt in the same directory where the Support
Tool(1).exe is located.
2. In the servers.txt file, type the NETBIOS or FQDN name for each computer to
collect (each on a separate line).
Figure 7: Server text file
3. Follow steps 2 - 7 from the single computer directions in the previous section.
4. When complete, the data collected from the remote computers are in the Remote
Servers folder in the compressed collection file.
Tip
When the support tool is complete, review the SupportToolLog.txt file to verify the
remote server information was collected.
frx command-line utility
Article • 03/31/2023
Commands
ノ Expand table
Command Description
Rules
ノ Expand table
Command Description
ノ Expand table
Command Description
begin-edit-profile Attaches the specified VHD or VHDX and the registry hive
end-edit-profile Detaches the specified VHD or VHDX and the registry hive
Search component
ノ Expand table
Command Description
ノ Expand table
Command Description
Miscellaneous
ノ Expand table
Command Description
frx version
Displays the versions of the loaded components
Examples
Console
frx version
Rules
frx add-redirect
Add a new path redirection for the virtualization driver
Console
Required Parameters
-source or -src
-destination or -dest
Examples
Console
frx add-rule
Add a specific rule.
Console
Examples
Console
Required Parameters
-src-parent
Parent directory/key or printer to which the rule applies.
Optional Parameters
-src
-dest-parent
-dest
-no-copy
Creates a blank copy of the item upon redirection if it does not exist (default is to copy
the source item).
-volatile
-datatype
-data
Special Variables
Usable in -dest-parent or -dest parameters.
ノ Expand table
Variable Description
Console
Examples
Console
Parameters
-filename
-install-dir
-ARP-keyname
frx del-redirect
Deletes an active redirect.
Console
Examples
Console
Parameters
-source
frx del-rule
Delete the specified rule.
Console
Examples
Console
Required Parameters
-src-parent
Optional Parameters
-src
frx list-redirects
Lists the current active folder redirections.
Console
frx list-redirects
frx list-rules
Lists all rules loaded in the system.
Console
Optional Parameters
-verbose
frx reload-rules
Reloads the rules. Can be specific to one file of rules, or apply to all rules.
7 Note
Console
Examples
Console
Optional Parameters
-filename
Specifies the rules file to be reloaded.
frx copy-profile
2 Warning
If the local profile size exceeds 5 GB, you must specify the -size-mbs parameter
with a size greater than 5000.
Copy a user's profile into a VHD or VHDX. If the VHD or VHDX file does not exist, it will
be created.
Console
Examples
Local profile less than 5 GB
Console
Console
-username
-sid
Optional Parameters
-size-mbs
-vhdx-sector-size
-dynamic
-src-parent
-verbose
-profile-path
-label
-redirections
Console
Examples
Console
Required Parameters
-filename
-src
Optional Parameters
-dest
Specifies the target folder in the VHDX file. Default destination is the VHDX root folder.
-size-mbs
-vhdx-sector-size
-verbose
-label
frx create-vhd
Create and format a VHD or VHDX. By default the VHD or VHDX will be 30 GBs and
sized dynamically.
Console
Examples
Console
Required Parameters
-filename
Optional Parameters
-size-mbs
-dynamic
-src-parent
-label
frx edit-profile
Attaches the specified VHD or VHDX and opens an Explorer Window and Registry editor
so the contents of the profile can be viewed and edited.
Console
Examples
Console
Parameters
-filename
frx begin-edit-profile
Attaches the specified VHD or VHDX and attaches the registry hive so the contents of
the profile can be viewed and edited.
Console
frx begin-edit-profile -filename <path>
Examples
Console
Parameters
-filename
frx end-edit-profile
Detaches the specified VHD or VHDX and the registry hive
Console
Examples
Console
Parameters
-cookie
-filename
Console
Examples
Console
Parameters
-filename
frx import-profilecfg
Imports profile configuration settings and inclusion/exclusion group membership from
file. This file can be generated with the export-profilecfg command.
Console
Examples
Console
Parameters
-filename
Specifies the file for the configuration data to be stored.
frx migrate-vhd
Creates, formats a VHD or VHDX, and mirrors the contents of the source VHD. By default
the VHD or VHDX will be 30 GBs and sized dynamically.
Console
Examples
Console
Required Parameters
-src
-dest
Optional Parameters
-size-mbs
-vhdx-sector-size
-dynamic
Console
Examples
Console
Required Parameters
-filename
-src
Optional Parameters
-dest
Specifies the target folder in the VHDX file. Default destination is the VHDX root folder.
-size-mbs
-vhdx-sector-size
-verbose
-label
frx set-profile-redir
Sets the profile's folder redirections configuration
Console
Examples
Console
Required Parameters
-filename
Optional Parameters
-redirections
-no-redirections
frx reset-user-search-db
Re-index a user's search index database.
Console
Examples
Console
Parameters
-username
-sid
frx add-secure-key
Add a secure key to Credential Manager.
Console
Examples
Console
Parameters
-key
-value
frx del-secure-key
Delete a secure key from Credential Manager
Console
Examples
Console
Parameters
-key
frx list-secure-key
List the keys that are contained in Credential Manager
Console
frx list-secure-key
Miscellaneous
frx create-junction
Creates a junction point to a target volume or folder
Console
Examples
Console
Required Parameters
-src
Specifies the drive or folder where the junction point will be added.
-dest
Optional Parameters
-name
frx enable-shnot
Enables shell refresh notification
Console
frx enable-shnot -true <switch>
-false <switch>
-force <switch>
Examples
Console
Optional Parameters
-true
Enables notifications
-false
Disables notifications
-force
frx regfont
Registers a font in the system font table
Console
Examples
Console
Parameters
-filename
frx report-assignment
Reports on the applicability and non-applicability of a Rule Set by analyzing the
assignment file and Active Directory.
Console
Examples
Console
Required Parameters
-filename
Optional Parameters
-username
Reports the applicability of the assignment file for the user specified (distinguished
name).
-verbose
-csv
Console
Examples
Console
Parameters
-src
frx unregfont
Removes a font from the system font table
Console
Examples
Console
Parameters
-filename
Console
frx start-agent
frx stop-agent
Stops all drivers and services comprising the agent
Console
frx stop-agent
frxcontext command-line utility
Article • 03/31/2023
frxcontext is a command-line utility which adds to the context menu for VHD(x) files.
When installed, a new context menu item will appear for VHD(x) file which mounts the
VHD, loads the registry and opens Windows Explorer.
Console
frxcontext <path-to-vhd>
Examples
Console
frxcontext --install
frxcontext \\<server-name>\<share-
name>\%username%_%sid%\Profile_%username%.vhdx
Parameters
--install
Install FSLogix container management to the Windows context menu for vhd(x) files.
Installs for all users.
--uninstall
Uninstall FSLogix container management from the windows context menu. Uninstalls for
all users.
--install-per-user
Install FSLogix container management to the Windows context menu for vhd(x) files.
Install for the current (logged in) user.
--uninstall-per-user
Uninstall FSLogix container management from the windows context menu. Uninstalls for
the current (logged in) user.
7 Note
FSLogix container files are not special files. Windows provides native capability to
mount and explore the container. The frxcontext utility is only provided as an aid.
Configuration Setting Reference
Article • 05/14/2024
This article outlines the various registry settings applicable to FSLogix that includes, but
not limited to:
App Services
Profile containers
ODFC containers
Cloud Cache
Logging
Default settings
After installing FSLogix, the installer will create a base set of registry keys and values
which provides the framework for adding configuration settings. FSLogix doesn't create
ANY configuration setting value names as part of the installation. Any configuration
setting listed on this page which has a 'Default value' doesn't need to be created or
configured as FSLogix will automatically use the default value as listed.
For example, the RoamIdentity setting has a default value as ' 0 '. FSLogix will not roam
identities as a default behavior and doesn't need an Administrator to create or add the
registry value name and value. Only if the desire is to change the default behavior of the
setting would the Administrator create or add the registry value name and value.
\Apps
"InstallPath"="C:\Program Files\FSLogix\Apps\"
"InstallVersion"="version_number"
\Logging
\Profiles
\SystemInfo
\Telemetry
\UserModeDll
[ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\FSLogix]
\ODFC
Custom environment variables
Some FSLogix settings will accept environment variables. These settings will accept the
list of custom environment variables and any variables available during the user's sign
in.
ノ Expand table
Variable Description
%clientname% The COMPUTERNAME of the client initiating the connection to the host.
CleanupInvalidSessions
Registry Hive: HKEY_LOCAL_MACHINE
Enabled Value: 1
In cases where a user's session terminates abruptly, the VHD(x) mounted for the user's
profile isn't properly detached and the user's next sign in may not successfully attach
their VHD(x) container. Enable this setting and FSLogix attempts to clean up these
invalid sessions and allow a successful sign-in. This setting affects both Profile and ODFC
containers.
RoamRecycleBin
Registry Hive: HKEY_LOCAL_MACHINE
Disabled Value: 0
When enabled, this setting creates a redirection for the user's specific Recycle Bin into
the VHD(x) container. This allows the user to restore items regardless of the machine
from where they were deleted.
VHDCompactDisk
Registry Hive: HKEY_LOCAL_MACHINE
Disabled Value: 0
When enabled, this setting attempts to compact the VHD disk during the sign out
operation and is designed to automatically decrease the Size On Disk of the user's
container depending on a predefined threshold. For more information, see the VHD Disk
Compaction documentation.
AccessNetworkAsComputerObject
Type: DWORD
Default Value: 0
U Caution
AttachVHDSDDL
Type: REG_SZ
Default Value: N/A
SDDL string representing the ACLs to use when attaching the VHD(x).
CleanOutNotifications
Type: DWORD
Default Value: 1
0: No action.
1: Cleans out stale notification entries.
This setting cleans out stale entries created by the Windows Push Notification
Platform (WPN) and Windows Notification Facility (WFN) which under some
conditions leads to slow sign-ins.
DeleteLocalProfileWhenVHDShouldApply
Type: DWORD
Default Value: 0
0: No action.
1: Deletes local profile if exists and matches the profile container.
) Important
When FSLogix determines a user should have an FSLogix profile container, and
a local profile exists, FSLogix will permanently delete the local profile.
DiffDiskParentFolderPath
Type: REG_SZ
Enabled
(required setting)
Type: DWORD
Default Value: 0
FlipFlopProfileDirectoryName
Type: DWORD
Default Value: 0
) Important
Be sure you understand how conflicting settings are applied and prioritized.
GroupPolicyState
Type: DWORD
Default Value: 1
7 Note
IgnoreNonWVD
Type: DWORD
Default Value: 0
7 Note
Windows Virtual Desktop (WVD) is now known as Azure Virtual Desktop (AVD),
though the name of the setting uses the legacy name.
InstallAppxPackages
Type: DWORD
Default Value: 1
When enabled (1), this setting reads the AppxPackages.xml manifest file from the
user's profile and installs / re-registers the list of applications. The
AppxPackages.xml file can be found at: %LocalAppData%\FSLogix\AppxPackages.xml .
This setting does control the global behavior in Windows for all AppX applications.
This only improves functionality when used with FSLogix.
2 Warning
IsDynamic
Type: DWORD
Default Value: 1
7 Note
This setting is used with the SizeInMBs setting to manage the size of
profile containers. Setting IsDynamic to 1 causes the Profile container to
use the minimum space on disk, regardless of the allocated SizeInMBs.
As space is consumed, the size on disk grows up to the size specified in
SizeInMBs. SizeInMBs is the maximum size that a user is allowed to use
on disk. If the user's profile container grows beyond what is specified in
SizeInMBs the user experiences errors.
Setting IsDynamic to 1 does NOT allow the Profile container to grow
larger than what is specified in SizeInMBs.
KeepLocalDir
Type: DWORD
Default Value: 0
Default Value: 12
Specifies the number of retries attempted when a VHD(x) file is locked (open by
another process or computer).
LockedRetryInterval
Type: DWORD
Default Value: 5
NoProfileContainingFolder
Type: DWORD
Default Value: 0
0: Disabled.
1: Profile container doesn't use or create a SID containing folder for the
VHD(x) file.
This setting is intended for situations where storage provides a location that is
already unique per-user.
) Important
Be sure you understand how conflicting settings are applied and prioritized.
This setting will override ANY OTHER setting related to container folders.
SIDDIRNameMatch has NO EFFECT when used in conjunction with
this setting.
SIDDIRNamePattern has NO EFFECT when used in conjunction with
this setting.
FlipFlopProfileDirectoryName has NO EFFECT when used in
conjunction with this setting.
OutlookCachedMode
Type: DWORD
Default Value: 1
) Important
Outlook must be configured for online mode for this feature to work. This
insures if FSLogix gets disabled, that large OST files won't be
downloaded.
Online mode registry entry:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\office\16.0\Outlook\OS
T\NoOST:DWORD = 2 .
PreventLoginWithFailure
Type: DWORD
Default Value: 0
When enabled (1) FSLogix loads the FRXShell if there's a failure attaching to, or
using an existing profile VHD(x). The user receives the default prompt to call
support, and the users only option is to sign out.
PreventLoginWithTempProfile
Type: DWORD
Default Value: 0
When enabled (1) FSLogix loads the FRXShell if it's determined a temp profile has
been created. The user receives the default prompt to call support, and the users
only option is to sign out.
ProfileDirSDDL
Type: REG_SZ
SDDL string representing the ACLs to use when creating the profile directory.
ProfileType
Type: DWORD
Default Value: 0
) Important
All sessions trying to use the VHD concurrently must have a matching
ProfileType setting. If the VHD isn't accessed concurrently, ProfileType
should be 0.
OneDrive does not support multiple simultaneous connections / multiple
concurrent connections, using the same profile, under any circumstances.
For more information, see Use the sync app on virtual desktops.
ReAttachRetryCount
Type: DWORD
Default Value: 60
Specifies the number of times the system should attempt to reattach the VHD(x)
container if it's disconnected unexpectedly.
ReAttachIntervalSeconds
Type: DWORD
Default Value: 10
RebootOnUserLogoff
Type: DWORD
Default Value: 0
0: Disabled.
1: Reboot when any user signs out.
2: Reboot when a FSLogix profile user signs out.
RedirectType
Type: DWORD
Default Value: 2
RedirXMLSourceFolder
Type: REG_SZ
Path where FSLogix looks for the redirections.xml file to copy from and into the
user's profile. The path supports the use of the FSLogix custom variables or any
environment variables that are available to the user during the sign in process. For
example, C:\Windows\System32 or \\<server-name>\<share-name>
7 Note
Do not add the file name to the path. This setting is a folder path only.
RemoveOrphanedOSTFilesOnLogoff
Type: DWORD
Default Value: 0
0: Disabled.
1: Duplicate OST files are deleted during sign out.
7 Note
In rare cases, duplicate OST files are created for a user. This circumstance has
been documented to occur with and without the use of a non-persistent
profile. When the profile is stored in the standard file system, administrators
may remove orphaned or stale OST files by deleting them. When using FSLogix
the OST file is in the container and isn't as visible. Over long periods of time
duplicate OST files may consume incremental disk space. When enabled (1)
FSLogix will delete all OST files in a VHD(x), except the OST with the latest
modify date. Administrators should be familiar with the use of OST files, and
potential implications, before choosing to enable this setting.
RoamIdentity
Type: DWORD
Default Value: 0
) Important
The default setting is to not roam the credentials or tokens which is the
preferred setting. While this may not be the ideal configuration for some
customers, we created this setting to provide customers a way to roam
these items similarly to FSLogix v2201 hotfix 2 (2.9.8228.50276).
Do NOT enable this setting if you use Microsoft Intune to manage your
devices.
RoamSearch
Type: DWORD
Default Value: 0
0: Disabled.
1: Enable single-user search.
2: Enable multi-user search.
For more information, see Configure Windows Search database roaming.
) Important
1 Windows Server 2019 version 1809 and later, Windows 10 and 11 multi-session
SetTempToLocalPath
Type: DWORD
Default Value: 3
0: Disabled.
1: Redirect TEMP and TMP to the local drive.
2: Redirect INetCache to the local drive.
3: Redirect TEMP, TMP, and INetCache to the local drive.
ShutdownOnUserLogoff
Type: DWORD
Default Value: 0
0: Disabled.
1: Shutdown when any user signs out.
2: Shutdown when a FSLogix user signs out.
SIDDirNameMatch
Type: REG_SZ
Specifies a string pattern used when matching a profile or ODFC container folder.
Use this setting to define how FSLogix attempts to locate a users profile or ODFC
container. FSLogix uses the VHDLocations or CCDLocations as the location where
to search and this setting defines what to search. The path supports the use of the
FSLogix custom variables or any environment variables that are available to the user
during the sign in process.
) Important
Be sure you understand how conflicting settings are applied and prioritized.
SIDDirNamePattern
Type: REG_SZ
Specifies a string pattern used when creating a profile or ODFC container folder.
Use this setting to define how FSLogix attempts to create a users profile or ODFC
container folder. FSLogix uses the VHDLocations or CCDLocations as the location
where to create and this setting defines what to create. The path supports the use
of the FSLogix custom variables or any environment variables that are available to
the user during the sign in process.
) Important
Be sure you understand how conflicting settings are applied and prioritized.
When using this configuration setting, be sure the SIDDIRNameMatch
value matches this setting.
This setting has NO EFFECT when FlipFlopProfileDirectoryName is
enabled.
This setting has NO EFFECT when NoProfileContainingFolder is
enabled.
NoProfileContainingFolder > FlipFlopProfileDirectoryName >
SIDDirNamePattern (this setting)
SIDDirSDDL
Type: REG_SZ
SDDL string representing the ACLs to use when creating the SID container folder.
SizeInMBs
Type: DWORD
Specifies the maximum size of the user's container in megabytes. Newly created
VHD(x) containers are of this size. Existing containers are extended automatically to
this size during user sign in. You can increase this value at any time, but can't
decrease it. Decreasing this value doesn't cause existing VHD(x) containers to
shrink.
VHDNameMatch
Type: REG_SZ
) Important
VHDNamePattern
Type: REG_SZ
Specifies a string pattern used when creating a users profile container. Use this
setting to define how FSLogix attempts to create a users profile container (VHD(x)
file). FSLogix uses the VHDLocations or CCDLocations as the location where to
search and this setting defines what to create. The path supports the use of the
FSLogix custom variables or any environment variables that are available to the user
during the sign in process.
) Important
VHDLocations
(required setting)
VHDXSectorSize
Type: DWORD
Default Value: 0
7 Note
VolumeType
Type: REG_SZ
A value of vhd means that newly created files should be of type VHD. A value of
vhdx means that newly created files should be of type VHDX.
VolumeWaitTimeMS
Type: DWORD
You can use Windows Event Log to understand how often VHD Disk Compaction is
being used, the space saved, and the time taken to run. Here are some sample
PowerShell scripts and Azure Log Analytics queries you can use to help you interpret the
events.
PowerShell
PowerShell
# Query Event Log using Get-WinEvent filtered to the VHD Disk Compaction
metric events
$diskCompactionEvents = Get-WinEvent -FilterHashtable @{
StartTime = $startTime
ProviderName = 'Microsoft-FSLogix-Apps'
ID = 57
}
) Important
In order to use the below query, you first must configure your virtual machines to
send their event logs to a Log Analytics workspace. For more information, see
Collect Windows event log data sources with Log Analytics agent. The logs which
are used for VHD Disk Compaction are:
Microsoft-FSLogix-Apps/Operational
Microsoft-FSLogix-Apps/Admin
Kusto
Event
| where EventLog == 'Microsoft-FSLogix-Apps/Operational' and EventID == 57
| parse kind=relaxed EventData with *
"<Data Name=\"Path\">" Path
"</Data><Data Name=\"WasCompacted\">" DiskCompaction
"</Data><Data Name=\"MaxSupportedSizeMB\">" MaxSupportedSizeMB
"</Data><Data Name=\"MinSupportedSizeMB\">" MinSupportedSizeMB
"</Data><Data Name=\"SizeBeforeMB\">" SizeBeforeMB
"</Data><Data Name=\"SizeAfterMB\">" SizeAfterMB
"</Data><Data Name=\"SavedSpaceMB\">" SavedSpaceMB
"</Data><Data Name=\"TimeSpentMillis\">" TimeSpentMillis "</Data>" *
| extend TimeSpent = todecimal(TimeSpentMillis) / 1024
| where DiskCompaction <> ""
| summarize Average=round(avg(TimeSpent),2), Max=round(max(TimeSpent),2),
Min=round(min(TimeSpent),2) by DiskCompaction
Kusto
Event
| where EventLog == 'Microsoft-FSLogix-Apps/Operational' and EventID == 57
| parse kind=relaxed EventData with *
"<Data Name=\"Path\">" Path
"</Data><Data Name=\"WasCompacted\">" DiskCompaction
"</Data><Data Name=\"MaxSupportedSizeMB\">" MaxSupportedSizeMB
"</Data><Data Name=\"MinSupportedSizeMB\">" MinSupportedSizeMB
"</Data><Data Name=\"SizeBeforeMB\">" SizeBeforeMB
"</Data><Data Name=\"SizeAfterMB\">" SizeAfterMB
"</Data><Data Name=\"SavedSpaceMB\">" SavedSpaceMB
"</Data><Data Name=\"TimeSpentMillis\">" TimeSpentMillis "</Data>" *
| where DiskCompaction <> ""
| summarize NumberOfVhdContainers=count() by DiskCompaction
Kusto
Event
| where EventLog == 'Microsoft-FSLogix-Apps/Operational' and EventID == 57
| parse kind=relaxed EventData with *
"<Data Name=\"Path\">" Path
"</Data><Data Name=\"WasCompacted\">" DiskCompaction
"</Data><Data Name=\"MaxSupportedSizeMB\">" MaxSupportedSizeMB
"</Data><Data Name=\"MinSupportedSizeMB\">" MinSupportedSizeMB
"</Data><Data Name=\"SizeBeforeMB\">" SizeBeforeMB
"</Data><Data Name=\"SizeAfterMB\">" SizeAfterMB
"</Data><Data Name=\"SavedSpaceMB\">" SavedSpaceMB
"</Data><Data Name=\"TimeSpentMillis\">" TimeSpentMillis "</Data>" *
| extend Storage = todecimal(SavedSpaceMB)
| summarize StorageSavings = (format_bytes(sum(Storage * 1024 *
1024),2,"GB"))
Kusto
Event
| where Source == 'Microsoft-Windows-Winlogon' and EventID == 6006
| parse kind=relaxed ParameterXml with "<Param>" ServiceName "</Param>
<Param>" Duration "</Param><Param>" EventType "</Param><Param>-</Param>"
| extend TimeInSeconds = todecimal(Duration)
| where EventType == "Logoff"
| summarize Occurrences=count(),Average=round(avg(TimeInSeconds),2),
Minimum=round(min(TimeInSeconds),2), Maximum=round(max(TimeInSeconds),2) by
ServiceName
FSLogix is composed of various components that enable the variety of solutions. At the
core of FSLogix are the two (2) Windows Services, and the three (3) minifilter drivers.
Additionally, FSLogix has command-line utilities, a system tray application, a User Mode
DLL, and legacy browser plugins. All of these components are part of the core product
installation.
Services
Windows Services are the primary methods from which FSLogix operates. These services
are responsible for the commands, operations, and interactions with the various
dependencies (for example, frx.exe and winlogon.exe).
frxdrv.sys Virtualization Filter Driver Provides virtualization of the file system and registry
components
frxccd.sys Virtual Hard Drive Filter Provides advanced interaction with VHD(s) used in
Drivers Cloud Cache
Other Components
7 Note
frxtray.exe has been deprecated as of August 22, 2023. Please review the feature
deprecation page for additional information.
2 Warning
Don't enable this utility for all users. It should only be used as a tool for
troubleshooting issues for specific users. If enabled (in the system tray) for all
signed in users, it will have a negative impact on the overall system performance.
Utilities
frx command-line utility
Lets you manage rule sets and many other features of FSLogix. For details on this utility
and the parameters it supports, review the frx command-line utility article.
2 Warning
User mode DLL(s) should only be used when directed to by a Microsoft support
engineer.