Windows Autopilot

Using UE-V with Windows Autopilot

When we talk about what it takes to get a device ready for productive use, we generally include OneDrive for Business for ensuring that files and folders are automatically synced to the cloud and accessible from every one of the user’s devices.  And some settings (e.g. background image, UWP app settings) can automatically roam through the use of Enterprise State Roaming.

But what about Win32 app settings?  Well, that’s really what User Experience Virtualization, or UE-V for short, was designed for.  You can tell UE-V what apps to monitor, what settings to roam, and where to place the resulting settings data.

So, let’s assume that you are using Windows Autopilot with Azure AD Join and Intune.  How do you enable UE-V?  While you could probably do most of it through Administrative Templates in Intune, I think it’s just as easy to script it all with PowerShell.  And since PowerShell scripts aren’t yet blocked during the Enrollment Status Page, it’s simple enough to embed the scripts into Windows Installer MSI files.

Fortunately, I already have a sample Wix Installer package on GitHub (see more about that in a previous blog post), so I added additional logic to that.  Just drop in the UE-V templates that you want, compile the MSI, and go.

I already mentioned the biggest headache with UE-V:  You have to tell it what apps to monitor and what settings to roam.  Fortunately, there are a number of sample UE-V templates available that do just that.  I suggest starting with one:

I’ve added that one into the GitHub project by default, so if you just build the MSI as-is (not recommended unless you want Contoso branding – please make modifications) you’ll get Office settings roaming.

Beyond that, you’re on your own.  You can also author your own if you like; see the documentation for how to do that.

So what does the PowerShell script in the Autopilot Branding package need to do?  Here’s the complete logic:

# STEP 13: Enable UE-V
Set-UevConfiguration -Computer -SettingsStoragePath “%OneDriveCommercial%\UEV” -SyncMethod External -DisableWaitForSyncOnLogon
Get-ChildItem “$($installFolder)UEV” -Filter *.xml | % {
     Write-Host “Registering template: $($_.FullName)”
     Register-UevTemplate -Path $_.FullName

It enables UE-V, configures UE-V to tell it to put the settings into a UEV folder that OneDrive for Business will sync, and then it registers any UE-V templates that were included.  (I did verify that this picks up the custom dictionary for Office, and it roams as expected between machines.)

Categories: Windows Autopilot

Tagged as:

2 replies »

  1. Hello Mr Niehaus, is this a one time import of the ue-v templates that wrapped in the msi? How would new ue-v templates be deployed in this scenario , i don’t see a central store for ue-v templates and a new register.