Is there a way to prevent an application from detecting a registry entry when it launches, but still make it visible to other applications?
The situation is, my company is migrating to M365 and we are phasing in Teams. When Teams launches for the first time for a user, it searches for HKLM\Software\Citrix\PortICA in order to determine if the system is a VDI or not. If it detects this, certain features are limited in Teams and there are performance issues as well. The setting for VDI mode is stored in a SQLite DB (AppData...Teams\Cookies) which can be deleted, and them Teams runs normally, or (oddly enough) the user can log off/on to Teams and that also fixes the issue.
What I want is a clean solution so new clients don't start Teams in VDI Mode.
The problem is, this registry entry is required by another application we use, and if it is deleted, it is automatically restored anytime between immediately after, up to 30 minutes later.
If Teams can perform it's first launch without detecting this registry entry, it runs normal. Is this possible?
So far I have only seen through Process Monitor that Teams searches for this key when it has not yet been run on a machine. I have also seen the other app restore the reg entry once it was deleted, and through several tests, determined that it sometimes comes back within seconds, and other times it takes 30 minutes.
If I delete the key and run Teams before it is restored, Teams runs ok.
The only other option I have to resolve this issue, is to copy a preconfigured settings.json file to the AppData...Teams folder before the user runs Teams. This seems messy to me, but it is the best solution I have found so far for this rare issue.