### FSLogix Cloud Cache Configuration Example Source: https://learn.microsoft.com/en-us/fslogix/concepts-configuration-examples This example demonstrates the CCDLocations registry setting for configuring multiple SMB storage providers for Cloud Cache in a high availability setup. Ensure storage providers are in the same region as the virtual machines. ```powershell New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name CCDLocations -Value "type=smb,name=""FILES SMB PROVIDER"",connectionString="\\\\.file.core.windows.net\";type=smb,name=""ANF SMB PROVIDER"",connectionString="\\\\"" -PropertyType MULTI_SZ -Force ``` -------------------------------- ### FSLogix Log Output Example Source: https://learn.microsoft.com/en-us/fslogix/overview-release-notes Example log output showing session start and end markers for profile logon and logoff events. ```text ===== Begin Session: Post Profiles Logon ===== End Session: Post Profiles Logon ===== Begin Session: Pre Profiles Logoff ===== End Session: Pre Profiles Logoff ``` -------------------------------- ### Install and use frxcontext Source: https://learn.microsoft.com/en-us/fslogix/utilities/frxcontext/frxcontext Demonstrates how to install the FSLogix container management context menu for all users and how to directly mount a VHD(x) file using its network path. ```console frxcontext --install frxcontext \\\%username%_%sid%\Profile_%username%.vhdx ``` -------------------------------- ### Start FsLogix Agent Source: https://learn.microsoft.com/en-us/fslogix/utilities/frx/frx Starts all the drivers and services that constitute the FsLogix agent. ```bash frx start-agent ``` -------------------------------- ### Example FSLogix Redirects Output Source: https://learn.microsoft.com/en-us/fslogix/how-to-configure-profile-containers This is an example output of the 'frx.exe list-redirects' command, showing active redirections from user profile locations to container storage. ```text Active redirections ------------------- \Device\HarddiskVolume4\Users\contoso => \Device\HarddiskVolume9\Profile \Device\HarddiskVolume4\Users\contoso\AppData\Roaming\Microsoft\Protect => \Device\HarddiskVolume4\Users\local_contoso\AppData\Roaming\Microsoft\Protect \Device\HarddiskVolume4\Users\contoso\AppData\Roaming\Microsoft\Credentials => \Device\HarddiskVolume4\Users\local_contoso\AppData\Roaming\Microsoft\Credentials \Device\HarddiskVolume4\Users\contoso\AppData\Local\Microsoft\Credentials => \Device\HarddiskVolume4\Users\local_contoso\AppData\Local\Microsoft\Credentials \Device\HarddiskVolume4\Users\contoso\AppData\Local\Microsoft\Office\16.0\OfficeFileCache => \Device\HarddiskVolume4\Users\local_contoso\AppData\Local\Microsoft\Office\16.0\OfficeFileCache \Device\HarddiskVolume4\OneDriveTemp\S-1-5-21-000000000-000000000-0000000000-0000000 => \Device\HarddiskVolume9\ODTemp \Device\HarddiskVolume4\$RECYCLE.BIN\S-1-5-21-000000000-000000000-0000000000-0000000 => \Device\HarddiskVolume9\PROFILE_RECYCLE.BIN Operation completed successfully! ``` -------------------------------- ### Get all Cloud Cache providers Source: https://learn.microsoft.com/en-us/fslogix/utilities/powershell/get-cloudcacheprovider This example shows how to retrieve all configured Cloud Cache providers on the system. The cmdlet returns details for each provider, including access mode, connection status, local and remote paths, and type. ```APIDOC ## Get-CloudCacheProvider ### Description Retrieves information about the Cloud Cache providers configured on the system. ### Method GET ### Endpoint /utilities/powershell/Get-CloudCacheProvider ### Parameters #### Query Parameters - **Disks** (System.Collections.Generic.List[Microsoft.FSLogix.CloudCache.File]) - Optional - The cloud cache disk (see 'Get-CloudCacheDisk'). Accepts pipeline input. - **LocalPath** (String) - Optional - The cloud cache disk local path (wildcards supported). Accepts pipeline input. - **Name** (String) - Optional - The cloud cache provider name (wildcards supported). - **UniqueId** (String) - Optional - The cloud cache provider unique identifier (wildcards supported). ### Response #### Success Response (200) - **AccessMode** (String) - The access mode of the provider (e.g., ReadWrite). - **Connected** (Boolean) - Indicates if the provider is currently connected. - **Exists** (String) - Indicates if the provider exists ('Yes' or 'No'). - **LastLockOperation** (String) - Details of the last lock operation. - **LocalPath** (String) - The local path where the cache is stored. - **RemotePath** (String) - The remote path to the storage location. - **Name** (String) - The name of the Cloud Cache provider. - **Size** (Number) - The size of the cache in bytes. - **State** (String) - The current state of the provider (e.g., Valid). - **Type** (String) - The type of the provider (e.g., Smb, AzureBlob). - **UniqueId** (String) - The unique identifier for the provider. - **Uptime** (String) - The uptime duration of the provider. - **WriteQueueLength** (Number) - The number of items in the write queue. ``` -------------------------------- ### Example Log Entry for Object-Specific Configuration Source: https://learn.microsoft.com/en-us/fslogix/how-to-configure-object-specific-settings This is an example log entry that indicates an object-specific configuration, such as VHDLocations, has been successfully read and applied for a user or group. ```text Configuration Read (REG_SZ): SOFTWARE\FSLogix\Profiles\ObjectSpecific\S-1-5-21-0000000000-0000000000-0000000000-1234\VHDLocations. Data: \\\ ``` -------------------------------- ### Example Output of frx list-redirects Source: https://learn.microsoft.com/en-us/fslogix/tutorial-configure-odfc-containers This is an example output of the 'frx list-redirects' command, showing how user profile data is redirected to ODFC containers. ```text Active redirections ------------------- \Device\HarddiskVolume4\$RECYCLE.BIN\S-1-5-21-000000000-000000000-0000000000-0000000 => \Device\HarddiskVolume6\ODFC_RECYCLE.BIN \Device\HarddiskVolume4\Users\contoso\AppData\Local\Microsoft\Outlook => \Device\HarddiskVolume6\ODFC \Device\HarddiskVolume4\Users\contoso\AppData\Roaming\Microsoft\Outlook => \Device\HarddiskVolume6\ODFCPersonalization \Device\HarddiskVolume4\Users\contoso\AppData\Local\Microsoft\OneDrive => \Device\HarddiskVolume6\OneDrive\UserMeta \Device\HarddiskVolume4\OneDriveTemp\S-1-5-21-000000000-000000000-0000000000-0000000 => \Device\HarddiskVolume6\OneDrive\ODTemp \Device\HarddiskVolume4\Users\contoso\AppData\Local\Microsoft\Office\16.0\Licensing => \Device\HarddiskVolume6\OfficeLicensing \Device\HarddiskVolume4\Users\contoso\AppData\Local\Microsoft\Office\15.0\Lync => \Device\HarddiskVolume6\Skype4B_15\User \Device\HarddiskVolume4\Users\contoso\AppData\Local\Microsoft\Office\16.0\Lync => \Device\HarddiskVolume6\Skype4B\User \Device\HarddiskVolume4\Users\contoso\AppData\Local\Microsoft\Teams => \Device\HarddiskVolume6\Teams\data Operation completed successfully! ``` -------------------------------- ### Create Ruleset with Frx Source: https://learn.microsoft.com/en-us/fslogix/utilities/frx/frx Creates a ruleset by scanning a specified application installation directory. Requires the output filename, installation directory path, and the Add/Remove Programs registry key name. ```bash frx create-ruleset -filename -install-dir -ARP-keyname ``` ```bash frx create-ruleset-name Chrome -install-dir "C:\Program Files\Google\Chrome\Application" -ARP-keyname "HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome" ``` -------------------------------- ### Example redirections.xml Configuration Source: https://learn.microsoft.com/en-us/fslogix/concepts-redirections-xml This XML configuration demonstrates how to exclude specific application folders and re-include a subfolder. The 'Copy' attribute on the Exclude element controls data handling: '3' copies data to the local disk, while '0' removes it. This example is for illustrative purposes and not for production use. ```xml AppData\Roaming\Contoso\ContosoSalesApp AppData\Local\Contoso\ContosoWebApp AppData\Local\Contoso\ContosoWebApp\Settings ``` -------------------------------- ### FSLogix SIDDirSDDL Configuration Example Source: https://learn.microsoft.com/en-us/fslogix/how-to-configure-storage-permissions Example of the SIDDirSDDL registry value configuration for FSLogix. This setting applies the specified SDDL string to create directories, ensuring correct permissions are set automatically. ```powershell Value: O:%sid%G:DUD:PAI(A;OICIIO;0x1301bf;;;%sid%)(A;OICI;FA;;;SY)(A;OICI;FA;;;S-1-5-21-3260294598-3507968424-1365985680-2602) ``` -------------------------------- ### FSLogix Versioning Example Source: https://learn.microsoft.com/en-us/fslogix/overview-release-notes Illustrates the date/time formatted versioning introduced in v3. Major releases increment the major version, and build versions follow a YYYY.MMDD.HHMMSS format. ```text Release name: 25.02 Build version: 3.25.202.4223 (3.YY.MMDD.HHMMS, _Single digit months don't have a leading 0_) ``` -------------------------------- ### frxcontext command-line syntax Source: https://learn.microsoft.com/en-us/fslogix/utilities/frxcontext/frxcontext Displays the available commands and switches for the frxcontext utility, including installation, uninstallation, and direct VHD(x) path usage. ```console frxcontext --install --uninstall --install-per-user --uninstall-per-user frxcontext ``` -------------------------------- ### frx create-ruleset Source: https://learn.microsoft.com/en-us/fslogix/utilities/frx/frx Creates a Rule Set by scanning the specified install directory. This command helps in generating configuration files for FSLogix by analyzing application installations. ```APIDOC ## frx create-ruleset ### Description Creates a Rule Set by scanning the specified install directory. ### Method Console ### Endpoint ``` frx create-ruleset -filename -install-dir -ARP-keyname ``` ### Parameters #### Required Parameters - **-filename** (path) - Specifies the name of the file to be created. - **-install-dir** (path) - Specifies the installation path of the application to be scanned. - **-ARP-keyname** (path) - Specifies the Add/Remove program registry location. ### Request Example ``` frx create-ruleset-name Chrome -install-dir "C:\Program Files\Google\Chrome\Application" -ARP-keyname "HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome" ``` ``` -------------------------------- ### FSLogix Apps Unattended Installation Options Source: https://learn.microsoft.com/en-us/fslogix/how-to-install-fslogix These command switches enable unattended and silent installation of FSLogix installers for automated use cases. Use these to control the installation process without user interaction. ```bash Command switch | Description ---|--- /install | Default product installation. /repair | Repairs a previous product installation. /uninstall | Uninstalls a previous product installation. /layout | Creates a local copy of the install bundle. /passive | Displays minimal UI and no prompts. /quiet | Displays no UI and no prompts. /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%. ``` -------------------------------- ### frx start-agent Source: https://learn.microsoft.com/en-us/fslogix/utilities/frx/frx Starts all drivers and services that comprise the FSLogix agent. ```APIDOC ## frx start-agent ### Description Starts all drivers and services comprising the agent ### Method Console Command ### Endpoint N/A ### Parameters N/A ### Request Example ``` frx start-agent ``` ``` -------------------------------- ### Navigate to FSLogix Apps Directory Source: https://learn.microsoft.com/en-us/fslogix/how-to-configure-odfc-containers Change the current directory to the FSLogix Apps installation path to run FSLogix commands. ```cmd C:\Program Files\FSLogix\Apps ``` -------------------------------- ### Get all Cloud Cache Providers Source: https://learn.microsoft.com/en-us/fslogix/utilities/powershell/get-cloudcacheprovider Run this cmdlet with no parameters to retrieve all configured Cloud Cache providers for all signed-in users. This provides a comprehensive overview of the available cache providers. ```PowerShell PS C:\> Get-CloudCacheProvider ``` -------------------------------- ### Configure RedirXMLSourceFolder (Registry) Source: https://learn.microsoft.com/en-us/fslogix/concepts-configuration-examples Example of setting the RedirXMLSourceFolder registry value. This specifies a UNC path to a folder containing custom redirection XML files. ```powershell Set-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles\" -Name RedirXMLSourceFolder -Value "\\\" ``` -------------------------------- ### Configure Object-Specific VHDLocations (Registry) Source: https://learn.microsoft.com/en-us/fslogix/concepts-configuration-examples Example of configuring VHDLocations for a specific user or group SID. This allows for unique storage locations based on user identity. ```powershell Set-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles\ObjectSpecific\S-0-0-00-000000000-0000000000-000000000-1234\" -Name VHDLocations -Value "\\\" ``` -------------------------------- ### Get Cloud Cache providers for a specific disk Source: https://learn.microsoft.com/en-us/fslogix/utilities/powershell/get-cloudcacheprovider This example demonstrates how to filter Cloud Cache providers by piping the output of Get-CloudCacheDisk to Get-CloudCacheProvider. This allows you to retrieve providers associated with a specific disk, identified by its ID. ```APIDOC ## Get-CloudCacheProvider with Get-CloudCacheDisk ### Description Retrieves Cloud Cache providers associated with a specific Cloud Cache disk, identified by its ID. ### Method GET ### Endpoint /utilities/powershell/Get-CloudCacheDisk/{Id}/Get-CloudCacheProvider ### Parameters #### Path Parameters - **Id** (Number) - Required - The ID of the Cloud Cache disk. #### Query Parameters - **Disks** (System.Collections.Generic.List[Microsoft.FSLogix.CloudCache.File]) - Optional - The cloud cache disk (see 'Get-CloudCacheDisk'). Accepts pipeline input. - **LocalPath** (String) - Optional - The cloud cache disk local path (wildcards supported). Accepts pipeline input. - **Name** (String) - Optional - The cloud cache provider name (wildcards supported). - **UniqueId** (String) - Optional - The cloud cache provider unique identifier (wildcards supported). ### Response #### Success Response (200) - **AccessMode** (String) - The access mode of the provider (e.g., ReadWrite). - **Connected** (Boolean) - Indicates if the provider is currently connected. - **Exists** (String) - Indicates if the provider exists ('Yes' or 'No'). - **LastLockOperation** (String) - Details of the last lock operation. - **LocalPath** (String) - The local path where the cache is stored. - **RemotePath** (String) - The remote path to the storage location. - **Name** (String) - The name of the Cloud Cache provider. - **Size** (Number) - The size of the cache in bytes. - **State** (String) - The current state of the provider (e.g., Valid). - **Type** (String) - The type of the provider (e.g., Smb, AzureBlob). - **UniqueId** (String) - The unique identifier for the provider. - **Uptime** (String) - The uptime duration of the provider. - **WriteQueueLength** (Number) - The number of items in the write queue. ``` -------------------------------- ### Get Cloud Cache Providers for a specific Disk ID Source: https://learn.microsoft.com/en-us/fslogix/utilities/powershell/get-cloudcacheprovider Use this example to filter Cloud Cache providers associated with a specific Cloud Cache disk ID. It pipes the output of Get-CloudCacheDisk to Get-CloudCacheProvider for targeted results. ```PowerShell PS C:\> Get-CloudCacheDisk -Id 25 | Get-CloudCacheProvider ``` -------------------------------- ### Configure Service Startup Type with PowerShell Source: https://learn.microsoft.com/en-us/fslogix/troubleshooting-vhd-disk-compaction Use this PowerShell command to set the startup type for the 'Optimize Drives' and 'Microsoft Storage Spaces SMP' services to Manual. This is required for VHD Disk Compaction to function correctly. ```powershell Set-Service defragsvc -StartupType Manual Set-Service smphost -StartupType Manual ``` -------------------------------- ### Configure Multiple VHD Locations (Registry) Source: https://learn.microsoft.com/en-us/fslogix/concepts-configuration-examples Example of setting multiple VHD locations using the registry. This allows FSLogix to attempt to create or attach a user's container from a list of available UNC paths. ```powershell Set-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles\" -Name VHDLocations -Value "\\.file.core.windows.net\;\\.file.core.windows.net\" ``` -------------------------------- ### Create VHD/VHDX with frx create-vhd Source: https://learn.microsoft.com/en-us/fslogix/utilities/frx/frx Use this command to create and format a new VHD or VHDX file. By default, it creates a 30 GB dynamically sized disk. ```console frx create-vhd -filename -size-mbs -vhdx-sector-size -dynamic <1 or 0> -src-parent -label ``` ```console frx create-vhd -filename C:\Profile.vhd ``` -------------------------------- ### Get Cloud Cache Disk (Default) Source: https://learn.microsoft.com/en-us/fslogix/utilities/powershell/get-cloudcachedisk Shows all registered disks when using ProfileType 0 (direct attach). ```PowerShell Get-CloudCacheDisk ``` -------------------------------- ### Begin Profile Edit with frx begin-edit-profile Source: https://learn.microsoft.com/en-us/fslogix/utilities/frx/frx Attaches a VHD or VHDX and its registry hive, enabling viewing and editing of profile contents. ```console frx begin-edit-profile -filename ``` ```console frx begin-edit-profile -filename C:\Profile.vhd ``` -------------------------------- ### Get Cloud Cache Provider by Name Source: https://learn.microsoft.com/en-us/fslogix/utilities/powershell/get-cloudcacheprovider Retrieves Cloud Cache provider information by its name, which is specified in the CCDLocations connection string. ```powershell Get-CloudCacheProvider [-Name ] [] ``` -------------------------------- ### Get Cloud Cache Provider by LocalPath Source: https://learn.microsoft.com/en-us/fslogix/utilities/powershell/get-cloudcacheprovider Retrieves Cloud Cache provider information using the local path. This is the default method. ```powershell Get-CloudCacheProvider [-LocalPath ] [] ``` -------------------------------- ### List Rules with Frx Source: https://learn.microsoft.com/en-us/fslogix/utilities/frx/frx Lists all rules currently loaded in the system. Use the '-verbose' option to display additional information about each rule. ```bash frx list-rules -verbose ``` -------------------------------- ### Warning Codes in FSLogix Profile Logs Source: https://learn.microsoft.com/en-us/fslogix/troubleshooting-error-codes Examples of warning codes in FSLogix profile logs, indicating non-critical issues during FSLogix operations. ```log [07:31:01.428][tid:00000d30.00004c04][WARN: 00000005] Error removing directory: \\fslfileserver\profiles\jdoe-S-1-2-34-000000000-000000000-0000000000-00000000-test (Access is denied.) [11:35:33.734][tid:00000d30.00004f38][WARN: 00000002] Failed to query size of VHD(x): \\fslfileserver\profiles\jdoe-S-1-2-34-000000000-000000000-0000000000-00000000\Profile_jdoe.vhdx (The system cannot find the file specified.) ``` -------------------------------- ### Import Profile Configuration with frx import-profilecfg Source: https://learn.microsoft.com/en-us/fslogix/utilities/frx/frx Imports profile configuration settings and group memberships from a file previously created with export-profilecfg. ```console frx import-profilecfg -filename ``` ```console frx import-profilecfg -filename my_configuration.frxconfig ``` -------------------------------- ### Migrate VHD with frx migrate-vhd Source: https://learn.microsoft.com/en-us/fslogix/utilities/frx/frx Creates, formats a VHD or VHDX, and mirrors the contents of a source VHD. Defaults to a 30 GB dynamically sized disk. ```console frx migrate-vhd -src -dest -size-mbs -vhdx-sector-size -dynamic <0 or 1> ``` ```console frx migrate-vhd -src C:\old\Profile.vhd -dest C:\new\Profile.vhd ``` -------------------------------- ### Reason Codes in FSLogix Profile Logs Source: https://learn.microsoft.com/en-us/fslogix/troubleshooting-error-codes Examples of reason codes in FSLogix profile logs, providing further clarification for normal status codes. ```log [07:26:39.015][tid:00000d30.000044b4][INFO] Volume name: \\?\Volume{aaaabbbb-0000-cccc-1111-dddd2222eeee}\ [07:26:39.015][tid:00000d30.000044b4][INFO] Reason set to 0: The container is attached [07:26:39.015][tid:00000d30.000044b4][INFO] queryFreeDiskSpace returning after 0 milliseconds ``` -------------------------------- ### Configure CCDLocations using SMB Source: https://learn.microsoft.com/en-us/fslogix/how-to-disable-vhd-disk-compaction Use this format to specify SMB as the storage type for Cloud Cache remote containers. Ensure the connection string uses the correct UNC path. ```powershell type=smb,name="SMB PROVIDER 1",connectionString=\\\ ```