By Andreas Nick on Tuesday, November 03, 2020
Category: App-V

Hidden App-V Registry Keys

Now since 2004 I have been implementing projects with Microsoft App-V (then Softgrid) and yet the product surprises me again and again with unknown elements. After the M.A.D. Day 2019 we had a TroubleShooting Session with Sebastian Gernert. We noticed that App-V always accesses the registration key "HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\". It was on my todo list for a long time to analyze this key once. Now I finally got around to it. At first we created a key "Disabled" and already a number of subkeys like "Integration", "Virtual Fonts", "Virtual Services" etc. appeared in ProcMon.
So the App-V client has some hidden registry keys to disable the different subsystems globally and this can be very useful.

Some App-V packages come with fonts and usually you don't want to have them. Why not save yourself some work and just disable the whole subsystem globally? The same applies to the services subsystem. If the "Virtual Services" switch is set to REG_DWORD #1, services in the App-V package are no longer virtualized. For example, the following call shows no more virtualized services in the App-V package:

Services.msc /appvve:PackageID_Version_ID

Services these are usually not needed and save us the effort to delete them from the packages. Additionally, disabling some subsystems means a small performance boost when starting applications that use such subsystems.
The keys can be used for troubleshooting or to quickly test if a certain subsystem is necessary for an App-V application.
The registration keys are only effective after restarting the App-V service. This can be done after setting a key with the following PowerShell command:

Restart Service AppVClient

Registry keys

Integration REG_DWORD=1: Responsible for created shortcuts and the integration point in the user profile. If the key is active, no junction is created for a package under "%localappdata%\Microsoft\AppV\Client\lntegration" or the global integration point. The package will still work. For example, the switch is good for a publication on a terminal server where no icon should be created and the start is done for example via a Citrix or remote app mechanism.

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\lntegration

Virtual Fonts REG_DWORD=1: The Virtual Fonts key disables the fonts subsystem with which a virtual application can use additional fonts from the package. We just had a problem with the App-V Edge package. There the subsystem had to be deactivated. Why not just disable everything globally?

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Virtual Fonts

Just-in-timeVirtualization REG_DWORD=1: Responsible for ActiveX and browser objects

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Just-in-time Virtualization

Virtual Registry REG_DWORD=1: Disables the registration in the App-V packages

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Virtual Registry

Virtual Filesystem REG_DWORD=1: Disables the VFS for all packages It is always exciting to see which applications work nevertheless.

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Virtual Filesystem

Virtual COM REG_DWORD=1: Globally disables the App-V Com subsystem

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Virtual COM

Virtual Objects REG_DWORD=1 Disables virtualization of global objects

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Virtual Objects

Virtual Environment REG_DWORD=1: disables management of environment variables in the package

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Virtual Environment

Registry Staging REG_DWORD=1: This is the mechanism used in App-V connection groups to stack several regiostats on top of each other

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Registry Staging

Virtual Services REG_DWORD=1: Here you can globally disable services in the App-V package. If the switch is set back to "0", the services are available again after restarting the "AppVCLient" service. So nothing is permanently deleted.

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Virtual Services

Virtual Shell REG_DWORD=1: Disable the shell extensions

HKLM\SOFTWARE\Microsoft\AppV\Subsystem\Disabled\Virtual Shell

As I said, I was very surprised that such a useful thing exists. Is there a need for an ADMX file? Please write me something about your experience with these registration keys. Where can you optimize? What performance boost does the global deactivation bring?


Related Posts

Leave Comments