Hey guys I have kind of a strange problem using usmt to migrate some data from Windows XP to Windows 8.1 - which means that I use 2 different versions for scan- and loadstate (and I switch between x86 and x64 as well).
It seems to work as expected, however there is a problem with the migration of the theme/wallpaper - which I basically try to block...
So let's take a look to my scripts: I use scanstate on the XP client using:
scanstate.exe %uncpath% /i:migapp.xml /i:miguser.xml /config:excludes.xml /i:custom.xml /l:scanstate.log /v:13 /o /c
The loadstate on the Windows 8.1 Client (which comes as a mandatory sccm 2012 r2 package that runs only if a user is logged-on and with administrative rights) looks as follows:
loadstate.exe %uncpath% /i:migapp.xml /i:miguser.xml /config:excludes.xml /i:custom.xml /c /uel:0 /ui:domain\* /l:loadstate.log
Both scanstate and loadstate use the same xml files. migapp and miguser are the default ones. "Excludes" means:
<?xml version="1.0" encoding="UTF-8"?><Configuration><WindowsComponents><component displayname="Microsoft-Windows-themeui-DL" migrate="no" ID="http://www.microsoft.com/migration/1.0/migxmlext/cmi/microsoft-windows-themeui-dl/microsoft-windows-themeui-dl/settings"/></WindowsComponents></Configuration>
And the custom.xml includes the following lines that I found on the www:
<?xml version="1.0" encoding="UTF-8" ?><migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/Custom"><component type="Documents" context="User"><displayName>Exclude mapped network drives and theme related registry keys</displayName><role role="Data"><rules><unconditionalExclude><objectSet><pattern type="Registry">HKCU\Network\* [*]</pattern><pattern type="Registry">HKCU\Control Panel\Desktop\* [*]</pattern><pattern type="Registry">HKCU\Control Panel\Desktop [Wallpaper]</pattern><pattern type="Registry">HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\LastTheme\* [*]</pattern><pattern type="Registry">HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\* [*]</pattern><pattern type="Registry">HKCU\Software\Microsoft\Windows\CurrentVersion\ThemeManager\* [*]</pattern> </objectSet></unconditionalExclude></rules></role></component><component type="Documents" context="User"><displayName>Exclude files of theme locations</displayName><role role="Data"><rules><unconditionalExclude><objectSet><pattern type="File">%appdata%\..\Local\Microsoft\Windows\Themes\* [*.theme]</pattern></unconditionalExclude></rules></role></component></migration>
Ok, that's it. On the Windows 8.1 Client I have theme file that is active with a wallpaper and screensaver assigned. When a user logs in and the loadstate advertisment is running, during the "apply settings for domain\current-logged-in-user" phase of loadstate the wallpaper switchs to black-screen. When I open the registry after the program successfully installed and navigate to the HKCU\Control Panel\Desktop\Wallpaper key - it is empty (it has been filled with the path to my custom wallpaper before loadstate ran).
I don't know what to try next, I simply don't get it working. And even thought of "context=user" the loadstate logfile is complaining about "HKEY\Control Panel\and-so-on" is "considered invalid in current context".
I hope that someone can help me - thanks in advance - luke