16 Nov 2012

Microsoft UEV 1.0 uncovered (part one)

Microsoft UEV could be called as “just another profile management solution”. I agree it’s a bit late for MS to publish the solution as there are vendors like Appsense or RES, which focus on user virtualization and user workspace management since many years with success. In the meantime UEV can be a value add for customers which think traditional roaming profile just suck, but don’t want/can spend a fortune for a high end solution… and… It’s included in MDOP 2012. For an overview about UEV I’d like to refer to a geek mate of mine, Helge Klein. Find his article here.

I wanted to dig a bit deeper and find out how UEV is working under the hood.

Disclaimer:
At the time I wrote this article I did not find any official documentation on the application architecture of UEV 1.0. All stuff I’m sharing is based on own reverse engineering and may not be 100% correct.

Components involved

Component Description
Microsoft.Uev.AgentDriver.sys File System Filter Driver
AgentService.exe UEV Agent Core Service
UevTrayApp.exe
mavinject64.exe Usermode process launched by AgentService.exe which Injects into application start / stop sequence. It reads settings from the package file at startup and injects them into the real registry. When the application is shut down it injects again and reads from the real registry to save the settings in the package file.
mavinject32.exe Same as mavinject64.exe but for 32-bit processes.
Microsoft.Uev.AppAgent.dll
ApplicationXXX.xml XML Application Settings Template containing HKCU Keys and Folders from User Profile to capture
ApplicationXXX.pkgx Binary Application Settings Package File containing the settings. It can be extracted to plain XML by using the PS CMDLETExport-UevPackage

 

Service Architecture

 

Settings that are captured

  • HKCU Registry Hive
  • Folders and Files in %USERPROFILE%

 

 

How to exclude / include file types

Currently UEV only includes an exclusion filter for file types. To edit or add additional excluded file types you have to edit the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\UEV\Agent\Configuration\ExcludedFileTypes

Unfortunately I didn’t see any possibility to manage the exclusions centrally.

 

 

What about App-V?

For more information about App-V service and process inclusions refer to this post:

http://blogs.technet.com/b/gladiatormsft/archive/2012/08/01/app-v-4-6-using-service-and-process-inclusions.aspx

 

 

Current Limitations

  • The UEV Agent is not able to capture files and folders outside the %USERPROFILE% directory
  • Restoring of application settings to initial values across multiple machines is not possible because the initial settings are stored under:
    %USERPROFILE%\APPDATA\Local\Microsoft\UEV\%COMPUTERNAME%\TemplateName\
  • There is no history of the settings to roll them back to a certain date

###

UEV Resources

UEV Agent Registry Settings
http://support.microsoft.com/kb/2770042

UEV on Technet
http://technet.microsoft.com/en-us/library/jj680015.aspx

Installing UEV Group Policy Templates
http://technet.microsoft.com/en-us/library/jj679980.aspx

Managing UE-V 1.0 Settings Location Templates Using PowerShell
http://technet.microsoft.com/en-us/library/jj679987.aspx

UEV Configuration Template Gallery
http://gallery.technet.microsoft.com/site/search?f[0].Type=RootCategory&f[0].Value=UE-V

How To Enable Debug Logging in Microsoft User Experience Virtualization (UE-V)
http://support.microsoft.com/kb/2782997