最近网络上病毒肆孽,机器狗等病毒更是厉害,由于机房机器均裸奔上网,不幸中标, 手动杀毒误将注册表Userinit项删除,造成系统一直注销用户无法登陆windows界面,dos下又无法编辑、导入注册表。 无奈,只好在其它机器上网寻找解决办法。 最后寻得此文,最终解决。现粘贴如下,希望对遇到同样问题的朋友有所帮助。

症状:登录后立刻自动注销
userinit.exe一般位于系统目录下,比如在 Windows XP 系统中就是在C:\WINDOWS\SYSTEM32\下面,文件属性中的描述是:Userinit Logon Application,同时在注册表中有一个键值指向这个文件:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
在我用的 Windows XP 系统上此键值为:C:\WINDOWS\system32\userinit.exe,
(在 Windows 2000 系统上此键值则为:C:\WINNT\system32\userinit.exe,)

在登录系统后首先将读取这个键值并执行其中指向的程序,如果此键值被某些病毒修改或userinit.exe文件被误删除,就会出现登录系统后立即注销的情况,只能借助操作系统的安装光盘及一些网络上流传的系统急救光盘进行修复。
故障排除方法:
userinit.exe文件丢失和注册表键值错误的恢复方法是不同的,故分别表述。
1、userinit.exe文件丢失
方法一、原位升级安装
很多系统问题可以用这个方法解决,比如反复自动重启之类,优点是不影响原有的应用软件,个人设置也不会丢失,缺点是花时间比较多,重装系统至少也要半个小时左右吧。
有关原位升级安装的具体内容请参考微软的KB:
方法二、用故障恢复控制台
从 Windows 2000 开始安装光盘附带故障恢复控制台功能,用它能解决很多系统问题,有关故障恢复控制台的使用方法请参考微软的KB:
针对本文所述问题的解决方法是,用操作系统的安装光盘启动计算机进故障恢复控制台,键入(假设光驱盘符为F):
cd system32
expand f:\i386\userinit.ex_
exit
2、userinit.exe相关注册表键值错误
方法一、原位升级安装
这种方法前文已有说明,不再赘述。
方法二、用网络上流传的系统急救光盘
光盘附带注册表编辑工具的就行,比如深山红叶袖珍PE工具箱、Rock2000做的中文菜单超级启动工具光盘,另外,《计算机应用文摘》每月下旬刊附带的光盘也可以。
在此以使用中文菜单超级工具启动光盘(2005.10.30)为例说一下修复方法。
用这张光盘启动计算机,选[1] Windows NT/2000/XP 工具,再选[2] Windows PE中文版带汉化ERD2003,进入命令行界面后,键入erd2003启动ERD2003系统,开始 -> 注册表编辑器,按本文开头所述修改为正确的键值即可。
这个方法也是推荐使用的方法,速度快且操作比较简单。
方法三、用故障恢复控制台
因为在故障恢复控制台下无法编辑注册表,所以只能先恢复系统刚安装好时的设置正常登录后,修改预先备份的当前注册表内容为正确的键值,再恢复修改后的注册表,正常登录系统。这个方法比较复杂,只有在你不想用方法一重装系统手头又找不到别的急救光盘时使用。
用操作系统的安装光盘启动计算机进故障恢复控制台,键入(以 Windows XP 为例,如果你用的是 Windows 2000 请将以下命令行中的windows改成winnt):

md regtemp
cd system32
cd config
copy default \windows\regtemp\
copy sam \windows\regtemp\
copy security \windows\regtemp\
copy software \windows\regtemp\
copy system \windows\regtemp\
del default
del sam
del security
del software
del system
copy \windows\repair\default
copy \windows\repair\sam
copy \windows\repair\security
copy \windows\repair\software
copy \windows\repair\system
exit
重启后将恢复系统刚安装好时的配置文件,登录系统后,开始 -> 运行 -> regedit(如果使用的是 Windows 2000 的操作系统,此处应该键入:regedt32),找到HKEY_LOCAL_MACHINE注册表分支,文件 -> 加载配置单元(Windows 2000 系统为:注册表 -> 加载配置单元),加载刚在故障恢复控制台中保存的c:\windows\regtemp\software文件,取一个项名称(比如为:regtemp),然后在这个项下找到本文开头所述键值,修改为正确的值,修改完成后选取刚才加载的regtemp项,文件 -> 卸载配置单元(Windows 2000 系统为:注册表 -> 卸载配置单元)。
重启计算机进故障控制控制台,键入(以 Windows XP 为例,如果你用的是 Windows 2000 请将以下命令行中的windows改成winnt):
cd system32
cd config
del default
del sam
del security
del software
del system
copy \windows\regtemp\default
copy \windows\regtemp\sam
copy \windows\regtemp\security
copy \windows\regtemp\software
copy \windows\regtemp\system
exit
重启后就能正常登录了,故障排除。