2007-02-04

Windows XP 自动注销

刚遇到的问题,也正是使得我下定决心积累经验的事故:

症状:可以进到登录画面,但是输入密码登录任何一个账户后,只见"正在加载用户设置",然后桌面一闪,接着就是"正在注销" ----
又回到登录界面了。。。我晕。 安全模式也不起作用

原因:注册表损坏,键值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下
Userinit = "c:\windows\system32\userinit.exe"

大概是我杀毒时误操作给删了。。唉。

解决过程:当然得改注册表了。
麻烦的是手头没有任何工具光盘,笔记本也不支持软盘。
不过手头有两台好的电脑,一台WindowsXP,另一台Ubuntu,而且有网络,另有移动硬盘,U盘
开始时考虑用移动硬盘启动Linux,不过看似挺麻烦,最终没弄会
后来决定做个U盘启动盘(移动硬盘是俺爹的,不让我随便格式化)
使用软件USBoot 1.66,关于U盘模式还试了一大堆,一开始怎么都不成功,后来发现毛病出在笔记本电脑BIOS中的启动设置。我发现在开电脑前插上U盘后,主板就能认U盘,可以和硬盘"平起平坐"地选择启动顺序,嗯,不错。只怪我一开始没发现,每次都让硬盘排前面。当然最后还是成功了。(失败是晚上的事,成功已经是转天了,结果郁闷了一夜。。)
USBoot提供的是MS-DOS 7.1 环境,
这里没有reg命令,不能直接改注册表,于是。。我想到了当年在黑客杂志中看到的一个办法(一直很佩服这个方法的发明者,亏他想的出来)
登录时实际上也有屏保,监测时间似乎是15分钟左右,文件为c:\windows\system32\logon.scr,用户为SYSTEM,不知道这个屏保是否可以禁掉
进了DOS后(幸好系统盘是FAT32的,如果是NTFS的,不知NTFSforDOS是否好用,再不行就上Linux了!),备份好logon.scr,用c:\windows\system32\cmd.exe替换之,然后重启。
得等上15分钟,于是我用另一台机器玩了会游戏。然后,哈哈,我那可爱的命令提示符出现了。
开始犯傻,看了半天reg.exe的帮助,发现有点麻烦,然后就想到用U盘从好的那台Windows机器上导出个.reg,刚打开注册表编辑器就发现自己还是太傻
---- 终于醒悟了。直接用命令提示符运行regedit,直接改键值(幸亏最终想出来了,要不让人笑话死)。
然后就能登录了,高兴得我大喊大叫直跺地,被俺娘喝止:"还让不让你爸睡觉了!"


考虑其他方案(均未验证)
1.不知故障恢复控制台是否能直接改注册表,即使不能,至少可以从别处烤来注册表内容应应急,它们是c:\windows\config的system、sam、software、security、default五个文件,另外c:\windows\repair中应该也保留着这些文件,我不知道是刚安装好的还是"最后一次正确配置"的,不妨试试
要有Linux安装盘也可以试试,我只用过Ubuntu,Hiweed,都是LiveCD,文字界面的应该也能用控制台,对ntfs支持的不错。其他就同上了
用了临时的注册表文件启动后还得把原来的改好,regedit里文件菜单项下有个"加载配置单元",据说可以,不过我没试过,我只知道选中HKEY_LOCAL_MACHINE或HKEY_USERS这个选项才管用
2.有个红叶XXXX工具光盘据说能直接改注册表,不知道是否可行。


总结:
1.检查键值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下
Userinit = "c:\windows\system32\userinit.exe"
以及c:\windows\system32\userinit.exe

2.制作U盘启动盘 ----- USBoot

3.注意主板BIOS启动顺序设置,特别是能直接认USB的。

4.logon.scr替换法,当初介绍这个方法的是讲入侵的,忘了SYSTEM是否能建用户,反正本例中能改注册表就够了,要不还得权限提升。。。。

No comments: