找了一下,網上有網友出現類似問題,故障歸結為:
userinit.exe檔案丟失及其相關註冊表索引值錯誤導致不能正常登入系統
癥狀:登入後立刻自動登出
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:
http://support.microsoft.com/kb/292175/zh-cn
http://support.microsoft.com/kb/306952/zh-cn
Windows XP:
http://support.microsoft.com/kb/315341/zh-cn
Windows 2003:
http://support.microsoft.com/kb/816579/zh-cn
方法二、用故障修復主控台
從 Windows 2000 開始安裝光碟片附帶故障修復主控台功能,用它能解決很多系統問題,有關故障修復主控台的使用方法請參考微軟的KB:
Windows 2000:
http://support.microsoft.com/kb/318752/zh-cn
Windows XP:
http://support.microsoft.com/kb/307654/zh-cn
Windows 2003:
http://support.microsoft.com/kb/326215/zh-cn
針對本文所述問題的解決方案是,用作業系統的安裝光碟片啟動電腦進故障修復主控台,鍵入(假設光碟機盤符為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):
重 啟後將恢複系統剛安裝好時的設定檔,登入系統後,開始 -> 運行 -> regedit(如果使用的是 Windows 2000 的作業系統,此處應該鍵入:regedt32),找到HKEY_LOCAL_MACHINE註冊表分支,檔案 -> 載入登錄區(Windows 2000 系統為:註冊表 -> 載入登錄區),載入剛在故障修復主控台中儲存的c:/windows/regtemp/software檔案,取一個項名稱(比如為: regtemp),然後在這個項下找到本文開頭所述索引值,修改為正確的值,修改完成後選取剛才載入的regtemp項,檔案 -> 卸載登錄區(Windows 2000 系統為:註冊表 -> 卸載登錄區)。
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
重啟電腦進故障控制控制台,鍵入(以 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
重啟後就能正常登入了。