Vista Upgrade fails at "Gathering Files" when two users share the same user profile (ProfileImagePat

C

Carl Farrington

Vista Upgrade fails at "Gathering Files" when two users share the same user
profile (ProfileImagePath). Message: "the upgrade was cancelled".

It seems that the Vista upgrade (from XP SP2), looks through
HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList, and tries to
do some work on the registry hives of the user profiles it finds
(NTUSER.DAT). When it comes across a hive that is loaded, but not the
currently logged-on user, it attempts to unload that hive from the registry
so that it can do whatever it's trying to do.

In the (unusual) case where a non-logged-on user points at the same profile
path as the currently logged-on user, the migration will fail because whilst
trying to unload the hive of the non-logged-on user, it is in effect trying
to unload the hive of the logged-on user, which can't be done.

For example, I had my Local Administrator account set to use the profile at
\Documents and Settings\carl, as well as DOMAINUSER\carl also using this
profile.

This is an unusual situation, although I have done this where a non-techie
has decided to set his own laptop up, and has all sorts of settings and
customisation, only for me to point out that the machine needs joining to
the domain which would normally result in a fresh profile being created. I
tend to migrate the profile and remove the old local user, but occasionally
I also leave the previous local account pointing at that profile also.

There is a piece of software out there intended for just this purpose. It's
called "User Profile Wizard", by a company called ForensiT. See
http://www.forensit.com/profwiz/index.htm . The reason I was in this
situation personally was because I wanted to test out this tool, since an IT
friend of mine liked the procedure I used but thought there should be an
easy tool to do it, and I found my procedure doesn't work properly with
Vista, so I tested out this tool on my laptop, by mapping the local
administrator account to my own user profile (carl).

Also see
http://groups.google.co.uk/group/mi...b1e82e9a18/b9678c76ffd249c7?#b9678c76ffd249c7
(http://tinyurl.com/34xdbz ) for the manual process I use, pre-Vista anyway.
I haven't learned the differences with Vista yet.

The fix is to go into HKLM\Software\Microsoft\Windows
NT\CurrentVersion\ProfileList and find the SID of the extra/unneccesary user
of the profile, and change their ProfileImagePath to something different.
Doesn't matter if that path doesn't exist yet, a clean profile will be
created upon logon.

Here are some logs. I know I am not the only person who has had this
problem, but I never found a solution out here on the Internet, so hopefully
posting this will help others who may find themselves in this odd situation.

Incidentally, the OEM Vista disk and license can be used to upgrade from OEM
XP SP2 no problem.

setupact.log:
2007-10-18 21:14:07, Warning [0x0803da] MIG Waiting 6000 msec to retry
hive load (tries remaining: 1)...
2007-10-18 21:14:13, Warning [0x0803d9] MIG IndirectKeyMapper:
RegLoadKey(HKEY_USERS,S-1-5-21-1708537768-839522115-1202660629-1108,C:\Documents
and Settings\carl\NTUSER.DAT) failed (32)
2007-10-18 21:14:13, Info MIG Attempting to find and
unload hive C:\Documents and Settings\carl\NTUSER.DAT
(\Device\HarddiskVolume1\Documents and Settings\carl\NTUSER.DAT)
2007-10-18 21:14:13, Info [0x0808ad] MIG Hive
\Device\HarddiskVolume1\Documents and Settings\carl\NTUSER.DAT is loaded at
\REGISTRY\USER\S-1-5-21-73586283-1417001333-725345543-500
2007-10-18 21:14:13, Info [0x0808ae] MIG Unloading hive at
HKEY_USERS\S-1-5-21-73586283-1417001333-725345543-500
2007-10-18 21:14:13, Warning [0x0808af] MIG Failed to unload hive at
HKEY_USERS\S-1-5-21-73586283-1417001333-725345543-500 (error 5)
2007-10-18 21:14:13, Warning [0x0808aa] MIG Failed to find and unload
hive: C:\Documents and Settings\carl\NTUSER.DAT (error 5)
2007-10-18 21:14:13, Info MIG Dumping hive list at
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\hivelist...
2007-10-18 21:14:13, Info MIG
[\REGISTRY\MACHINE\HARDWARE] =>
2007-10-18 21:14:13, Info MIG
[\REGISTRY\MACHINE\SECURITY] =>
\Device\HarddiskVolume1\WINDOWS\system32\config\SECURITY
2007-10-18 21:14:13, Info MIG
[\REGISTRY\MACHINE\SOFTWARE] =>
\Device\HarddiskVolume1\WINDOWS\system32\config\software
2007-10-18 21:14:13, Info MIG
[\REGISTRY\MACHINE\SYSTEM] =>
\Device\HarddiskVolume1\WINDOWS\system32\config\system
2007-10-18 21:14:13, Info MIG
[\REGISTRY\USER\.DEFAULT] =>
\Device\HarddiskVolume1\WINDOWS\system32\config\default
2007-10-18 21:14:13, Info MIG [\REGISTRY\MACHINE\SAM]
=> \Device\HarddiskVolume1\WINDOWS\system32\config\SAM
2007-10-18 21:14:13, Info MIG
[\REGISTRY\USER\S-1-5-20] => \Device\HarddiskVolume1\Documents and
Settings\NetworkService\NTUSER.DAT
2007-10-18 21:14:13, Info MIG
[\REGISTRY\USER\S-1-5-20_Classes] => \Device\HarddiskVolume1\Documents and
Settings\NetworkService\Local Settings\Application
Data\Microsoft\Windows\UsrClass.dat
2007-10-18 21:14:13, Info MIG
[\REGISTRY\USER\S-1-5-19] => \Device\HarddiskVolume1\Documents and
Settings\LocalService\NTUSER.DAT
2007-10-18 21:14:13, Info MIG
[\REGISTRY\USER\S-1-5-19_Classes] => \Device\HarddiskVolume1\Documents and
Settings\LocalService\Local Settings\Application
Data\Microsoft\Windows\UsrClass.dat
2007-10-18 21:14:13, Info MIG
[\REGISTRY\USER\S-1-5-21-73586283-1417001333-725345543-500] =>
\Device\HarddiskVolume1\Documents and Settings\carl\NTUSER.DAT
2007-10-18 21:14:13, Info MIG
[\REGISTRY\USER\S-1-5-21-73586283-1417001333-725345543-500_Classes] =>
\Device\HarddiskVolume1\Documents and Settings\carl\Local
Settings\Application Data\Microsoft\Windows\UsrClass.dat
2007-10-18 21:14:13, Info MIG End of hive list
2007-10-18 21:14:13, Warning [0x0803db] MIG IndirectKeyMapper:
RegLoadKey(HKEY_USERS,S-1-5-21-1708537768-839522115-1202660629-1108,C:\Documents
and Settings\carl\NTUSER.DAT) failed; giving up (32)



setuperr.log:
2007-10-18 21:14:13, Error [0x08039d] MIG Cannot add mapping for
user profile C:\Documents and Settings\carl. Error: 32: class
Mig::Win32ErrorException: Win32ErrorException: Error(32), .
__thiscall Mig::CIndirectKeyMapper::CIndirectKeyMapper(class UnBCL::String
*,struct HKEY__ *,class UnBCL::String *,class UnBCL::String *,int,int,const
Mig::HiveLoadRetryOptions *)
[gle=0x000003f0]
2007-10-18 21:14:13, Error [0x080801] MIG User profile loading
error. Aborting due to external request.[gle=0x000003f0]
2007-10-18 21:14:13, Error [0x0802fa] MIG MigStartUp caught
exception: class Mig::Win32ErrorException: Win32ErrorException: Error(1253),
User profile loading error. Aborting due to external request..
void __thiscall Mig::COnlineWinNTPlatform::processUser(class
Mig::CRegistryDataStore *,class Mig::CRegistryDataUnit *,class UnBCL::String
*,class UnBCL::String *,int)
 
A

Adam Leinss

For example, I had my Local Administrator account set to use the
profile at \Documents and Settings\carl, as well as
DOMAINUSER\carl also using this profile.

No idea why you would do this instead of just copying one profile to
the other 2 accounts. Having two accounts sharing 1 profile (or more
specifically: one profile directory) is a really bad idea.

Here's why:

Create two accounts. Have them share the profile. Reboot. Login as
Account A. Now logoff and login as Administrator. Try to delete the
profile Account A uses. You can't.

Windows keeps a lock on NTUSER.DAT even after you log out. If you have
multiple logins trying to lock the same file you can get corruption.

If you have a profile that you want to use, just use the User Account
profile copy function and overwrite the profile you want replaced.

Adam
 
C

Carl Farrington

Adam Leinss said:
No idea why you would do this instead of just copying one profile to
the other 2 accounts. Having two accounts sharing 1 profile (or more
specifically: one profile directory) is a really bad idea.

Here's why:

Create two accounts. Have them share the profile. Reboot. Login as
Account A. Now logoff and login as Administrator. Try to delete the
profile Account A uses. You can't.

Windows keeps a lock on NTUSER.DAT even after you log out. If you have
multiple logins trying to lock the same file you can get corruption.

Are you sure about that? It's been my experience that this only happens when
event id 1517 is logged. The message goes something like "Windows saved user
Carl's registry while an application or service was still using the registry
during log off. The memory used by the user's registry has not been freed.
The registry will be unloaded when it is no longer in use"

Provided this event doesn't occur, the profile will not be locked after
logging off.
 
A

Adam Leinss

Are you sure about that? It's been my experience that this only
happens when event id 1517 is logged. The message goes something
like "Windows saved user Carl's registry while an application or
service was still using the registry during log off. The memory
used by the user's registry has not been freed. The registry will
be unloaded when it is no longer in use"

Provided this event doesn't occur, the profile will not be locked
after logging off.

100%. We implemented a domain a while back where we would have to go
to each workstation and convert the local profile to a domain one. No
amount of using unlock utilties would release explorer's lock on
NTUSER.DAT. Once you logged a user in, NTUSER.DAT was forever locked
until reboot.

This happened on every workstation I tried. Sometimes you would get a
PC that already rebooted, others not.

If you are doing this for a laptop where you have a domain and a local
account, just place "pointers" to the domain profile in the local
profile. For example: we had My Documents in C:\documents and settings
\mrspock point to C:\documents and settings\mrspock.enterprise on the
desktop. The remote user would place their documents in the domain
profile by dragging them to this icon. When they come back and log in,
their regular My Documents icon points to the same location.

Adam
 
C

Carl Farrington

Adam Leinss said:
100%. We implemented a domain a while back where we would have to go
to each workstation and convert the local profile to a domain one. No
amount of using unlock utilties would release explorer's lock on
NTUSER.DAT. Once you logged a user in, NTUSER.DAT was forever locked
until reboot.

This happened on every workstation I tried. Sometimes you would get a
PC that already rebooted, others not.

Must be some third party application that was installed on all the machines.
The event log would have given you event id 1517.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top