Desktop icon text loses its “Aero shadow” on Remote Desktop Session Host

Posted on Updated on

(and how to change the desktop icon text color from white to black)

What’s going on? The symptoms.
Typically you have a few icons on your desktop, each one of them having a label with some text indicating what the icon is referring to. When a default Aero theme is active this text has by default a white foreground color and a black shadow. In the first figure you see an example of how this looks like on Windows Server 2008 R2.

Figure 1

On a Remote Desktop Session Host (RDSH) (which is always on Windows Server 2008 R2) however this text’s shadow can disappear just by hovering the mouse cursor or a window over the icon’s area or selecting the icon through the mouse or the keyboard. Not every selection or moving-over breaks the shadow of an icon’s label text, but at least in my case it happens much, much more than it doesn’t. With other words, this is an issue that’s almost always going on, which is very frustrating and confusing. I have given up to find some kind of a pattern or cause why it happens almost all the time (but not always) and why some icons seem to have a higher chance to experience this issue than others (for instance, in my example the Adobe Reader X icon seems to experience the issue less than the icon for Internet Explorer). Here is an example of what you may expect:

Figure 2

I would like to stress that this issue only occurs when an Aero theme is used (without Aero there is no shadowing at all and that’s by design!) and on an RDSH, although it doesn’t matter if the session/connection is local or remote. This means the issue doesn’t happen
• when a non-Aero theme has been selected
• when the server is no RDSH, so
–> on Windows Server 2008 R2, but without the RDSH role installed (by the way, this role is required to make Aero possible on Windows Server 2008 R2)
–> on other Windows versions, like Windows 7
• in an administrative session (via Remote Desktop Connection (RDC) for example: “mstsc /admin”), as such a session doesn’t support Aero
• if the Desktop Experience role is not installed, as this role is required for Aero
• if the physical/virtual hardware and its driver(s) aren’t DirectX compliant, as this compliance is necessary to make Aero possible
• if the Themes service isn’t running, as this service needs to be running for Aero themes to be active

Very weird is that the top-left icon never experiences the issue; it seems this icon always gets its shadowing right. I’ve read that some people think the Recycle Bin’s icon isn’t subject to the issue, but that’s not true. Some think this because they never see its shadowing broken, but that’s because typically this icon is the top-left icon. If you switch Recycle Bin’s icon with another icon, you’ll notice that the issue does happen with Recycle Bin, but it just doesn’t with the top-left icon. Also strange is the fact that sometimes a part of a label’s text has lost its shadowing (see the next figure).

Figure 3

If you refresh the desktop, some or all icons get their broken shadowing fixed, but there is no way you can find a pattern: the result is not predictable (see the next 3 figures to see the situation before a refresh, after a refresh and after a 2nd refresh). Sometimes you need to refresh multiple times before every icon has its shadowing back. It’s obvious you can’t really count on it. A refresh can happen in a few ways, including when you
• right-click on the desktop and select “Refresh” (figure 4); the result is not predictable at all, it’s like it’s random (well, it just feels like that)
• re-apply the theme: choose another theme and then the original theme again; this seems to work all the time though
• re-apply the shadowing feature (see further for more information); this also seems to work all the time
None of them is a good fix: first of all you have to fix almost all the time, secondly the first fix isn’t predictable at all and thirfly, the other 2 fixes are too long-winded to be useful as a decent fix.

Figure 4

Figure 5

Figure 6

Let’s make it even more complex. If the shadow is gone and you hover over the icon’s area, sometimes the shadow comes back (see figure 7), but when you leave the icon’s area again the shadow is lost again. This is very exceptional though… Another rare symptom is the shadow is gone, you hover over the icon’s area while the shadow is still gone and when you leave the area the shadow comes back again (so “fixing” the shadowing issue for that particular icon).

Figure 7

If you interpret all those different symptoms, we can conclude that the whole behavior is very unpredictable, looks very random, is very complex, feels very weird and is of course very frustrating and confusing.

Why does this all happen? The causes.
First thing to ask yourself is of course what’s the cause of this strange behavior. Well, I’m quite sure it’s a bug, although I don’t find a KB article or another official statement about this (at least for now). I have no idea what to tell you more about the cause, so you techies out there: no dirty stuff for you in this article 😉

What can we do about it? The solutions.
As it’s not officially recognized as a bug (yet?), there is no hotfix for it (yet?), and thus no real solution. But there could be a few workarounds for you, depending on the specific situation you’re in. Please read on.

So what can we do about it? First of all, this shadow feature is just a setting which can be toggled on or off. This setting belongs to the Visual Effects settings group, which can be configured through the registry or in a GUI based way. There are a few ways to get to the GUI, so I give a few examples here:
• open the Control Panel applet System. This can be done in a few ways, including the following:
–> open the Start menu, right-click Control Panel and select Properties in the context menu (figure 8)
–> if Control Panel is configured to be shown as a menu in your Start menu: open the Start menu, open the Control Panel menu and select System from that menu (figure 9)
–> right-click Control Panel in the Start menu, select Open from the context menu (figure 10), select “System and Security” in the opened Control Panel window (figure 11) and finally select System from the System and Security content (figure 12)
• left-click “Advanced system settings” at the left side of the Control Panel applet System (figure 13); this opens the dialog box “System Properties”, with the tab “Advanced” selected by default (figure 14)
• left-click the button “Settings…” in the section “Performance” (figure 14); this opens the dialog box “Performance Options”, with the tab “Visual Effects” selected by default (figure 15)

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

You can choose one of four possible sets of Visual Effects settings by selecting the corresponding radio button. The checkboxes you see at the bottom of the dialog box show you which visual effects are enabled or disabled (corresponding checkbox is enabled or disabled respectively). Those are the possible configuration sets (with corresponding radio button):
• “Let Windows choose what’s best for my computer”: this is selected by default. With this choice Windows uses certain settings based on what Windows thinks it’s best for you. Windows fills in the configuration with a balance between appearance quality and performance. In practice this choice makes every visual effect enabled, just as is the case for “Adjust for best appearance”. Updates to Windows can change this behavior though, so conceptually it’s still different from the next described group of settings; otherwise said, “Let Windows choose what’s best for my computer” doesn’t guarantee that every visual effect will always be enabled in the future.
• “Adjust for best appearance”: with this choice Windows will enable every visual effect by definition, because you definitely want the best appearance possible, even if performance decreases this way.
• “Adjust for best performance”: with this choice Windows adjusts its recommended settings (see the first bullet) a little bit, because you want a better performance, actually the best performance possible, at the cost of appearance quality. This means this choice implies that every visual effect is disabled.
• “Custom:”: with this choice you tell Windows you want to determine every piece of the visual effects configuration yourself. When you select this choice, you can fine-tune the visual effects by toggling on or off many settings by making/letting the corresponding checkboxes checked or unchecked respectively. Note that you can’t change those checkboxes (and thus their corresponding settings) if “Custom:” isn’t chosen. If you do change one of those checkboxes in this scenario, “Custom:” and its radio button are automatically selected. When you change your choice to “Custom:”, Windows will take over the settings of the previous choice. For example, if “Adjust for best performance “ is selected and you change to “Custom:”, then every checkbox will stay unchecked. If your previous choice was “Let Windows choose what’s best for my computer” or “Adjust for best appearance”, every checkbox will stay to be checked. Oh yes, if you choose “Custom:”, you leave the dialog box and returns, it could be that some checkboxes are (un)checked automatically, even if you haven’t configured them this way. This is because some settings aren’t possible or are enforced when “Custom:” is chosen, but you only see those automatic changes when you enter the dialog box the next time (so not when you apply or enter the tab only, no, you do have to enter the Performance Options dialog box again). The following figure shows you what “Custom:” looks like if the first choice was “Let Windows choose what’s best for my computer” or “Adjust for best appearance”, you changed to “Custom:” (and all your checkboxes stay checked), doesn’t change a thing, left the Performance Options dialog box and re-entered the dialog box again. You see some settings are unchecked automatically, even if you haven’t touched them…

Figure 16

One of the Visual Effects settings is called “Use drop shadows for icon labels on the desktop”. This is the setting to toggle on or off the shadow for icon text on the desktop if an Aero theme is active (if not, this setting doesn’t really make sense for now, although it does make sense for if you would change your theme to an Aero one later). If the corresponding checkbox is checked, the shadow is enabled, otherwise it’s disabled. If you select “Adjust for best performance” this shadowing is disabled, but every other visual effect is disabled too. So if you only want to disable the shadowing, select “Custom:”, uncheck “Use drop shadows for icon labels on the desktop” and click “OK” or “Apply” (figure 17). The result is clear in figure 18.

Figure 17

Figure 18

This way we avoid a mix of icons with and without shadowed labels; we also avoid the fact that a certain icon’s label’s shadowing status changes all the time. With other words, we can avoid inconsistency and confusion. With shadowing disabled the text color doesn’t change though. Oh yes, please note that visual effect settings are per user settings. So if you change the shadow setting for example for user A, it isn’t changed for another user B. Also, every user can change this setting, so you don’t need to be an admin.

As said before, it’s also possible to configure the shadowing setting via the registry. Actually, if you see the setting through the GUI, the GUI actually gets the setting from the registry. And if you change the setting in the GUI, the GUI actually propagates this change to the registry. So at the end it’s all about the registry 🙂 You can check or change the setting in the registry as follows:
Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
Named value: ListviewShadow
Possible values:
0: shadowing is disabled
1: shadowing is enabled

Of course it’s perfectly possible in an Active Directory (AD) integrated environment (now we’re speaking for enterprise admins) to use a logon script or group policies (and if your environment already supports it: including Group Policy Preferences) to enforce this. Personally I recommend doing this through Group Policy Preferences, as this is a built-in default way for doing such stuff and it’s better manageable too.

But the story continues… (or: how to change the desktop icon text from white to black?)
So what if we have a very light background? Take a look at this figure:

Figure 19

Ouch! It’s barely readable! What if we could change the icon’s text color? So perhaps we can crawl all those Windows settings, looking for 1 setting to change this. Ah, we can probably change this in the Control Panel applet “Personalization”, right? Let’s take a look. Start this applet, what can be done in a number of ways, for example by right-clicking on the desktop and choose “Personalize” from the context menu:

Figure 20

The Control Panel applet “Personalization” appears. The full path is Control Panel\Appearance and Personalization\Personalization, so you can also open the root of Control Panel and browse to this applet or type in or paste this path in the address bar. Anyway, choose “Window Color” at the bottom of the applet (see figure 21) and the dialog box “Window Color and Appearance” pops up (see figure 22). This dialog box gives us the opportunity to change several settings (like colors and fonts) of icons, the desktop, windows, etc.

Figure 21

Figure 22

Well, let’s select “Icon” from the drop-down list “Item” and this is what we get then:

Figure 23

But… Oh damn! We can change several settings for the icon text, except for colors of course! Aaargl! Don’t worry, there is another way to achieve our goal, but it’s a quite ugly one and I just wanted to show you first there is no easier way to do this. But before we deep-dive into this other way, I would like you to know a few things about Windows themes first.

Everyone who uses Windows in a “normal” session has a certain Windows theme configured: chosen by the system, the enterprise administrator or the user itself. That theme (represented by a .theme file) can be a default or a custom theme and the latter can be a saved or an unsaved theme. When you change something to a default or saved custom theme, a new, unsaved, custom theme is created and takes over all the settings from the previous (default or saved custom) theme, except for the change. If such an unsaved theme already exists, it is completely overwritten by the new one. When you change something to an unsaved custom theme, the same unsaved theme is still used, but adapted with the change of course. With other words: there can be only 1 single, unsaved theme at maximum and it’s always named “Custom.theme”. An unsaved theme can always be saved, so it becomes a saved one.
Themes can be placed in 2 folders:
• System-wide themes: in %systemroot%\Windows\Resources\Themes. Those themes can be used by every user on the system. Not every system-wide theme is described here though (like Windows Classic for example).
• User specific themes: located in %LOCALAPPDATA%\Microsoft\Windows\Themes, so in the local part of the user’s profile.
By default the first folder contains the default Aero themes (aero.theme) and the second folder is empty. The Control Panel applet Personalization uses those 2 folders to get and show you the available themes. If you change things, Personalization will place it in the user specific themes folder, although you can always move them to the system-wide themes folder yourself afterwards. This means that by default custom themes (saved and unsaved) are user specific and placed in the 2nd folder.
There is also a folder %APPDATA%\Microsoft\Windows\Themes, which is in the roaming part of the profile, but this folder doesn’t contain any theme though. This doesn’t mean the folder has no meaning, not at all: the wallpaper used at a certain moment is saved here (under the name of TranscodedWallpaper.jpg); but again, it’s not used for actual themes…
A saved theme survives a logoff and is available again at the next logon. An unsaved theme is deleted at logoff though, except when it was the theme in use. Well, the last two sentences are not completely true, actually… It’s certainly true if we’re using local profiles, but we have to pay attention if we’re working with roaming user profiles: if a user has a made a custom theme and saved it (so in %LOCALAPPDATA%\Microsoft\Windows\Themes), this saved theme isn’t saved to the profile server at logoff. The next time a user logs on, this could be on a different system and if so, he or she doesn’t get to see his/her saved custom theme… Even worse, in many environments the user profile is deleted from the system after the (roaming part of the) profile has been copied to the profile server (and with a good reason, so the solution is NOT not to delete) and thus the saved custom theme is gone completely! Using the roaming part of the profile for Windows themes doesn’t really matter: the Control Panel applet Personalization and Windows use the local Themes folder, not the roaming Themes folder.
One last thing: an unsaved theme in use isn’t completely gone after logoff of a user with a roaming profile, although it resides in the local part of a user profile, because it’s stored on another place too. The same is true for a saved custom theme that was in use at the time of logoff, but it also becomes an unsaved theme at the next logon. So the theme copy that was stored in another place too, doesn’t really describe the theme as saved or unsaved, so it’s always considered as unsaved and thus nameless.
Summarized: there is only a problem to keep not-in-use (un)saved custom themes for roaming profiles used on more than 1 system, except when there is some mechanism (through logon and logoff script for example) that takes care of this. In the same situation in-use saved themes form a problem too, in the sense they become an unsaved theme, which is something a user doesn’t really expect and can lead to deletion too (for example, when the user changes to another profile and then logs off).

Ok, now back to the desktop icon text color! The thing is Windows chooses the icon text color itself (even if you don’t use Aero). First of all, if shadowing for the desktop icon text is effectively enabled (so the setting is enabled and an Aero theme is used), the color is always white. Secondly, if shadowing is effectively disabled, the color for the desktop icon text is based on the background color. For some background colors (typically light colors, like white) Windows uses black for the desktop icon text. For the other background colors (typically dark colors, like black), Windows uses white for the desktop icon text. So it’s either black or white for the desktop icon text color and Windows chooses which one fits the best for a certain background color (well, it’s not that Windows chooses this dynamically, this is fixed and thus the same on every system and anytime).

But what if we don’t use a solid color for the background, but a picture or a drawing instead, including a so-called Windows Desktop Background (a default Windows background picture/drawing like the ones from the default Aero themes)? In this case we actually have 2 background layers: a solid color at the lowest layer (which we don’t see) and the picture at the highest layer (which we do see of course). When a picture/drawing is used as a background, you can still see and even change the underlying solid color through the Control Panel applet “Desktop Background” (to be opened from the “Personalization” Control Panel applet). If this solid color was never changed, it’s the one from the original theme your current theme is derived from (or if you’re using such an original theme (like the default Aero themes), it’s its built-in solid color). Anyway, perhaps you wouldn’t expect this, but Windows uses the lowest background layer (the solid color) as a base to choose the desktop icon text for, despite the fact that this lowest background color isn’t even visible. Windows uses the same rules as when the solid color would be the only background layer, as described in the previous paragraph.

As just said there is always a solid color in use, meaning every theme has a solid color configured. So what is the solid color of the default themes in Windows, including the default Aero themes (“Windows Basic” and “Windows 7”). In the case of “Windows Classic” this is quite obvious (you can literally see it), but it isn’t for the other 2 examples I’ve just mentioned. “Windows Basic” and “Windows 7” also have a background image defined to be put over the solid background color and that’s what you see of course. If you change the theme from Windows Classic to one of those default Aero themes, you can see the background becomes black for a short moment; yes, black is the solid background color of those default Aero themes! And yes, that’s why the desktop icon text is white 🙂 Another way to see this low-level solid color is black, is by changing your background to an image which is smaller than the desktop size and put it at the center of the desktop: the other pieces of the desktop will certainly be… black! Of course those mechanisms are very long-winded, but luckily there is another, simple way to check out the solid color of a theme, including a default (Aero) theme. Read the next paragraph and you will know.

The background can be viewed and changed through the Desktop Background applet in Control Panel (click “Desktop Background” at the bottom of the Personalization applet to get there). If you connect to a system remotely through the Remote Desktop mechanism, your client (Remote Desktop Connection (RDC) for instance) has to support background support to show pictures/drawings (including a Windows Desktop Background) as the background of the desktop (but the solid color layer can be shown though) or to change your background configuration (even changing a solid color isn’t possible if the client doesn’t have background support enabled). If you configure a picture/drawing, this becomes the new visible background, sitting on top of the solid background color. If you configure a solid color, the image/drawing is removed from the theme and the only thing left is the new solid background color. If you have a picture/drawing and want to change the underlying solid color, you have to do this:
1) Configure the desired solid color. This becomes the new solid background color and if there was an image/drawing on top of it, it’s removed now.
2) Configure the image/drawing again. This is the new visible background, on top of the just changed solid color.
In the applet we also see a special area to check out the solid background color if a picture/drawing is chosen for the upper background layer (remember I was talking about a 3rd way to check out this color in the previous paragraph?). And hey, you can even change the solid background color here too! This procedure is much easier and error-prone than the just described one, isn’t it?! I must admit though that this easier way isn’t always available… I don’t have a clue why it doesn’t appear sometimes (or even most of the time)…
There is only one drawback: by changing the solid color we have create a new custom theme if we start from a default or saved custom theme, so in fact nothing has really changed for the s tart theme… Sometimes that’s okay, sometimes not.

Ok, here is what to do if you want to change the solid background color of a theme without making a new theme (note that you do change the theme itself, so for some people this isn’t desirable for some themes (default Aero themes for instance), because they don’t want to touch them at all; perhaps you can make a backup of the start theme first?). Open Windows Explorer and go to C:\Windows\Resources\Themes. In this folder you see the file aero.theme (figure 24). Open the file in Notepad (or another text editor), but don’t double-click on it or don’t choose Open from the context menu after right-clicking it, because the Windows Shell Common Dll is the default program for theme files, so the Control Panel applet Personalization opens the file. Right-click the file and choose “Open with” from the context menu (followed by “Choose default program…”), choose or browse for the program you have in your mind and don’t forget not to make this program the default program for .theme files (so uncheck “Always use the selected program to open this kind of file”), except when you do want this of course. See figure 25 and 26, but be aware of the fact that my figures already show Notepad as a recommended program, so in my case it was better to select Notepad immediately after choosing “Open with”. I just wanted to tell you what to do when Notepad isn’t a recommended program (yet). Also, if Notepad isn’t a recommended program (yet), it doesn’t appear in the “Recommended Programs” list (figure 26), but instead in the “Other Programs” list. If the application you want to use, isn’t even mentioned here, you should click the Browse button and browse for the application’s executable.

Figure 24

Figure 25

Figure 26

Figure 27

Now we have to change something. This is not going to be that hard, as you see theme files are just simple text files (figure 27). But I recommend you to close Notepad and first change the Access Control List (ACL) of the file. The thing is this file can be accessed by Administrators, Users and SYSTEM, but only for reading. The only one who can change something (and actually has Full Control) is TrustedInstaller. It’s outside the scope of this article to explain who or what he/she/it is, but it’s not you 🙂 Even more, TrustedInstaller is the owner of the file, so even as an administrator you can’t change the ACL. The first thing to do is take ownership of the file, apply this change and then change the ACL by giving extra rights to yourself or a group of users you belong to. Typically Administrators have the system right to take ownership, so be logged in as a member of this group and take ownership of the file (and don’t forget to apply this change). Then you can give Administrators the Modify permission (and thus also the Write permission) and apply this change too. Now you can open the file, edit it and finally save it. Add the following to the file:
[Control Panel\Colors]
Background=255 255 255

After having the file edited you may wish to undo the security changes. Take away the Modify and Write permissions from Administrators and make TrustedInstaller the owner again (by typing in the user “NT SERVICE\TrustedInstaller” for the location corresponding with the local computer system). Ok, so what have we changed? We have added a new section to the configuration file and added one entry to this section: “Background”. Its value is “255 255 255” which represents 3 sub-values:
• The first “255”: a value for red
• The second “255”: a value for green
• The third “255”: a value for blue
Red, green and blue (RGB) are used to compose every possible 24 bit color (3 * 8 bits). Every value sits in the range of 0 till 255, with 0 meaning “absolutely nothing of this color” and 255 “as much as possible of this color”. If we have a 0 for red, green and blue, this means we have composed the color black. If we have the maximum for every color (255), this means we have composed white. So what we have done here, is assigned the white color as the solid background color of the theme. And that’s exactly what we want to achieve! You have probably noticed that the default Aero theme didn’t contain this section and entry at first. That doesn’t mean there is no solid background color though. If no such color is defined explicitly, the default is black (“0 0 0”).

Figure 28

Enough talk. Let’s take a look at the result:

Figure 29

A little side note: how to set a background image (= wallpaper) for users and/or prevent them of changing backgrounds
You can do this via group policy:
Path: User Configuration\Policies\Administrative Templates\Desktop\Desktop
Setting: Desktop Wallpaper
Value: set the path to the wallpaper

If the wallpaper is enforced (which happens at logon time only), 2 things can happen:
• if the “current” theme is not an unsaved custom theme: a new custom theme is created, based on the “previous” theme, but with the wallpaper configured by the enterprise admin.
• if the “current” theme is an unsaved custom theme: the same unsaved theme is used, but of course with the new wallpaper
You can’t switch to a default or saved custom theme, because a specific wallpaper is enforced (and so there is a difference with a default or saved custom theme). What happens, is this: the unsaved theme is rebuilt based on the new chosen default or saved theme and the enforced wallpaper is set to this unsaved custom theme. This way you can change your style and theme, except for the wallpaper.

Also, if you want to prevent users from changing a wallpaper, but without setting a custom one yourself (as an administrator), you can just enable this setting:
Path: User Configuration\Policies\Administrative Templates\Control Panel\Personalization
Setting: Prevent changing desktop background
Value: enable or disable
This setting doesn’t limit the “Desktop Wallpaper” setting though, but it does limit what you as a particular user can configure.

Finally, if a wallpaper is enforced, you can’t change your background, except for the lower-level solid color. If the wallpaper isn’t enforced anymore in a later stage AND “Prevent changing desktop background” is NOT enabled, you still keep your custom theme (because it’s saved in your profile as your active theme), but the custom wallpaper is effectively removed and replaced by the “previous” wallpaper that was overruled by the group policy enforcement (so the one before is remembered!). Note that the picture position isn’t reset, so it’s possible you have to adapt that yourself to make the “previous” background show up decently. Default Aero themes have a picture position of “Fill”. If “Prevent changing desktop background” is (still) enabled at the moment the wallpaper enforcement is taken back, the wallpaper is not removed and stays in your profile, even if you disable this setting later; this is quite logic: the wallpaper can’t be set to the previous one as that means “you” did a change, but you’re not allowed too.

Another little side note: about themes this time
Besides of backgrounds enterprise admins can also centrally manage themes directly (through background management they could manage and influence themes a little bit, but only indirectly). We have the following 2 settings in the group policy mechanism:
Path: User Configuration\Policies\Administrative Templates\Control Panel\Personalization
Setting: Prevent changing theme
Value: enable or disable

Path: User Configuration\Policies\Administrative Templates\Control Panel\Personalization
Setting: Load a specific theme
Value: the path to the theme file (.theme file)

If the first of those 2 settings is enabled, it still lets you or the enterprise admin change settings like the wallpaper, colors, etc. (except when this is prohibited too of course). Actually this means even the user can still create a new theme if a default or saved custom theme is used! The thing is you have to start from the theme that is selected at the time this preventing becomes active and from that moment you can’t explicitly select another theme or save an unsaved theme anymore. By changing settings like the wallpaper though an unsaved theme is edited or a default or saved theme is used as the base for a new unsaved custom theme, but this is implicit and is the only situation you can still create a new theme. It does mean though that “hard coded” low-level properties of a theme can’t be changed anymore; so if Aero is used, you will need to stick with Aero. Only higher-level properties (like the wallpaper, font settings, etc.) can be put into a new theme.
If a specific theme is enforced, this theme is used by your users the first time they get this setting. Afterwards they can still change themes (except when prohibited by the first setting just described) or change settings like wallpapers, colors, etc., which technically can introduce new themes. So the story is different from a similar setting for backgrounds: a specific background (through the setting “Desktop Wallpaper”) is enforced all the time, a specific theme not.

First of all there is a bug that causes desktop icon text shadows in an Aero theme to disappear (most of the time) on a Remote Desktop Session Host (RDSH) if the icon is selected or its area is hovered over by a mouse cursor or window. There is no hotfix for this issue, but you can disable the shadowing feature through the registry or in a GUI based way.
Secondly, there is a GUI based way to change the desktop icon text color from white to black (and back) if shadowing is disabled. You can do this by creating a custom theme (which happens automatically if you change settings from a default or saved custom theme) or by changing the definition of a theme directly. Make the solid background color of a theme white and Windows automatically changes the desktop icon text black. The default Aero themes have a black solid background color under the Windows Desktop Background, so the desktop icon text is white by default.
I must say all this is not perfect of course. A bug is never a good thing and especially not if there is no hotfix for it. Also, the workarounds are not that easy: most people never find them out! Last, but not least, the workarounds aren’t even perfect: what if you have a background image with black (or very dark) and white (or very light) pieces…? Indeed, in that case there will always be a problem if icons are on top of such pieces… If the desktop icon text color is black for example, then you still have a problem for icons lying on top a very dark background piece… This has nothing to do with the shadowing bug, but it is an issue that’s more present when shadowing is disabled or doesn’t work.

What I can recommend, is this: disable the shadowing for a consistent shadowing experience and to avoid an icon is sometimes readable, but not at other times (because the presence or absence of shadowing for a certain icon changes the way the icon’s text is readable related to the background you see). Decide which background(s) to use and determine what’s the best desktop icon text color for it. If that’s white, well, then don’t change anything else. If it’s black though, change the solid background color to white by changing the solid background color; if you do so, decide whether you want an automatically created new custom theme (based on the current theme) or you want to change the current theme itself.
For enterprise administrators I guess it’s best to disable shadowing through Group Policy Preferences and to do this:
• if end users start with default Aero themes (including its built-in background image): change the solid background color of the default Aero themes to black, because its background (which is a Windows Desktop Background, seen in a lot of my figures in this article) is very light in color. Learn your end users how to adapt their solid background color if they ever change their background picture/drawing, so the “right” desktop icon text color is used by Windows.
• If end users start with custom themes you have defined: your custom theme should have the right solid background color already. Learn your end users how to adapt their solid background color if they ever change their background picture/drawing, so the “right” desktop icon text color is used by Windows.
The first situation is the most common I think: users start with default Aero themes. And in this case it’s obvious the solid background color of the default theme itself should be changed (take a backup of this theme first!). The second situation does happen a lot too, especially in larger companies, as many companies want a self-designed background with the company’s logo as the background. Just take care of the solid background color in that custom theme!
If users are not allowed to change their background, of course you don’t have to learn them to change their solid background color in the light of the issue described in this article. End users should only know a little bit about this if they are allowed to switch over to or change a background image.

I hope this long article was useful for you and didn’t make you more confused than you were before reading it! 🙂



6 thoughts on “Desktop icon text loses its “Aero shadow” on Remote Desktop Session Host

    joanne t said:
    11/05/2013 at 16:12

    Great explanation. Hoping my text stays black with no shadows. Joanne

    Adam Reid said:
    28/02/2014 at 12:29

    I have the exact same problem in our RSDH/XenApp environment. Oddly it only seems to occur when users roam between Windows 7 and XenApp/RDSH. Thank you for writing this article; it’s saved me a massive amount of time.

    Patrick Hazen said:
    06/03/2014 at 14:01

    Same effect with following registry keys:

    Key: HKEY_CURRENT_USER\Control Panel\Colors
    Name: Background
    Type: REG_SZ
    Data: 255 255 255


    Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
    Name: ListviewShadow
    Type: REG_DWORD
    Data: 0x00000000 (0)

    1st key makes the background white, so font black
    2nd key removes the shadow (as already explained in this article)

    Boris said:
    22/07/2014 at 20:34

    very good article, very annoying BUG.
    thank you for the write up.

    Viren Fumakiya said:
    20/08/2015 at 16:31

    we deployed citrix zenapp 6.5 and citrix deskapp 7.6, with windows server 2008 r2 standard 64 bit,and i faced same issue, so i refer this artical and configured same setting in my infrastructure, but till i faced same issue…
    so anyone help me to solve same???

    Matt said:
    19/09/2016 at 19:20

    I can say that after the four years since this post, this problem still persists, even under Server 2012 R2 Remote Desktop Services. Really poor. Thanks for the great article. Highly appreciated.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.