NVIDIA vGPU Upgrade 13 to 16 Control Panel Fix using VMware Dynamic Environment Manager


After upgrading some VMware Horizon setups using NVIDIA vGPU from vGPU 13.9 to 16.3, I discovered that the NVIDIA Control Panel would not open within the Windows desktop. While troubleshooting, it became clear that only users who had previously used NVIDIA ControlPanel version 13 were affected. Users who never opened the v13 ControlPanel were able to open the v16 ControlPanel.


Root Cause:

It is likely that user profile components (AppData or HKCU registry settings) from version 13 are incompatible with version 16.

The main difference between the Control Panel in version 13 and 16 is the Windows application type. Version 13 only used win32 while v16 components rely partly on Windows Modern UI technology.



One solution would be to delete user profiles when upgrading to v16. This would be the solution that causes a bad user experience.

A better solution is to configure a logon task that re-registers the Modern UI component of the NVIDIA Control Panel using a DEM task or GPO.

Dynamic Environment Manager (DEM) solution:

In DEM create a Logon Task:

Configure the following command:

powershell.exe -Command "Add-AppxPackage -DisableDevelopmentMode -Register 'C:\Program Files\WindowsApps\NVIDIACorp.NVIDIAControlPanel_8.1.964.0_x64__56jybvy8sckqj\AppXManifest.xml'"

It is ok to use Run Once as the control panel needs to fixed only once. If users switch between vGPU 13 and 16 by using different pools (Test, Prod, Staging, …), the command should be executed every time when a user logs on to a vGPU 16 desktop pool. You may configure Conditions à Horizon Client Property à Pool Name to achieve this.


GPO Solution:

Configure a Powershell logon script:


The script should execute the following command to register the ControlPanel:

Add-AppxPackage -DisableDevelopmentMode -Register 'C:\Program Files\WindowsApps\NVIDIACorp.NVIDIAControlPanel_8.1.964.0_x64__56jybvy8sckqj\AppXManifest.xml'

The GPO should be linked to a OU which contains virtual desktops running on vGPU 16. After the migration is done and users have logged on, the GPO can be disabled as the fix is only necessary once.