This is a bizarre issue that has happened on multiple occasions with Windows 2012 servers in a Remote Desktop Collection. Out of nowhere, the screen colors go haywire. It seems somehow the “Windows Basic” color scheme gets corrupted. Black text becomes yellow text. White backgrounds become black backgrounds. The right-hand scroll bar becomes black with white outline. And in some cases white text will replace black text on a white background, rendering the window contents invisible. Here are a several screenshots:
In the above example, yellow text on white background on the left pane. White and yellow text on black background on the right pane along with a green Apply button. Lovely! Normally this entire window should be a white background and all text should be either black or dark blue. Like this:
See, now that’s better! Here’s another:
Ugh, what the hell am I supposed to do with that?! As you can see, white text on white background, except for when you click on an item. And of course the menu is white text on black. No good.
So, you’d think all you need to do is go to the control panel and change the color scheme, right? You’d be wrong. Let’s head there now. Go to Control Panel | Display | Color and Appearance (or Change windows colors). By default, the color scheme is set to Windows Basic and it says “This page is not available in this edition of Windows.” Again, lovely. OK, so there are a few options in the Color scheme drop down menu.
High Contrast #1
High Contrast #2
High Contrast Black
High Contrast White
Sure, you can select one of the other Color schemes and that makes things better. But, because this is a remote desktop server in a remote desktop collection, we want the experience to be the same on all servers. So, this really isn’t a fix.
How do we get back to the default color scheme? There are two possible solutions that I have found. Solution #1 seems to work best, but I suggest applying both solutions to cover all the bases.
(Most Likely To Work For All Users)
Change the default theme via registry push.
Note: These instructions assume you will run Group Policy Management from a different server than the server affected by the corrupted color scheme. If its the same server, you can skip steps 3 and 4.
1. On the server that has the color scheme problem, open regedit and then go to the following registry key:
2. If the color scheme is corrupted on this server (and for this user), then the DllName string should have a value of “%SystemRoot%\resources\Themes\Aero\aerolite.msstyles”. Change this value to:
3. Right-click the ThemeManager key and choose Export. Browse to a desired location, type a file name, and click Save.
4. On the server where you will run Group Policy Management, import the registry file you just exported in step 3 by browsing to it in Windows Explorer and double-clicking it.
Note: To play it safe, you might want to note the values of the ThemeManager key on this server before importing the registry file. If this server doesn’t have a ThemeManager key, you should be good to go.
5. (On a server with the modified DllName string) Fire up Group Policy Management for your Active Directory domain and edit an existing group policy (or create a new one) that applies to all servers affected (or that could be affected) by this color scheme problem.
6. Go to User Configuration | Preferences | Windows Settings | Registry
7. Right-click Registry and choose New | Registry Item
8. Leave the Action set to Update.
9. Make sure the Hive is set to HKEY_CURRENT_USER
10. Click the … (browse) button next to Key Path to browse.
11. In the Registry Item Browser, expand:
12. Click on the ThemeManager key, and select DllName in the list of registry values below, and click the Select button.
13. Click OK on the New Registry Properties screen.
14. Close the Group Policy editor.
On next log in the colors should be back to normal.
(Might NOT Work For All Users)
Force a specific theme to be used via group policy. You can either apply via a local policy or edit an existing group policy (that applies to this server) in your Active Directory domain.
1. Edit a group policy.
Run GPEDIT.MSC if you want to edit the local server’s policy only.
Run Group Policy Management for your Active Directory domain and edit an existing group policy that applies to this server.
2. Go to the Personalization folder.
If editing the local server’s policy, go to User Configuration | Administrative Templates | Control Panel | Personalization
If editing a group policy in your domain, go to User Configuration | Policies | Administrative Templates | Control Panel | Personalization
3. Edit the setting Force a specific visual style file or force Windows Classic and Enable it.
4. Add the following to the Path to Visual Style field:
5. Click OK and close the Group Policy editor.
If you edited the local policy, it should apply on the next log in.
If you edited a group policy in your domain, you can force it to apply by running the following command from an administrative command prompt:
On next log in the colors should be back to normal.
Play it safe and apply Solution #1 (and) Solution #2.