Originally posted by: STang57
how do i copy userinit.exe from the XP cd to replace the file on the hard drive? i searched online a little bit and tried "e:\i386\userinit.ex_ userinit.exe" but it says access is denied. i believe i need this file to gain access to my computer again. when i type the password to login it instantly logs me back off! im trying everything i can before i result to reformat. i cant imagine losing my whole 130gb or files. thanks
Do NOT reformat. Even if you completely need to reload windows (which you don't!!!!) just use a parallel install or inplace upgrade and preserve all your data.
Also
Ok, with that said...
When you get that logon loop it's usually because Winlogon (the process that launches userinit.exe) can't find it. It's not because it's not there in most cases, rather you've had a drive letter shift by adding or removing a drive or several other scenarios. The net result is the userinit registry key is pointing to the wrong location:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
The default is: "C:\Windows\system32\userinit.exe,"
You can confirm if this is the problem simply by looking for userinit in your system32 folder while you're in recovery console. If it exists, this is your problem.
The simplest solution to this problem is when your computer is networked. You simply fire up regedit on another computer, remotely connect to the bad registry and change the value to simply say, "userinit.exe," (that's userinit.exe with no path and a comma at the end). This way winlogon will look in it's own local location for userinit and it just so happens both files are in the same folder.
More complicated solutions include:
backing up these files:
C:\windows\system32\config\system
C:\windows\system32\config\software
Then moving copies of them over from the C:\Windows\Repair folder.
This will let you boot long enough to manually load the software file with regedit (see load hive in regedit help for details) and make the appropriate change. You can then unload the software hive, boot back to recovery console and drop things back in place.
I've been making a lot of assumptions in this post but I'm going to make one more: The reason you got this way is your mounteddevices key has shifted drive letters in it. Query the microsoft KB for "mounteddevices" and possibly "userinit.exe" and you should find two or three articles covering this issue as well as how to fix a boot drive letter shift.