分享

【ITECN技术专栏】之 Windows Vista拒绝罢工系列

 小飞虾 2007-03-14
【ITECN技术专栏】之 Windows Vista拒绝罢工系列1─芝麻开门

原文摘自ITECN Blog,作者:盆盆<Microsoft MVP>
原文地址: 点击查看
ITECN Blog是由近40位微软MVP和MCT、还有微软员工组成,旨在宣传微软IT Pro技术

转眼间,Windows已经已经有了将近20年的“革命史”,这20年来Windows的稳定性和安全性都在不断加强:
(1) Windows 95/98系统中糅合了16位和32位的代码,所以给人的印象就是经常蓝屏,甚至用IE浏览器访问某个网页都可能导致系统崩溃。
(2) 到了Windows 2000,情况有了很大的变化,用户渐渐发现死机的频率大大减少,这是因为从Windows 2000开始,Windows采用了NT的内核,同时采用纯32位的代码库,这使得系统更加健壮和稳定。
(3) 到了Windows XP,操作系统的稳定性和安全性都有了长足的进步。系统自带的故障排错工具也更加丰富完善,例如增加了系统还原等高级功能。
正当我们觉得Windows XP已经登峰造极,这时候Windows Vista突然横空出世,一下子又把它的前辈远远地甩在身后,毫不夸张地说,除非是硬件的物理故障,否则没有任何故障能够阻止Windows Vista前进的脚步!
在隆重介绍Windows Vista的强大恢复功能之前,首先要宣布一个令人“伤感”的消息─从Windows 2000开始一直是系统排错中坚力量的故障恢复控制台,现在终于功成身退了!取而代之的是一个特别版本的Windows PE。
Windows PE,全称是Windows Pre-installation Environment(Windows预安装环境),是 微软开发的一个引导工具,用于安装、故障排除和恢复的操作系统功能。有些用户可能没有听说过Windows PE,但是如果提到ERD Commander、深山红叶等系统维护工具,大家可能耳熟能详。其实这些工具就是Windows PE的扩展版本。
到了Windows Vista时代,Windows PE的踪迹到处可循,实际上Windows Vista的安装就是借助于Windows PE加载Vista的安装映像文件,并将该映像文件恢复到我们的计算机上。现在Windows Vista的故障恢复也是基于Windows PE所提供的强大功能,而且更让我们惊喜的是,现在大部分恢复操作可以基于图形化界面(当然也同时提供命令行接口),即使是初次使用计算机的菜鸟朋友,也可以根据屏幕提示,轻松完成系统恢复工作。
要进入Windows Vista的系统恢复界面,首先需要准备一张Windows Vista的安装光盘。然后按照以下方法进行操作:
(1)将Windows Vista安装光盘放入光驱。
(2)进入CMOS设置为从光盘引导,有关如何进入CMOS设置界面、以及如何调整CMOS设置,请参考主板说明书、或者直接联系主板厂商或者计算机厂商。
(3)当显示到“Press any key to boot from the CD”时,按下任意键。
(4)在进入如图1所示的“现在安装”界面时,单击左下方的“系统恢复选项”。


(5)接下来系统会提示选择键盘布局,这里可以保留默认的选项(美式键盘),然后单击“下一步”按钮,如图2所示。


(6)接下来系统会搜索当前系统中安装了哪些Windows操作系统,并显示其安装分区和分区的容量大小。如果Windows Vista安装在某些SCSI或者SATA硬盘上,Windows Vista安装光盘没有带这些硬盘的驱动,则必须单击图3中的“加载驱动程序”按钮。找到并选中所需修复的Windows Vista所在分区,然后单击“下一步”按钮,如图3所示。


(7)很快就可以看到系统启动恢复选项,有启动故障的自动修复功能、有离线的系统还原功能、还有整个计算机系统的彻底还原功能、物理内存的故障检测功能,对于喜爱命令行方式的朋友,Windows Vista还进行准备了命令提示符窗口,如图4所示。


需要提醒的是,以上的这些系统故障修复功能,完全不依赖于硬盘上的Windows操作系统。也就是说,就算Windows Vista已经彻底崩溃,我们可以照样借助于Windows Vista安装光盘,把系统恢复到正常状态!
 
 
ITECN技术专栏】之 Windows Vista拒绝罢工系列2─不能启动?没问题!

原文摘自ITECN Blog,作者:盆盆<Microsoft MVP>
原文地址: 点击查看
ITECN Blog是由近40位微软MVP和MCT、还有微软员工组成,旨在宣传微软IT Pro技术

在Windows 98/2000/XP时代,Windows无法启动一直是一个非常令人头痛的问题。因为系统无法启动,可能由多种原因所引起:

例如可能是由于安装了某个新的硬件设备导致系统无法启动,这时候微软推荐重启Windows,按F8键在高级启动菜单上选择“恢复到最后一次的正确启动”;而启动管理器破坏了,则需要进入故障恢复控制台,用安装光盘里的正确副本进行恢复……

总之以前版本Windows的启动故障处理起来非常麻烦,一方面对用户要求较高,必须知道问题的症结所在,同时排错的界面比较分散,用户无法在一个集中的图形环境进行操作。

而Windows Vista下,启动故障的排错和恢复则显得非常简单,就算是一个没有经验的用户,也能轻松对付常见的启动故障问题。

1.启动管理器丢失
如果C盘根目录下的启动管理器bootmgr破坏或者丢失,则启动计算机时,系统会提示找不到操作系统,这类似于Windows 2000/XP的ntldr文件丢失。
在Windows 2000/XP下,解决这类故障首先需要知道该故障原因是启动管理器丢失,然后进入故障恢复控制台,在命令提示符下利用expand命令把安装光盘里的ntldr文件副本解压缩到C盘根目录。
在Windows Vista则非常简单,我们根本无需知道到底是什么原因导致系统无法启动,只需按照以下方法进行操作即可:
(1)首先利用Windows Vista拒绝罢工系列1─芝麻开门介绍的方法,利用Windows Vista安装光盘引导系统进入“系统恢复选项”,并单击其上的“启动修复”。
(2)系统按照设定的顺序,依次查找可能导致启动故障的原因,如图1所示。在系统后台,启动恢复检查程序会自动对Windows更新(如果安装补丁失败,也可能导致启动故障)、系统磁盘、磁盘错误、磁盘元数据、目标操作系统、启动日志等多项内容进行测试分析。


(3)如果系统找到该启动故障的原因,并修复后,会进入如图2所示的对话框,提示已经找到并尝试修复问题。


(4)Windows Vista默认不会显示所找到的故障原因,直接单击“完成”按钮即可重新启动计算机,以完成恢复操作。
如果需要查看故障原因,可以单击该对话框上的“单击此处以获得诊断和修复的详细信息”。在打开的对话框上,我们可以看到找到的根本原因是“启动管理器”丢失,而且所需的文件修复工具已经成功完成,如图3所示。


2.系统分区的引导扇区破坏
引导扇区被破坏,也会导致系统无法正常启动,在Windows 2000/XP,也需要进入故障恢复控制台,借助fixmbr(修复主引导记录)或者fixboot(修复引导扇区)命令。
而在Windows Vista下,就可以一招鲜,吃遍天,用同样的方法让系统自动检测启动故障,而Windows Vista不负众望,也能轻而易举地找到问题的症结所在,并自动利用BCDMD命令进行修复。如图4所示。


如果明明没有系统启动故障,仅仅想考验一下Windows Vista的“智商”,那么Windows Vista就会礼貌而又坚定地表示启动修复无法检测到问题,如图5所示。


从启动恢复功能的表现来看,Windows Vista无疑是令人放心的。值得称道的是,系统并不需要我们具备启动故障排错的判断能力,而是把所有的工作交给Windows Vista自己去完成,这是应该加以肯定的。
 
【ITECN技术专栏】之 Windows Vista拒绝罢工系列3─忘记管理员密码?没问题!

原文摘自ITECN Blog,作者:盆盆<Microsoft MVP>
原文地址: 点击查看
ITECN Blog是由近40位微软MVP和MCT、还有微软员工组成,旨在宣传微软IT Pro技术

现在,Windows Vista用户再也不需要借助ERD Commander、O&O BlueCon或者Offline NT Password & Registry Editor等“外援”的帮助,只需一张Windows Vista的安装光盘,就可以“自力更生”重设管理员帐户密码。

1.一个工具包轻松搞定管理员密码

由于本文所涉及的原理和操作相对比较复杂,为了照顾初学者朋友,笔者特地制作了一个工具包,只有5KB大小(请单击这里,下载工具包)。

(1) 首先确保您的Windows Vista安装在C盘,如果安装在别的分区,请不要使用该工具包,而直接查看本文的后面部分。
(2) 请将本工具包解压缩到软盘,然后将这张软盘插入故障计算机。
(3) 利用Windows Vista安装光盘引导系统进入“系统恢复选项”,并单击其上的“命令提示符”,请参考Windows Vista拒绝罢工系列1─芝麻开门
(4) 在命令提示符下运行“A:\StartMe”,如果命令结果没有报错,连续两次重启计算机到登录界面。
(5) 第二次启动到登录界面时,点击Test帐户名即可登录,然后就可以重设原来帐户的密码了。
(6) 打开注册表编辑器,删除以下注册表子键即可:
HKLM\SYSTEM\CurrentControlSet\Services\AddUser

2.原理描述

这个工具包里包含两个批处理文件和一个srvany.exe程序,作用如下:
• AddUser.bat批处理文件:目的是在Windows Vista系统里创建一个管理员帐户Test,而且密码是空。
• StartMe.bat批处理文件:目的是把AddUser.bat文件安装为一个服务,该服务是以LocalSystem身份启动的,这样在开机登录之前,就已经执行AddUser.bat,以便新建Test帐户。
• srvany.exe程序:取自Windows Server 2003 Resource Kit Tools工具包,可以在微软官方网站上自由下载。
看到这里,相信很多朋友已经明白,原来这个方法取自笔者以前写过的一篇文章另类方法破解管理员密码。但是还是有区别的,因为Windows Vista系统不支持直接把批处理文件安装为服务,否则服务会启动失败。所以必须借助srvany.exe程序和SCM(服务控制管理器)打交道,才能确保成功。
AddUser.bat批处理文件的内容如下,这和另类方法破解管理员密码没有区别,此处不再赘述。

QUOTE:
net user test /add
net localgroup administrators test /add

StartMe.bat批处理文件的内容如下:

QUOTE:
copy a:\srvany.exe c:\
copy a:\adduser.bat c:\
reg load HKLM\AddUser_SYSTEM C:\WINDOWS\system32\config\SYSTEM
c:\windows\system32\sc create AddUser Type= own Start= auto Binpath= C:\srvany.exe Obj= LocalSystem
reg add HKLM\SYSTEM\CurrentControlSet\services\AddUser\Parameters /v Application /t REG_SZ /d c:\AddUser.bat
reg copy HKLM\SYSTEM\CurrentControlSet\services\AddUser HKLM\AddUser_SYSTEM\ControlSet001\services\AddUser /s /f
reg unload HKLM\AddUser_SYSTEM

(1) 最上面的两行copy命令没有什么可说的,就是为了把srvany.exe和adduser.bat复制到C盘根目录下。

(2) 而 “reg load HKLM\AddUser_SYSTEM C:\WINDOWS\system32\config\SYSTEM”命令,其目的是为了把C:\WINDOWS\system32\config\SYSTEM配置单元文件加载到注册表的HKLM\AddUser_SYSTEM分支。
提示
为什么要加载C:\WINDOWS\system32\config\SYSTEM配置单元?
原来Windows XP安装光盘的“系统恢复选项”,实际上是一个Windows PE环境。该Windows PE在物理内存里划分出一个32MB的空间作为虚拟的内存磁盘(RamDisk),盘符是X:。该Windows PE加载的注册表,实际上对应于X:\WINDOWS\system32\config目录下的配置单元文件。这可以用Process Explorer来验证,只需查看SYSTEM进程的句柄,即可发现所打开的注册表配置单元位于内存磁盘(RamDisk),如图1所示。


所以,必须把Windows Vista所用的注册表配置单元加载进来,才能最终生效。如果Windows Vista安装在别的分区,则需要把“reg load”命令中的C:改成合适的盘符。

(3) 对于这句命令“c:\windows\system32\sc create AddUser Type= own Start= auto Binpath= C:\srvany.exe Obj= LocalSystem”,其目的是借助系统自带的SC命令在系统中新建一个AddUser服务,其可执行文件指向srvany.exe文件,运行身份是LocalSystem。
提示
由于“系统恢复选项”的Windows PE环境,其Path环境变量并不包含Windows Vista的安装目录,所以必须提供SC命令所在的详细路径(此处假设Windows Vista安装在C盘,请根据实际情况修改该命令)。SC命令的实质是在HKLM\SYSTEM\CurrentControlSet\services下添加AddUser服务的子键。

(4) “reg add HKLM\SYSTEM\CurrentControlSet\services\AddUser\Parameters /v Application /t REG_SZ /d c:\AddUser.bat”这个命令的作用是在服务AddUser的注册表子键下添加相应的参数,让SCM(服务控制器)知道实际上要启动c:\AddUser.bat批处理脚本文件。
注意
以上两条命令对注册表的修改,实际上是作用在X:\WINDOWS\system32\config\SYSTEM配置单元文件上,由于该配置单元保存在内存虚拟磁盘上,而非真正保存在Windows Vista所用的配置单元文件。所以我们需要把注册表键值复制到C:\WINDOWS\system32\config\SYSTEM配置单元(现在已经加载到HKLM\AddUser_SYSTEM注册表分支)。

(5) “reg copy HKLM\SYSTEM\CurrentControlSet\services\AddUser HKLM\AddUser_SYSTEM\ControlSet001\services\AddUser /s /f”命令的作用就是为了复制AddUser的注册表键值到真正需要的地方。

(6) “reg unload HKLM\AddUser_SYSTEM”命令则是卸载C:\WINDOWS\system32\config\SYSTEM配置单元。

运行StartMe.bat脚本后,系统就会自动添加一个AddUser服务,该服务会在登录之前在系统中创建一个Test管理员帐户,以便我们顺利地重设管理员密码。

3.写在后面

这个方法虽然简单,但是当初测试时,笔者却走了不少弯路,这里简单地加以总结:

(1) 为什么我们可以在“系统恢复选项”下为所欲为?
在Windows Vista下时间长了,习惯了UAC环境,每运行一个管理任务,都会习惯等待确认权限提升对话框。但是在“系统恢复选项”下,我们可以随意通过命令提示符启动大部分应用程序,包括记事本、注册表编辑器等,除了Windows Shell程序不能运行外,几乎绝大多数的应用程序和脚本都能直接顺利运行。这是为什么?
原来在“系统恢复选项”下,我们是以LocalSystem身份运行的,难怪可以至高无上的权限对系统进行配置!这里可以用“Whoami /all”命令验证一下,如下图所示。


(2) 为什么不直接运行net user和net localgroup命令?
看了前面部分后,您可能一直存在一个疑问,为什么不直接在命令提示符窗口运行net user和net localgroup命令,反正我们现在是LocalSystem权限,而非得绕那么大一个圈子,借助AddUser脚本在系统中添加一个服务,达到“曲线救国”的目的?
原来正如前面所述,“系统恢复选项”的Windows PE环境,所加载的SAM配置单元文件位于X:\WINDOWS\system32\config目录下,而非C:\WINDOWS\system32\config目录下。所以net命令的结果保存在X:\WINDOWS\system32\config\SAM配置文件里,没有真正生效!
就算加载C:\WINDOWS\system32\config目录下的SAM配置单元,并且采用帐户克隆的方法复制注册表的F和V键值,还是无法生效。

(3) 为什么不把X:\WINDOWS\system32\config\下的SAM文件直接复制到C:\WINDOWS\system32\config目录下?
这实际上类似于在Windows 2000/XP下把C:\WINDOWS\repair目录下的SAM副本复制到C:\WINDOWS\system32\config目录下。结果会具有两个空密码的帐户Administrator和Guest。
然而这种方法并不推荐,因为通常并不能仅仅拷贝SAM配置单元文件,还必须同步拷贝SYSTEM、SOFTWARE等其他配置单元文件,这样会可能导致很多系统和软硬件配置信息丢失,损失更大。
 
【ITECN技术专栏】之 Windows Vista拒绝罢工系列4─系统彻底崩溃了?没问题!

原文摘自ITECN Blog,作者:盆盆<Microsoft MVP>
原文地址: 点击查看
ITECN Blog是由近40位微软MVP和MCT、还有微软员工组成,旨在宣传微软IT Pro技术

在Windows XP中,系统还原是一个有争议的组件,不少用户对它的功能不屑一顾,认为它系统资源占有率太大,而且形同鸡肋,没有什么用处。其实这是对系统还原功能的误解,系统还原的硬盘占有率并不大,最多占据12%,还可以自由调节所占的磁盘空间。而且平时系统还原处于“冬眠”状态,很少占用系统资源。

系统还原适合小规模的“局部”手术,例如在安装第三方应用软件、设备驱动程序、手动修改注册表之前,建立一个还原点,今后可以彻底清除这些不需要应用程序和驱动程序,而不会保留任何垃圾信息。

但是Windows XP的系统还原有一个最大的弱点──无法在脱机状态把系统恢复到先前的某个还原点。例如误删了某个关键的注册表键值,导致系统彻底无法启动,这样也就无法运行系统还原,无法恢复正常状态。

提示 ERD Community 2005这样的商业软件,支持在脱机状态下启动系统还原,然而其高昂的价格足以吓倒普通用户。

而在Windows Vista,一切迎刃而解,现在系统已经可以支持在脱机状态下启动系统还原,把Windows Vista恢复到先前的某个还原点上。

1.新建还原点

Windows Vista默认每隔24小时,自动创建系统还原点,如果安装驱动程序和应用程序,也会自动创建还原点。这里为了方便描述,先手动创建一个还原点。
(1) 打开控制面板,启动“系统”控制面板组件,单击左侧的“系统保护”,在弹出的对话框上单击右下方的“创建”按钮,如图1所示。


(2) 接下来指定还原点的名字,此处假设是“Test System Restore”,然后单击“创建”按钮即可,如图2所示。


2.脱机运行系统还原

假设现在系统彻底崩溃了,无法通过安全模式(或者带命令提示符的安全模式)启动系统还原。这时候可以采用以下步骤:
(1) 首先利用Windows Vista拒绝罢工系列1─芝麻开门介绍的方法,利用Windows Vista安装光盘引导系统进入“系统恢复选项”,并单击其上的“系统还原”。即可启动还原向导。
(2) 接下来选择合适的还原点,这里我们可以选择先前创建的“Test System Restore”还原点,然后单击“下一步”按钮,如图3所示。


(3) 根据屏幕提示进行下一步操作,很快就可以恢复到先前的正常状态。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多