In Windows XP, one was able to overwrite the Default users NTUSER.DAT with whatever one wanted and it would pretty much work okay. This meant you could just set “Adjust for best performance” in the GUI with one user, and then overwrite the default NTUSER.DAT with this user’s modified verison. This changed with Windows 7, and it hasn’t been that simple since. Getting this setting to apply correctly in a Windows 7, linked clone/virtual desktop environment is far more complex than it should be.
VMware recommends this setting get applied as a best practice, and even offers a Windows optimization script that attempts (unsuccessfully) to pull it off. As you are reading this, I can fairly assume you have noted your inability to make this change in a master image and have it affect your end-user. I can also guess that you have found a number of ways to use the registry to untick boxes in a GUI without actually applying the changes.
The standard responses I came across on various forums and articles pointed to a series of registry settings (UserPreferenceMask being the most commonly cited) which might have worked for Windows XP (I honestly never checked), but which fail for Windows 7. While the information I found enabled me to make the “Use tools to improve performance” dialog simply look the way I wanted, I would have to actually click “Apply” before the changes would go into effect every time I got a desktop.
As it turns out, you need to touch an entire array of registry keys to adjust for best performance. A number of which are completely opaque and, at least for my part, indecipherable. You can hive these all out individually into the default user’s NTUSER.DAT file to enact the change, or if you are blessed enough to have AppSense at your disposal, you can create a node to run at Login and achieve the same effect.
Full disclosure: I am not entirely certain what some of these are actually doing, or whether Microsoft would advise against making these changes. I can, however, say that we have applied them in numerous environments without issue or complaint. Finally, I have not found any other means of setting the “adjust for best performance” option for an end-user without explicitly telling them to make the changes himself.
As with all registry hacks, use at your own risk, and don’t blame me if you manage to break something.
Adjust for Best Performance Registry Settings
You can find the required registry values here (Pastebin).