A couple of weeks ago I was attending a presentation from FSLogix about their App and Profile Containers. One of the solutions is called the Office 365 Container. In short, this is a solution for the Cached Exchanged Mode (CEM) problem in stateless (or non-persistent) virtual workspace sessions.
In this blogpost I will explain how this solution works, what problem it solves and how it’s implemented!
Cached Exchange Mode (CEM)
Let me first explain Cached Exchange Mode (CEM) for Outlook.
With CEM enabled, the end-user will have a better experience when using an Exchange account in Outlook. In this mode, a copy of the mailbox is saved locally to disk as an .OST file. This copy provides quick access to your data, and it’s frequently updated with the server that runs Microsoft Exchange. If for some reason there’s a connection problem to the Exchange server, the end-user might not even notice this and still will be able to read their emails and do most of the basic tasks.
The disablement of CEM means the end-user is working in Online Mode. Online Mode works by using information directly from the server and it requires a continues and stable connection to the Exchange server. Mailbox data is only cached in memory and never written to disk. If there is a network interruption, the end-user will notice this immediately. For customers who have a local Exchange server the network availability might not be a problem, but more and more customers are moving to Office 365. The requirement to have a stable connection to the Exchange server is now harder to manage. Also, when having a connection, the end-user can receive a real poor and slow performance.
Stateless virtual workspace sessions
As you might know, a stateless (or non-persistent) desktop is a virtual desktop that does not maintain user data, personalized settings, or any other changes made by the end user. Each time the end-user logs on, they get a fresh, generic virtual desktop image.
With this in mind, the enablement of CEM means the .OST file is re-downloaded every time you log to a new session. This is not an option. Redirecting the .OST file to a network drive might work for really small environments, but for Enterprise environments this is not a supported solution. The reason is there will be a higher network and storage performance impact, as the amount of IOPS needed for the file server will increase because the number of read/writes actions to the .OST file for each user will be significant. Due to the large amount of read/writes, there’s also the chance for .OST file corruption.
Capturing the .OST file location with an UEM solution will not work because this will destroy the end-user experience regarding long logon times.
As discussed earlier, enabling Online Mode can result in very poor and slow performance for the end-user. A stable connection is also harder to manage when working with off-premise solutions.
FSLogix Office365 Container
So what’s the best way to configure your Outlook settings for stateless virtual workspace sessions?
With FSLogix, we can enable CEM and still preserve cached Outlook settings across stateless virtual workspace sessions. Using a special filter driver, the FSLogix Agent will redirect the cached Outlook file to a .VHD(X) file on a remote location for each user.
Instead of using file-level access like normal .OST file redirection, the FSLogix data containers are operating at a block-level. This way, the process for mounting a VHD(X) files for each user provides much more scalability and performance.
Install FSLogix Agent
The installation is very easy, there are two steps needed:
- Install the FSLogix Agent in your Golden Image
- Configure a few GPO settings
FSLogix delivers a really simple installer. I used the command-line “Setup.exe /quiet /norestart”. After installation is completed, the Agent is installed in C:\Program Files\FSLogix\Apps
See image below for all the command-line options.
During the Agent install, there are four FSLogix local groups created:
- FSLogix ODFC Exclude List: Used for the Outlook 365 container. By default, this local group has no group members.
- FSLogix ODFC Include List: Used for the Outlook 365 container. By default, the “Everyone” group is added to this local group.
- FSLogix Profile Exclude and Include List: The FSLogix Profile groups are for the Profile Container solution, which is a different container solution by FSLogix and is not discussed in this blog.
These ODFC local groups will enable you to filter certain users or AD group members to Include or Exclude from the FSLogix Office365 Container configuration.
FSLogix GPO settings
FSLogix allows you to manage the Office365 Container settings with a Group Policy ADMX file. Just copy the following two files to the GPO Central Store:
- fslogixODFC.admx to \\%DC%\sysvol\%DomainName%\Policies\PolicyDefinitions
- fslogixODFC.adml to \\%DC%\sysvol\%DomainName%\Policies\PolicyDefinitions\EN-US
After these files are copied, open the Group Policy Management Editor.
Go to Computer Configuration\Policies\Administrative Templates\FSLogix\Office 365 Container and configure the following three options to get started.
- Enabled -> Enable this option
- Sync OST to VHD -> Enable this option
- VHD Location -> Configure a file share for the VHD files, for example: \\fileserver\container-share
The Group Policy ADMX file also contains Advanced and VHD Policy settings. All the settings are explained below:
- No containing folder: When checked, the VHD(X) file is placed and used in the root VHDLocation rather than in a SID directory under VHDLocation.
- Number of milliseconds to wait for volume arrival: Specifies the number of milliseconds to wait for the volume to be attached by the system. Default is 20,000 (20 seconds).
- Outlook folder path: Specifies the path to the user’s Outlook data folder. Default is “%userprofile%\AppData\Local\Microsoft\Outlook”.
- Outlook Executable Path: Specifies the path to Outlook.exe
- Volume Re-attach Retry Count: When a VHD/X volume is detached unexpectedly, the FSLogix system will attempt to re-attach the volume. This value specifies how many times to retry.
- Volume Re-attach Retry Interval: When a VHD/X volume is detached unexpectedly, the FSLogix system will attempt to re-attach the volume. This value specifies the number of seconds to wait between retries.
- Swap directory name components: When checked causes new containing directories to be named with the user name first followed by the SID
- Full VHD(X) allocation: If checked, VHD(X)s that are auto-created will be fully allocated. If not checked, VHD(X)s will be dynamically allocated (VHD(X) file size will grow as data is added to the VHD(X)). Defaults to Dynamic.
- Size in MBs: Specify the size for auto-created VHD(X) files. Default is 30,000 (30 GBs).
- VHDX Sector Size: This setting is only applicable if the virtual disk type is VHDX. Options are 512 or 4096.
- VHD Access Type: Controls whether the VHD/X file should be accessed directly or whether a difference disk should be used. Options are Diff disk local, Diff disk network and Normal.
- Virtual Disk Type: Specifies the type of virtual disk to auto-create. Options are VHD or VHDX.
When above settings are configured, and the GPO is applied on the virtual desktop you can confirm these policy settings are applied by opening the Registry. The FSLogix policy settings are shown in HKLM\Software\Policies\FSLogix\ODFC
If everything is installed and configured, let’s check our container share to see if the .VHD(X) is created when we open Outlook!
By default, for each user there will be a separate folder created %User-SID%_%Username%. This folder contains the .VHD(X) file for each end-user.
Please note, we can control the folder and VHD(X) settings in the Advanced and VHD Settings GPO as mentioned earlier.
Office 365 Container Log files
There are basically two options for troubleshooting the Office 365 Container.
- Use FRXTray.exe. This is an executable (no installer) that will launch a tray icon. When opening the tray icon, you will see the FSLogix Profile Status. Don’t worry about the “inactive” message, because we aren’t using the Profile Container solution.Click the ODFC menu option to see the log file for the Office 365 Container.
- Enable the Office 365 Container Log file option. Open the registry, browse to HKLM\Software\FSLogix\Logging\ODFC
- 0 = Logging Disabled (Default option)
- 1 = Logging Enabled
When set, browse to %programdata%\FSLogix\Logs\ODFC and notice the created ODFC log file.
In my case, we see a successful deployment in the log file!
The FSLogix 365 Container is a very easy-to-use solution for solving the Cached Exchange Mode problem for stateless virtual workspace sessions. It will work perfectly together with an already existing UEM solution. Implementation is simple; just install the Agent in your Gold Image, configure the GPO settings and start testing!