UE-V is such a simple yet elegant solution for user state management, it is something anyone can easily get up and running with minimal effort and planning required. In this blog post I am going to share everything you need to get going by explaining the simple mechanics that form the foundation of this great product.
Its almost overkill to call it infrastructure but UE-V utilises two file shares for its backend, there is no server installation, service or SQL requirement, just a simple machine hosting two folder shares.
Settings Template Catalog Path
The first folder is called the settings template catalog path and this contains .xml templates for settings we want to roam. Creating these templates is very simple, click here to read more about using the UE-V Generator. Once you have created a template you simply copy and paste them into location for the client to find them on the next poll. Don’t forget also many templates are already in-built with UE-V out the box including Windows Settings and some common Windows features and software such as Internet Explorer, Notepad and Microsoft Office.
Settings Storage Path
The second folder its your settings storage path, this is where your settings packages which contain captured changes to roam will be created and updated. Settings are stored in a .pkgx format and can be read by either running a export via PowerShell or by renaming the OPC based file to a .zip, there is more info on that here.
The Client Agent
UE-V leverages an agent installation which requires PowerShell 3.0 and .NET Framework 4.0 and runs a service called User Experience Virtualization service. There are some key settings for the client which can be exposed via registry or running Get-UevConfiguration from PowerShell.
The two main settings to configure are the SettingsStorage Path and the SettingsTemplateCatalogPath, these should be set to the UNC paths described earlier in infrastructure.
The third setting which you will need to give some consideration is the SyncMethod of which there are two:
This default setting will cache changes locally and sync them back to the settings storage location whenever the scheduled task is triggered, by default every 30 minutes. This setting is ideal for standard desktops and laptops and there are also timeouts provisioned to ensure applications launches or logon itself are not delayed for a prolonged time in the event a synchronisation cannot be completed.
Also referred to as online, this method means settings are saved directly to the server and it is ideal for always connected datacentre environments such as VDI or RDS. The benefit of this method is settings will roam in real time however in the event the share is unavailable both apps and OS will wait indefinitely meaning there is potential for extensive delays.
As mentioned, scheduled tasks are what the client agent utilises for sync depending on what sync provider we chose. It also uses scheduled tasks to sync templates from the template catalog share down to the local machine, by default this is daily (randomised by an hour) and at system start-up.
Company Settings Centre
Besides the admin configurable scheduled task for sync, the Company Settings Centre offers a way for user initiated syncs to take place by opening it up and click sync now, the user has to ability to select exactly which settings they wish to sync. Of course the Sync Now function is only available when using the Sync Provider as a sync method, if it is none then we are always using the latest settings anyway.
The Group Policy Template
A group policy template is available for MDOP 2013 R2 which includes settings for the UE-V 2.0:
All the key settings are available, including the key configurations for our two folder share paths and also the option to roam Windows settings. Not only that but we can also explore all the default applications we can roam out of the box. The Microsoft Office 2013 template is also available for download here.
So now we understand all the components that make up a UE-V environment, lets recap on some of the core mechanics and workflows that take place.