Share via


Configuration Setting Reference

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 won't 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.

Base registry keys and value names

  • [HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix]
    • \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 accept environment variables. These settings accept the list of custom environment variables and any variables available during the user's sign in.

FSLogix custom variables:

Variable Description
%username% SAMAcountName for the signed in user.
%userdomain% NETBIOS domain name where the user's account resides.
%sid% Security Identifier
%osmajor% Major version of the operating systems as seen in: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentMajorVersionNumber
%osminor% Minor version of the operating systems as seen in: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentMinorVersionNumber
%osbuild% Build version of the operating systems as seen in: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber
%osservicepack% Legacy to Windows service packs, no longer used.
%profileversion% Version of profile based on Windows version.
%clientname% The COMPUTERNAME of the client initiating the connection to the host.

App Services Settings

The following settings are applicable to FSLogix and not specific to profile or ODFC containers or Cloud Cache.

CleanupInvalidSessions

Registry Hive: HKEY_LOCAL_MACHINE

Registry Path: SOFTWARE\FSLogix\Apps

Value Name: CleanupInvalidSessions

Value Type: DWORD

Enabled Value: 1

Disabled Value: 0 (default)

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

Registry Path: SOFTWARE\FSLogix\Apps

Value Name: RoamRecycleBin

Value Type: DWORD

Enabled Value: 1 (default)

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

Registry Path: SOFTWARE\FSLogix\Apps

Value Name: VHDCompactDisk

Value Type: DWORD

Enabled Value: 1 (default)

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.

FSLogix Settings (Profile, ODFC, Cloud Cache, Logging)

Cloud Cache Settings

The following settings are applicable to Cloud Cache configurations.

Global Cloud Cache Settings

The following configuration settings are Cloud Cache specific and are used for ALL Cloud Cache implementations whether applied to Profile or ODFC containers.

CacheDirectory

Registry Hive: HKEY_LOCAL_MACHINE

Registry Path: SYSTEM\CurrentControlSet\Services\frxccd\Parameters

Value Name: CacheDirectory

Value Type: REG_SZ

Default Value: C:\ProgramData\FSLogix\Cache

Data values and use:

This value specifies the location of the local cache VHD(x).

Important

  • CacheDirectory and ProxyDirectory MUST NOT be the same location as the Proxy File and the Cache File are the same name and will conflict.
  • It's critical to locate the local cache VHD(x) on storage that is highly available and high performing. Storage that is appropriate for the local cache VHD(x) will have performance and availability characteristics similar to SSD or NVMe attached storage. CacheDirectory is set prior to Group Policy being applied, it isn't possible to rely on Group Policy to set CacheDirectory in environments where a "gold image" is applied at boot.

WriteCacheDirectory

Registry Hive: HKEY_LOCAL_MACHINE

Registry Path: SYSTEM\CurrentControlSet\Services\frxccds\Parameters

Value Name: WriteCacheDirectory

Value Type: REG_SZ

Default Value: C:\ProgramData\FSLogix\Cache

Data values and use:

This setting specifies where the files are located that control what data needs to be written to the CCDLocations. These files contain a list of sectors that need to be written to the CCDLocations. For each set, the data is read from the local cache VHD(x) in the CacheDirectory then written to the CCDLocations. Each location has its own write cache list since they may flush at different speeds.

ProxyDirectory

Registry Hive: HKEY_LOCAL_MACHINE

Registry Path: SYSTEM\CurrentControlSet\Services\frxccds\Parameters

Value Name: ProxyDirectory

Value Type: REG_SZ

Default Value: C:\ProgramData\FSLogix\Proxy

Data values and use:

Specifies the location of the local proxy stub file.

Important

  • CacheDirectory and ProxyDirectory MUST NOT be the same location as the Proxy File and the Cache File are the same name and will conflict.
  • Although it's possible to change the location of the ProxyDirectory setting, it's strongly recommended that this is only done when there is no C drive.
  • This location contains no data.

SilenceACLWarning

Registry Hive: HKEY_LOCAL_MACHINE

Registry Path: SYSTEM\CurrentControlSet\Services\frxccds\Parameters

Value Name: SilenceACLWarning

Value Type: DWORD

Default Value: 0

Data values and use:

  • 0: Disabled.
  • 1: Disables the event log warning when the proxy or cache ACLs don't match the default values.

Container Specific Settings

A Cloud Cache configuration may be used for Profile and / or ODFC container(s).

  • Profiles Registry Key: HKLM\SOFTWARE\FSLogix\Profiles
  • ODFC Registry Key: HKLM\SOFTWARE\Policies\FSLogix\ODFC

Important

  • CCDLocations and VHDLocations must not both be present at the same time.
  • Cloud Cache settings are only valid when used with CCDLocations in either profiles or ODFC configurations.

CCDLocations

(Required Setting)

Type: REG_SZ / MULTI_SZ

Default Value: N/A

Data values and use:

Specifies the storage type and location of Cloud Cache remote containers. CCDLocations should be used instead of VHDLocations. CCDLocations supports SMB and Azure Blob types with up to four remote container locations. When setting CCDLocations, the first location is the primary storage provider and is the only provider used for read operations, unless it becomes unhealthy. All storage providers are used when content needs to be written to the VHD(x) files.

Tip

  • Don't use spaces around delimiters.
  • Parameters and values are case sensitive.
    • For example:
    • type=smb (correct)
    • type=SMB (incorrect)
    • connectionString=\\<server-name-1>\<share-name> (correct)
    • connectionstring=\\<server-name-1>\<share-name> (incorrect)

CCDLocations are formatted using a type, name, and connectionString separated using a ; as the delimiter. The type accepts either smb or azure. Name is an optional value used to describe the storage provider. Use " when the name contains a space. The connectionString for smb type must include the full UNC path to the file share. The connectionString for azure type must include the name of the protected key.

  • CCDLocations using SMB: type=smb,name="SMB PROVIDER 1",connectionString=\\<server-name-1>\<share-name>
  • CCDLocations using Azure (secure): type=azure,name="AZURE BLOB 1",connectionString="|fslogix/azureblob1|"

Caution

Don't use the plain-text connectionString for Azure page blob storage providers. For more information, see Tutorial: Configure profile containers with Cloud Cache and Protect Azure page blob connection string.

CcdMaxCacheSizeInMBs (retired)

Important

This setting has been retired as of February 11, 2025 and is no longer supported. Please review the feature deprecation page for additional information.

ClearCacheOnLogoff

Type: DWORD

Default Value: 0

Data values and use:

By default, the local cache VHD(x) isn't removed when the user signs out. If a user accesses a system where it's desirable to have the local cache VHD(x) deleted when they sign out, set this value to 1.

Cloud Cache provider registration settings overview

Caution

Please read the following section before attempting to use these settings.

Traditionally, Cloud Cache had rigid behavior when all defined providers weren't available at user sign-in and sign out. Specifically, users would never trigger an error during sign-in, even if no Cloud Cache providers were available. Also, at sign out, if any Cloud Cache provider wasn't available the user's sign out would be prevented indefinitely. In most scenarios, where Cloud Cache providers point to highly available storage that would rarely, if ever, be unavailable for extended periods, these settings are ideal for insuring data integrity. In some scenarios, users have expressed a desire for more granular control over these behaviors. The following settings allow configuration of Cloud Cache behavior during disk register (associated with user sign-in) and disk unregister (associated with user sign out) events. When configuring any settings associated with disk register or unregister events, verify that you're familiar with the concepts, and that the configurations achieve your data integrity goals. Various setting combinations could cause local profile data to be discarded with no Cloud Cache providers being updated. The result of clearing the local cache, without flushing to a Cloud Cache provider, is the permanent deletion of the user's session data stored in the local cache.

The following settings may be used, with Profile container and/or ODFC container when using Cloud Cache.

HealthyProvidersRequiredForRegister

Type: DWORD

Default Value: 0

Data values and use:

Defines the number of required 'healthy' storage providers necessary for a successful user sign-in. When set to 0, users are always allowed to sign in even if no Cloud Cache providers are available.

This setting specifies the number of healthy Cloud Cache providers required to allow a sign-in. If a user signs in with no available providers, FSLogix assumes that one or more Cloud Cache providers become available prior to the user signing out. If a Cloud Cache provider doesn't become available during the time of the user session, then the user is prevented from signing out (discussed in HealthyProviderRequiredForUnregister). If it's desired to block a user from signing in and a minimum number of Cloud Cache providers aren't available, the HealthyProvidersRequiredForRegister may be set to the number of providers required for a sign-in. If the minimum number of providers required for registration aren't available, then the sign-in fails. When setting HealthyProvidersRequiredForRegister to anything other than 0, then PreventLoginWithFailure and / or PreventLoginWithTempProfile should be used in order to create the desired user experience.

HealthyProvidersRequiredForUnregister

Type: DWORD

Default Value: 1

Data values and use:

Defines the number of required 'healthy' storage providers necessary for a successful user sign out. If the number of available providers at sign out is less than the number set, the user's sign out is prevented for the time specified in CcdUnregisterTimeout.

Note

Although HealthyProvidersRequiredForUnregister may be set to 0, it is NOT recommended. When set to 0, ClearCacheOnForcedUnregister and CcdUnregisterTimeout will have NO EFFECT. Setting the value to 0 may cause the permanent deletion of the user session data stored in the local cache, without the protections built in through CcdUnregisterTimeout and ClearCacheOnForcedUnregister.

CcdUnregisterTimeout

Type: DWORD

Default Value: 0

Data values and use:

  • 0: The user sign out is held until the number of providers specified in HealthyProvidersRequiredForUnregister are available.

Change the value to the number of seconds a user's sign out is delayed if the number of available providers is less than the value specified in HealthyProvidersRequiredForUnregister.

Caution

When set to 0 and the number of providers specified in HealthyProvidersRequiredForUnregister is not met, then the user's sign out may be held infinitely.

ClearCacheOnForcedUnregister

Type: DWORD

Default Value: 0

Data values and use:

  • 0: Retains the local cache when the storage provider is unregistered when the CcdUnregisterTimeout expires.
  • 1: Removes all local cache when the storage provider is unregistered when the CcdUnregisterTimeout expires.

CCDUnregisterTimeout is set to specify the number of seconds to wait prior to allowing a user session to be closed, even if a successful flush to a Cloud Cache provider hasn't occurred. If ClearCacheOnLogoff is set, the local cache is deleted, even if the data in the local cache hasn't been flushed to a Cloud Cache provider. To preserve the user data in the local cache, when a user session is forced to close, local cache is NOT deleted in this scenario (Even if ClearCacheOnLogoff is set). This allows user data to be recovered from the local cache, however the local cache VHD(x) must then be managed (deleted) manually after user data is restored.

Caution

Setting ClearCacheOnForcedUnregister to 1 may result in user data saved in the registry during the current session to be lost. It is important to understand that this data isn't recoverable if the local cache is cleared in this scenario. Verify that you understand the implications of changing the default value of this setting prior to making changes.