Feb 2, 2016

App-V 5.x Writing to the native registry

Occasionally you may come across a requirement for an App-V application to write to the native registry (i.e. that of the desktop which the App-V client is installed on). By default all App-V applications write their registry keys and values to the virtual registry specific to that published App-V.


That same virtual registry may contain registry keys created during the installation and sequencing of an application. It is possible to exclude certain registry paths during the sequencing, but any new keys will still be created in the virtual registry at exection time.

An App-V application can see both the virtual registry and the native registry (also known as merge).

If you require the App-V application to read from the native registry, App-V already does this by default, it sees a merged view of both native and virtual registry.

However if you require the App-V application to write to the native registry instead of the virtual registry, then that requires an exclusion on the App-V client.

The following reg key in App-V 5.x allows administrators to specify registry paths that App-V packages can write to (instead of the virtual registry).

HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Subsystem\VirtualRegistry
PassThroughPaths (REG_MULTI_SZ)
 
However note that this key applies to ALL App-V packages published to that computer, you cannot be specific. So all App-V packages will then be able write to that path. So you want to keep these specific and to a minimum where possible.




For reference by default the following native registry paths can be written to by all App-V packages:

HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
HKEY_LOCAL_MACHINE\SOFTWARE\Policies
HKEY_CURRENT_USER\SOFTWARE\Policies

If you require to add an additional path it should be entered on a seperate line. In my case I was required to add the following key to allow an App-V application to perform some very specific integration with Internet Explorer for a bespoke application vendor.
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main

To deploy this to all computers in the domain a simple group policy preference was created to replace the reg key.

Note: Ensure you include the defaults plus your additional reg path.




Key: HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Subsystem\VirtualRegistry

Value: PassThroughPaths (REG_MULTI_SZ)

Value Data:

HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
HKEY_LOCAL_MACHINE\SOFTWARE\Policies
HKEY_CURRENT_USER\SOFTWARE\Policies

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main

Thats all there is to it, its pretty strightforward once you understand it. I don't expect the native registry to be written to by many applications and it's virtual and native application integration that will drive the need for the use of the pass through reg paths.






Post a Comment

 
TECH SUPPORT © 2012 - Designed by INFOSBIRD