First published on TechNet on Jun 02, 2011
here again. Do you hate your users? Do you revel in removing the slightest joy they have in their day? Do you wish to crush their hope and dreams, to the point of removing the small shreds of humanity they see while walled into their bleak veal pens?
If so, this post is for you.
Today I talk about how to block wallpaper and theme migration from Vista or Windows 7 source computers when running USMT. The actual blocking part here is trivial, so if that's all you care about skip to the end. If you want to learn something, start at the beginning: this is part of an informal series that explains
USMT reverse engineering
. Once you get good at this, you can figure out any weird little corner-case on your own. Even blocking default behaviors. Like not letting people have pictures of their grandkids.
How do you live with yourself?
Understanding how wallpaper works
If you're migrating from Windows XP, you are already good to go - as you know from
, wallpapers are not migrated automatically from that OS unless you write
However, if you are migrating from Windows Vista or Windows 7, user backgrounds do transfer over and work fine. It's tricky to turn off though, due to the shell's various personalization options. Let's walk through this.
Here for example, looking at a Windows Vista computer, you see that the desktop key (which contains a wallpaper registry value) is migrated using an OS built-in manifest:
A quick Internet search seems to confirm that this is the right key data, as does looking at the registry:
If you set that
manifest to NO in your
(which is a bad idea, as that manifest migrates quite a few other settings and the users are going to be noticeably affected), then test a migration:
... the wallpaper customizations are
This shows the danger of searching for references in the manifests without actually looking at the rules in the XML. Let's zoom out a bit:
Examining that manifest closely shows that it actually already
migration of the wallpaper setting. But if you look at an actual user migration you will see that this wallpaper registry key
migrate even with this exclusion. You can search XML all you want for this one but you will only figure it out by the process of elimination: it's coming from:
If you block the
settings explicitly by using the config.xml, you block the wallpaper migration implicitly. This works because when the user first logs on and has blank theme settings, the
theme is set by the OS and voila: no customization happened,
even if the Control Panel\Desktop\Wallpaper value is set
. It sets the user to the default Windows theme. Sweet!
Nevermind all that, let's block some wallpaper!
Either of these works ion its own, pick one. The second one is the recommended one, the first one is the easier one:
1. Use the themeui
(this can have unwanted side effects for various manifests, but in this case it's atomic to wallpaper and themes) to set
2. Use custom XML (this is a best practice and generally recommended when blocking default migration behaviors):