none
USMT and moving application data folders from XP to Vista

    Question

  • Using USMT, how does one move a user's application data from XP to the corresponding location on Vista (since they are not the same location)?  On XP, application data folders are located in:

     

        C:\Documents and Settings\MisterUser\Application Data

     

    While on Vista they are located in:   

        C:\Users\MisterUser\AppData\Local\

     

    I wrote a simple XML file to create a store of only the application folders from the application data location of an XP system.  However, when I load that store on a Vista system, the application data doesn't go where I would expect it.  Instead, it goes to a "roaming" location such as:

       C:\Users\MisterUser\AppData\Roaming

     

    How does one tell USMT to cut it out and do what it's supposed to? I have played with things like

         <locationModify script="MigXmlHelper.RelativeMove('%CSIDL_DESKTOP%\','%CSIDL_PERSONAL%')">
    in my xml file but no use.

     

    If you know of a way to do this I would greatly appreciate it.  A sample xml file would be nice.  Thanks much.

     

    Regards,

     

    Rasar

    Tuesday, March 25, 2008 7:17 AM

All replies

  • Hi Rasar,

     

    Let me explain something on the AppData folder on Windows Vista:

     

    A new, hidden folder named AppData located under the profile root is used as a central location for storing all per-user application settings and binaries. In addition, the following three subfolders under AppData better separate state information and help applications roam:

     

    Local:

     

    This folder stores computer-specific application data and settings that cannot (or should not) roam, as well as user-managed data or settings too large to support roaming effectively. The AppData\Local folder within a Windows Vista user profile is essentially the same as the Local Settings\Application Data under the root folder of a Windows XP user profile.

     

    Roaming:

     

    This folder stores user-specific application data and settings that should (or must) roam along with the user when roaming user profiles are implemented. The AppData\Roaming folder within a Windows Vista user profile is essentially the same as the Application Data folder under the root folder of a Windows XP user profile.

     

    LocalLow:

     

    This folder allows low-integrity processes to have write access to it. Low-integrity processes perform tasks that could potentially compromise the operating system. For example, applications started by the protected mode of Internet Explorer must use this profile folder for storing application data and settings. The LocalLow profile folder has no counterpart in Windows XP.

     

    Therefore, by design, contents in C:\Documents and Settings\MisterUser\Application Data on Windows XP will be migrated to C:\Users\MisterUser\AppData\Roaming on Windows Vista.

     

    Hope it helps.

     

    Tim Quan - MSFT

     

    Thursday, April 03, 2008 9:18 AM
    Moderator
  •  

    Tim,

     

    Thank you kindly for the explanation. 

     

    The application, unfortunately, is not looking in the roaming folder.  If I take the data that I migrated from the XP system, and manually move it over to Local from Roaming after the migration, then the application sees it.  Based on your explanation I don't understand how Roaming is overlooked by the application then.  Should the application have looked in Roaming first (which I doubt, since this app was written on XP when Vista was still a gleam in its mother's eye)?  Should the OS have taken care of it automatically?  Is there supposed to be a hierarchy and precedence to all of this, that

     

    1- the application looks in all the folders of the hierarchy from bottom up

    2- and it does it in a certain order (such as Local first, roaming next)?

     

    In my example, the app data exists only in one location, either roaming (through migration) or Local (through manual movement, and it is only picked up from Local, not when it's in Roaming. 

     

    Another comment: if the data comes from XP, and on XP there was no concept of Local, Roaming, etc, it would appear to me the XP model would fit the "Local" model, and as such USMT should have treated it that way because if I were to take a guess I would think many applications behave like this one.  I don't know about all those applications, but at least this one application is unaware of the Vista hierarchy.  This application has been around for a while, and I suspect like most appliation behaves in an XP centric fashion.  I doubt all applications are going to be rewritten to run on Vista to deal with such issues.  Is there any flag or any option in USMT that will grant an application its presumed behavior?

     

    Best,

     

    Rasar

    Friday, April 04, 2008 1:55 AM